5 Open WebUI #
Open WebUI (https://openwebui.com) is an open-source, extensible Web interface for managing and interacting with large language models (LLMs) locally. It provides a user-friendly chat interface that integrates with backend engines like Ollama and vLLM. The application supports retrieval-augmented generation, prompt engineering, and customizable pipelines to optimize your local AI workflows.
5.1 How do I get the values list for Open WebUI Helm chart? #
Before deploying Open WebUI, it is important to know more about the supported configurations.
(Optional) To get the values for a specific Open WebUI chart version, log in to SUSE Application Collection and identify the version. To prevent the password from being stored in the shell history, save it to the
password.txtfile.> skopeo login dp.apps.rancher.io \ --username <APPCO-USERNAME> \ --password-stdin < password.txt > skopeo list-tags docker://dp.apps.rancher.io/charts/open-webuiLog in to SUSE Application Collection where Open WebUI chart is stored. To prevent the password from being stored in the shell history, save it to the
password.txtfile.> helm registry login dp.apps.rancher.io \ --username <APPCO-USERNAME> \ --password-stdin < appco-password.txtDisplay all values of the Open WebUI Helm chart. Omit
--versionto display the latest chart.> helm show values oci://dp.apps.rancher.io/charts/open-webui \ --version <VERSION>
5.2 How do I install Open WebUI? #
You can install Open WebUI either using Rancher Prime or on the command line with Helm.
5.2.1 Installing with Rancher Prime #
Refer to AI application installation for a general installation procedure.
5.2.2 Installing with Helm #
Log in to SUSE Application Collection. To prevent the password from being stored in the shell history, save it to the
password.txtfile.> helm registry login dp.apps.rancher.io \ --username=<APPCO-USERNAME> \ --password-stdin < password.txtCreate a namespace for Open WebUI.
> kubectl create namespace open-webui-system \ --dry-run=client \ -o yaml | kubectl apply -f -(Optional) If you have not created image pull secrets for SUSE Application Collection, create them now. To prevent the password from being stored in the shell history, save it to the
password.txtfile.> kubectl create secret docker-registry application-collection \ --docker-server=dp.apps.rancher.io \ --docker-username=<APPCO-USERNAME> \ --docker-password="$(< password.txt)" \ -n open-webui-system \ --dry-run=client -o yaml | kubectl apply -f -(Optional) To override default installation values, list them in a
values.yamlfile. For a complete list of Open WebUI chart values, refer to Section 5.1, “How do I get the values list for Open WebUI Helm chart?”.Install Open WebUI. To keep the default installation values, omit
-f values.yaml.> helm install open-webui \ oci://dp.apps.rancher.io/charts/open-webui \ -n open-webui-system \ -f values.yaml
5.3 What custom values examples are available for Open WebUI? #
To override the default values during the Helm chart installation or update, you can create a YAML file with custom values.
Then, apply these values by specifying the path to the custom values file with the -f option of the helm command.
The values file installs Ollama during the Open WebUI installation.
global:
imagePullSecrets:
- application-collection
ollamaUrls:
- http://open-webui-ollama.<SAIF_NAMESPACE>.svc.cluster.local:11434
persistence:
enabled: true
storageClass: local-path 1
ollama:
enabled: true
ingress:
enabled: false
defaultModel: "gemma:2b"
ollama:
models: 2
pull:
- "gemma:2b"
- "llama3.1"
gpu: 3
enabled: true
type: 'nvidia'
number: 1
persistentVolume: 4
enabled: true
storageClass: local-path
pipelines:
enabled: true
persistence:
storageClass: local-path
extraEnvVars: 5
- name: PIPELINES_URLS 6
value: "https://raw.githubusercontent.com/SUSE/suse-ai-observability-extension/refs/heads/main/integrations/oi-filter/suse_ai_filter.py"
- name: OTEL_SERVICE_NAME 7
value: "Open WebUI"
- name: OTEL_EXPORTER_HTTP_OTLP_ENDPONT 8
value: "http://opentelemetry-collector.suse-observability.svc.cluster.local:4318"
- name: PRICING_JSON 9
value: "https://raw.githubusercontent.com/SUSE/suse-ai-observability-extension/refs/heads/main/integrations/oi-filter/pricing.json"
ingress:
enabled: true
class: ""
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/proxy-body-size: "1024m"
host: suse-ollama-webui 10
tls: true
extraEnvVars:
- name: DEFAULT_MODELS 11
value: "gemma:2b"
- name: DEFAULT_USER_ROLE
value: "user"
- name: WEBUI_NAME
value: "SUSE AI"
- name: GLOBAL_LOG_LEVEL
value: INFO
- name: RAG_EMBEDDING_MODEL
value: "sentence-transformers/all-MiniLM-L6-v2"
- name: VECTOR_DB
value: "milvus"
- name: MILVUS_URI
value: http://milvus.<SAIF_NAMESPACE>.svc.cluster.local:19530
- name: INSTALL_NLTK_DATASETS 12
value: "true"
- name: OMP_NUM_THREADS
value: "1"
- name: OPENAI_API_KEY 13
value: "0p3n-w3bu!"Use | |
Specifies that two large language models (LLM) will be loaded in Ollama when the container starts. | |
Enables GPU support for Ollama.
The | |
Without the | |
The environment variables that you are making available for the pipeline’s runtime container. | |
A list of pipeline URLs to be downloaded and installed by default.
Individual URLs are separated by a semicolon | |
The service name that appears in traces and topological representations in SUSE Observability. | |
The endpoint for the OpenTelemetry collector. Make sure to use the HTTP port of your collector. | |
A file for the model multipliers in cost estimation. You can customize it to match your actual infrastructure experimentally. | |
Specifies the default LLM for Ollama. | |
Specifies the host name for the Open WebUI interface. | |
Installs the Natural Language Toolkit (NLTK) datasets for Ollama. Refer to https://www.nltk.org/index.html for licensing information. | |
API key value for communication between Open WebUI and Open WebUI Pipelines. The default value is '0p3n-w3bu!'. |
The values file installs Ollama separately from the Open WebUI installation.
global:
imagePullSecrets:
- application-collection
ollamaUrls:
- http://ollama.<SAIF_NAMESPACE>.svc.cluster.local:11434
persistence:
enabled: true
storageClass: local-path 1
ollama:
enabled: false
pipelines:
enabled: False
persistence:
storageClass: local-path 2
ingress:
enabled: true
class: ""
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: "true"
host: suse-ollama-webui
tls: true
extraEnvVars:
- name: DEFAULT_MODELS 3
value: "gemma:2b"
- name: DEFAULT_USER_ROLE
value: "user"
- name: WEBUI_NAME
value: "SUSE AI"
- name: GLOBAL_LOG_LEVEL
value: INFO
- name: RAG_EMBEDDING_MODEL
value: "sentence-transformers/all-MiniLM-L6-v2"
- name: VECTOR_DB
value: "milvus"
- name: MILVUS_URI
value: http://milvus.<SAIF_NAMESPACE>.svc.cluster.local:19530
- name: ENABLE_OTEL 4
value: "true"
- name: OTEL_EXPORTER_OTLP_ENDPOINT 5
value: http://opentelemetry-collector.observability.svc.cluster.local:4317 6
- name: OMP_NUM_THREADS
value: "1"Use | |
Use | |
Specifies the default LLM for Ollama. | |
These values are optional, required only to receive telemetry data from Open WebUI. | |
These values are optional, required only to receive telemetry data from Open WebUI. | |
The URL of the OpenTelemetry Collector installed by the user. |
The values file installs Ollama separately and enables Open WebUI pipelines. This simple filter adds a limit to the number of question and answer turns during the LLM chat.
Pipelines normally require additional configuration provided either via environment variables or specified in the Open WebUI Web UI.
global:
imagePullSecrets:
- application-collection
ollamaUrls:
- http://ollama.<SAIF_NAMESPACE>.svc.cluster.local:11434
persistence:
enabled: true
storageClass: local-path
ollama:
enabled: false
pipelines:
enabled: true
persistence:
storageClass: local-path
extraEnvVars:
- name: PIPELINES_URLS 1
value: "https://raw.githubusercontent.com/SUSE/suse-ai-observability-extension/refs/heads/main/integrations/oi-filter/conversation_turn_limit_filter.py"
ingress:
enabled: true
class: ""
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: "true"
host: suse-ollama-webui
tls: true
[...]A list of pipeline URLs to be downloaded and installed by default.
Individual URLs are separated by a semicolon |
The following example shows how to extend the extraEnvVars section of the Open WebUI custom values file to connect to vLLM.
Replace SAIF_NAMESPACE with your Kubernetes namespace.
Find more details about installing vLLM in Section 8.3, “What custom values examples are available for vLLM?”.
extraEnvVars:
[...]
- name: OPENAI_API_BASE_URL
value: "http://vllm-router-service.<SAIF_NAMESPACE>.svc.cluster.local:80/v1"
- name: OPENAI_API_KEY
value: "dummy" 1Open WebUI will require you to provide the OpenAI API key. |
If the Open WebUI installation has pipelines enabled besides the vLLM deployment, you can extend the extraEnvVars section as follows.
extraEnvVars:
[...]
- name: OPENAI_API_BASE_URLS
value: "http://open-webui-pipelines.<SAIF_NAMESPACE>.svc.cluster.local:9099;http://vllm-router-service.<SAIF_NAMESPACE>.svc.cluster.local:80/v1"
- name: OPENAI_API_KEYS
value: "0p3n-w3bu!;dummy"You can install the open-webui-pipelines service as a stand-alone deployment, independent of the Open WebUI chart:
> helm upgrade --install open-webui-pipelines \
oci://dp.apps.rancher.io/charts/open-webui-pipelines \
-n <SAIF_NAMESPACE> \
-f open-webui-pipelines-values.yamlFollowing is an example of the open-webui-pipelines-values.yaml custom values file.
global:
imagePullSecrets:
- application-collection
image:
registry: dp.apps.rancher.io
repository: containers/open-webui-pipelines
tag: <IMAGE_TAG>
pullPolicy: IfNotPresent
persistence:
enabled: true
storageClass: local-path
size: 10Gi5.4 How do I upgrade Open WebUI? #
You can upgrade Open WebUI either using Rancher Prime or on the command line with Helm.
5.4.1 Upgrading with Rancher Prime #
Refer to AI application upgrade for a general upgrade procedure.
5.4.2 Upgrading with Helm #
Log in to SUSE Application Collection. To prevent the password from being stored in the shell history, save it to the
password.txtfile.> helm registry login dp.apps.rancher.io \ --username=<APPCO-USERNAME> \ --password-stdin < password.txtUpgrade Open WebUI.
> helm upgrade open-webui \ oci://dp.apps.rancher.io/charts/open-webui \ -n open-webui-system \ --version <VERSION_NUMBER> \ 1 --wait --timeout 15m \ --force-conflictsIf you omit
--version, Open WebUI gets upgraded to the latest available version.
5.5 How do I remove Open WebUI? #
You can remove Open WebUI either using Rancher Prime or on the command line with Helm.
5.5.1 Removal using Rancher Prime #
Refer to AI application removal for a general removal procedure.
5.5.2 Removal using Helm #
To remove Open WebUI using Helm, use the following command:
> helm uninstall open-webui -n open-webui-system