forked from open-webui/open-webui
		
	Merge branch 'dev'
This commit is contained in:
		
						commit
						9edc181e49
					
				
					 9 changed files with 97 additions and 27 deletions
				
			
		
							
								
								
									
										20
									
								
								README.md
									
										
									
									
									
								
							
							
						
						
									
										20
									
								
								README.md
									
										
									
									
									
								
							|  | @ -85,17 +85,29 @@ If you don't have Ollama installed yet, you can use the provided bash script for | ||||||
| 
 | 
 | ||||||
| For cpu-only container | For cpu-only container | ||||||
| ```bash | ```bash | ||||||
| chmod +x run-compose.sh && ./run-compose.sh | ./run-compose.sh | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| For gpu-enabled container (to enable this you must have your gpu driver for docker, it mostly works with nvidia so this is the official install guide: [nvidia-container-toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html)) | For GPU enabled container (to enable this you must have your gpu driver for docker, it mostly works with nvidia so this is the official install guide: [nvidia-container-toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html)) | ||||||
|  | Warning! A GPU-enabled installation has only been tested using linux and nvidia GPU, full functionalities are not guaranteed under Windows or Macos or using a different GPU | ||||||
| ```bash | ```bash | ||||||
| chmod +x run-compose.sh && ./run-compose.sh --enable-gpu[count=1] | ./run-compose.sh --enable-gpu | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| Note that both the above commands will use the latest production docker image in repository, to be able to build the latest local version you'll need to append the `--build` parameter, for example: | Note that both the above commands will use the latest production docker image in repository, to be able to build the latest local version you'll need to append the `--build` parameter, for example: | ||||||
| ```bash | ```bash | ||||||
| ./run-compose.sh --build --enable-gpu[count=1] | ./run-compose.sh --enable-gpu --build | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | ### Installing Both Ollama and Ollama Web UI Using Docker Compose | ||||||
|  | To install using docker compose script as CPU-only installation simply run this command | ||||||
|  | ```bash | ||||||
|  | docker compose up -d | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | for a GPU-enabled installation (provided you installed the necessary gpu drivers and you are using nvidia) | ||||||
|  | ```bash | ||||||
|  | docker compose -f docker-compose.yaml -f docker-compose.gpu.yaml up -d | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| ### Installing Both Ollama and Ollama Web UI Using Kustomize | ### Installing Both Ollama and Ollama Web UI Using Kustomize | ||||||
|  |  | ||||||
|  | @ -4,6 +4,7 @@ metadata: | ||||||
|   name: ollama-service |   name: ollama-service | ||||||
|   namespace: {{ .Values.namespace }} |   namespace: {{ .Values.namespace }} | ||||||
| spec: | spec: | ||||||
|  |   type: {{ .Values.ollama.service.type }} | ||||||
|   selector: |   selector: | ||||||
|     app: ollama |     app: ollama | ||||||
|   ports: |   ports: | ||||||
|  |  | ||||||
|  | @ -19,15 +19,32 @@ spec: | ||||||
|         image: {{ .Values.ollama.image }} |         image: {{ .Values.ollama.image }} | ||||||
|         ports: |         ports: | ||||||
|         - containerPort: {{ .Values.ollama.servicePort }} |         - containerPort: {{ .Values.ollama.servicePort }} | ||||||
|         resources: |         env: | ||||||
|           limits: |         {{- if .Values.ollama.gpu.enabled }} | ||||||
|             cpu: {{ .Values.ollama.resources.limits.cpu }} |           - name: PATH | ||||||
|             memory: {{ .Values.ollama.resources.limits.memory }} |             value: /usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin | ||||||
|             nvidia.com/gpu: {{ .Values.ollama.resources.limits.gpu }} |           - name: LD_LIBRARY_PATH | ||||||
|  |             value: /usr/local/nvidia/lib:/usr/local/nvidia/lib64 | ||||||
|  |           - name: NVIDIA_DRIVER_CAPABILITIES | ||||||
|  |             value: compute,utility | ||||||
|  |         {{- end}} | ||||||
|  |         {{- if .Values.ollama.resources }} | ||||||
|  |         resources: {{- toYaml .Values.ollama.resources | nindent 10 }} | ||||||
|  |         {{- end }} | ||||||
|         volumeMounts: |         volumeMounts: | ||||||
|         - name: ollama-volume |         - name: ollama-volume | ||||||
|           mountPath: /root/.ollama |           mountPath: /root/.ollama | ||||||
|         tty: true |         tty: true | ||||||
|  |       {{- with .Values.ollama.nodeSelector }} | ||||||
|  |       nodeSelector: | ||||||
|  |         {{- toYaml . | nindent 8 }} | ||||||
|  |       {{- end }} | ||||||
|  |       tolerations: | ||||||
|  |         {{- if .Values.ollama.gpu.enabled }} | ||||||
|  |         - key: nvidia.com/gpu | ||||||
|  |           operator: Exists | ||||||
|  |           effect: NoSchedule | ||||||
|  |         {{- end }} | ||||||
|   volumeClaimTemplates: |   volumeClaimTemplates: | ||||||
|   - metadata: |   - metadata: | ||||||
|       name: ollama-volume |       name: ollama-volume | ||||||
|  | @ -35,4 +52,4 @@ spec: | ||||||
|       accessModes: [ "ReadWriteOnce" ] |       accessModes: [ "ReadWriteOnce" ] | ||||||
|       resources: |       resources: | ||||||
|         requests: |         requests: | ||||||
|           storage: 1Gi |           storage: {{ .Values.ollama.volumeSize }} | ||||||
|  | @ -15,14 +15,24 @@ spec: | ||||||
|     spec: |     spec: | ||||||
|       containers: |       containers: | ||||||
|       - name: ollama-webui |       - name: ollama-webui | ||||||
|         image: ghcr.io/ollama-webui/ollama-webui:main |         image: {{ .Values.webui.image }} | ||||||
|         ports: |         ports: | ||||||
|         - containerPort: 8080 |         - containerPort: 8080 | ||||||
|         resources: |         {{- if .Values.webui.resources }} | ||||||
|           limits: |         resources: {{- toYaml .Values.webui.resources | nindent 10 }} | ||||||
|             cpu: "500m" |         {{- end }} | ||||||
|             memory: "500Mi" |         volumeMounts: | ||||||
|  |         - name: webui-volume | ||||||
|  |           mountPath: /app/backend/data | ||||||
|         env: |         env: | ||||||
|         - name: OLLAMA_API_BASE_URL |         - name: OLLAMA_API_BASE_URL | ||||||
|           value: "http://ollama-service.{{ .Values.namespace }}.svc.cluster.local:{{ .Values.ollama.servicePort }}/api" |           value: "http://ollama-service.{{ .Values.namespace }}.svc.cluster.local:{{ .Values.ollama.servicePort }}/api" | ||||||
|         tty: true |         tty: true | ||||||
|  |       {{- with .Values.webui.nodeSelector }} | ||||||
|  |       nodeSelector: | ||||||
|  |         {{- toYaml . | nindent 8 }} | ||||||
|  |       {{- end }} | ||||||
|  |       volumes: | ||||||
|  |       - name: webui-volume | ||||||
|  |         persistentVolumeClaim: | ||||||
|  |           claimName: ollama-webui-pvc | ||||||
|  | @ -1,11 +1,13 @@ | ||||||
|  | {{- if .Values.webui.ingress.enabled }} | ||||||
| apiVersion: networking.k8s.io/v1 | apiVersion: networking.k8s.io/v1 | ||||||
| kind: Ingress | kind: Ingress | ||||||
| metadata: | metadata: | ||||||
|   name: ollama-webui-ingress |   name: ollama-webui-ingress | ||||||
|   namespace: {{ .Values.namespace }} |   namespace: {{ .Values.namespace }} | ||||||
|   #annotations: | {{- if .Values.webui.ingress.annotations }} | ||||||
|     # Use appropriate annotations for your Ingress controller, e.g., for NGINX: |   annotations: | ||||||
|     # nginx.ingress.kubernetes.io/rewrite-target: / | {{ toYaml .Values.webui.ingress.annotations | trimSuffix "\n" | indent 4 }} | ||||||
|  | {{- end }} | ||||||
| spec: | spec: | ||||||
|   rules: |   rules: | ||||||
|   - host: {{ .Values.webui.ingress.host }} |   - host: {{ .Values.webui.ingress.host }} | ||||||
|  | @ -18,3 +20,4 @@ spec: | ||||||
|             name: ollama-webui-service |             name: ollama-webui-service | ||||||
|             port: |             port: | ||||||
|               number: {{ .Values.webui.servicePort }} |               number: {{ .Values.webui.servicePort }} | ||||||
|  | {{- end }} | ||||||
|  |  | ||||||
							
								
								
									
										12
									
								
								kubernetes/helm/templates/webui-pvc.yaml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								kubernetes/helm/templates/webui-pvc.yaml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,12 @@ | ||||||
|  | apiVersion: v1 | ||||||
|  | kind: PersistentVolumeClaim | ||||||
|  | metadata: | ||||||
|  |   labels: | ||||||
|  |     app: ollama-webui | ||||||
|  |   name: ollama-webui-pvc | ||||||
|  |   namespace: {{ .Values.namespace }}   | ||||||
|  | spec: | ||||||
|  |   accessModes: [ "ReadWriteOnce" ] | ||||||
|  |   resources: | ||||||
|  |     requests: | ||||||
|  |       storage: {{ .Values.webui.volumeSize }} | ||||||
|  | @ -4,7 +4,7 @@ metadata: | ||||||
|   name: ollama-webui-service |   name: ollama-webui-service | ||||||
|   namespace: {{ .Values.namespace }} |   namespace: {{ .Values.namespace }} | ||||||
| spec: | spec: | ||||||
|   type: NodePort  # Use LoadBalancer if you're on a cloud that supports it |   type: {{ .Values.webui.service.type }} # Default: NodePort  # Use LoadBalancer if you're on a cloud that supports it | ||||||
|   selector: |   selector: | ||||||
|     app: ollama-webui |     app: ollama-webui | ||||||
|   ports: |   ports: | ||||||
|  |  | ||||||
|  | @ -10,6 +10,12 @@ ollama: | ||||||
|       memory: "2Gi" |       memory: "2Gi" | ||||||
|       nvidia.com/gpu: "0" |       nvidia.com/gpu: "0" | ||||||
|   volumeSize: 1Gi |   volumeSize: 1Gi | ||||||
|  |   nodeSelector: {} | ||||||
|  |   tolerations: [] | ||||||
|  |   service: | ||||||
|  |     type: ClusterIP | ||||||
|  |   gpu: | ||||||
|  |     enabled: false | ||||||
| 
 | 
 | ||||||
| webui: | webui: | ||||||
|   replicaCount: 1 |   replicaCount: 1 | ||||||
|  | @ -20,4 +26,13 @@ webui: | ||||||
|       cpu: "500m" |       cpu: "500m" | ||||||
|       memory: "500Mi" |       memory: "500Mi" | ||||||
|   ingress: |   ingress: | ||||||
|  |     enabled: true | ||||||
|  |     annotations: | ||||||
|  |     # Use appropriate annotations for your Ingress controller, e.g., for NGINX: | ||||||
|  |       # nginx.ingress.kubernetes.io/rewrite-target: / | ||||||
|     host: ollama.minikube.local |     host: ollama.minikube.local | ||||||
|  |   volumeSize: 1Gi | ||||||
|  |   nodeSelector: {} | ||||||
|  |   tolerations: [] | ||||||
|  |   service: | ||||||
|  |     type: NodePort | ||||||
|  | @ -80,12 +80,12 @@ usage() { | ||||||
|     echo "  -h, --help                 Show this help message." |     echo "  -h, --help                 Show this help message." | ||||||
|     echo "" |     echo "" | ||||||
|     echo "Examples:" |     echo "Examples:" | ||||||
|     echo "  ./$0 --drop" |     echo "  $0 --drop" | ||||||
|     echo "  ./$0 --enable-gpu[count=1]" |     echo "  $0 --enable-gpu[count=1]" | ||||||
|     echo "  ./$0 --enable-api[port=11435]" |     echo "  $0 --enable-api[port=11435]" | ||||||
|     echo "  ./$0 --enable-gpu[count=1] --enable-api[port=12345] --webui[port=3000]" |     echo "  $0 --enable-gpu[count=1] --enable-api[port=12345] --webui[port=3000]" | ||||||
|     echo "  ./$0 --enable-gpu[count=1] --enable-api[port=12345] --webui[port=3000] --data[folder=./ollama-data]" |     echo "  $0 --enable-gpu[count=1] --enable-api[port=12345] --webui[port=3000] --data[folder=./ollama-data]" | ||||||
|     echo "  ./$0 --enable-gpu[count=1] --enable-api[port=12345] --webui[port=3000] --data[folder=./ollama-data] --build" |     echo "  $0 --enable-gpu[count=1] --enable-api[port=12345] --webui[port=3000] --data[folder=./ollama-data] --build" | ||||||
|     echo "" |     echo "" | ||||||
|     echo "This script configures and runs a docker-compose setup with optional GPU support, API exposure, and web UI configuration." |     echo "This script configures and runs a docker-compose setup with optional GPU support, API exposure, and web UI configuration." | ||||||
|     echo "About the gpu to use, the script automatically detects it using the "lspci" command." |     echo "About the gpu to use, the script automatically detects it using the "lspci" command." | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Daniele Viti
						Daniele Viti