|Index|SUSE AI Factory Applications|Open WebUI

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.

  1. (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.txt file.

    > skopeo login dp.apps.rancher.io \
      --username <APPCO-USERNAME> \
      --password-stdin < password.txt
    > skopeo list-tags docker://dp.apps.rancher.io/charts/open-webui
  2. Log 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.txt file.

    > helm registry login dp.apps.rancher.io \
      --username <APPCO-USERNAME> \
      --password-stdin < appco-password.txt
  3. Display all values of the Open WebUI Helm chart. Omit --version to 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

  1. Log in to SUSE Application Collection. To prevent the password from being stored in the shell history, save it to the password.txt file.

    > helm registry login dp.apps.rancher.io \
      --username=<APPCO-USERNAME> \
      --password-stdin < password.txt
  2. Create a namespace for Open WebUI.

    > kubectl create namespace open-webui-system \
      --dry-run=client \
      -o yaml | kubectl apply -f -
  3. (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.txt file.

    > 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 -
  4. (Optional) To override default installation values, list them in a values.yaml file. 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?”.

  5. 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.

Example 5.1: Open WebUI custom values file with Ollama included

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!"

1

Use local-path storage only for testing purposes. For production use, we recommend using a storage solution more suitable for persistent storage. To use SUSE Storage, specify longhorn.

2

Specifies that two large language models (LLM) will be loaded in Ollama when the container starts.

3

Enables GPU support for Ollama. The type must be nvidia because NVIDIA GPUs are the only supported devices. number must be between 1 and the number of NVIDIA GPUs present on the system.

4

Without the persistentVolume option enabled, changes made to Ollama—​such as downloading other LLM—​are lost when the container is restarted.

5

The environment variables that you are making available for the pipeline’s runtime container.

6

A list of pipeline URLs to be downloaded and installed by default. Individual URLs are separated by a semicolon ;.

7

The service name that appears in traces and topological representations in SUSE Observability.

8

The endpoint for the OpenTelemetry collector. Make sure to use the HTTP port of your collector.

9

A file for the model multipliers in cost estimation. You can customize it to match your actual infrastructure experimentally.

10

Specifies the default LLM for Ollama.

11

Specifies the host name for the Open WebUI interface.

12

Installs the Natural Language Toolkit (NLTK) datasets for Ollama. Refer to https://www.nltk.org/index.html for licensing information.

13

API key value for communication between Open WebUI and Open WebUI Pipelines. The default value is '0p3n-w3bu!'.

Example 5.2: Open WebUI custom values file with Ollama installed separately

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"

1

Use local-path storage only for testing purposes. For production use, we recommend using a storage solution suitable for persistent storage, such as SUSE Storage.

2

Use local-path storage only for testing purposes. For production use, we recommend using a storage solution suitable for persistent storage, such as SUSE Storage.

3

Specifies the default LLM for Ollama.

4

These values are optional, required only to receive telemetry data from Open WebUI.

5

These values are optional, required only to receive telemetry data from Open WebUI.

6

The URL of the OpenTelemetry Collector installed by the user.

Example 5.3: Open WebUI custom values file with pipelines enabled

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.

Tip
Tip

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
[...]

1

A list of pipeline URLs to be downloaded and installed by default. Individual URLs are separated by a semicolon ;.

Example 5.4: Open WebUI custom values file with a connection to vLLM

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.

extraEnvVars:
[...]
- name: OPENAI_API_BASE_URL
  value: "http://vllm-router-service.<SAIF_NAMESPACE>.svc.cluster.local:80/v1"
- name: OPENAI_API_KEY
  value: "dummy" 1

1

Open 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"
Example 5.5: Stand-alone deployment of open-webui-pipelines

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.yaml

Following 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: 10Gi

5.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

  1. Log in to SUSE Application Collection. To prevent the password from being stored in the shell history, save it to the password.txt file.

    > helm registry login dp.apps.rancher.io \
      --username=<APPCO-USERNAME> \
      --password-stdin < password.txt
  2. Upgrade 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-conflicts

    1

    If 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