Open WebUI
Open WebUI is a free and open source chatgpt alternative. Open WebUI is an extensible, feature-rich, and user-friendly self-hosted WebUI designed to operate entirely offline. It supports various LLM runners, including Ollama and OpenAI-compatible APIs. The template include ollama and webui services.
Configuration
# This is the main service for the Open WebUI interface.
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
restart: unless-stopped
ports:
- 8080
environment:
# This should point to your Ollama instance.
# It defaults to the internal 'ollama' service if you uncomment it below.
- "OLLAMA_BASE_URL=http://ollama:11434"
# Secret key for session data encryption. It is configured in the template.toml.
- "WEBUI_SECRET_KEY=${webui_secret_key}"
# --------------------------------------------------------------------------
# Optional: To enable web Browse via Playwright, uncomment the following
# lines AND the 'playwright' service definition below.
# - 'WEB_LOADER_ENGINE=playwright'
# - 'PLAYWRIGHT_WS_URL=ws://playwright:3000'
# --------------------------------------------------------------------------
# Optional: To enable image generation, uncomment the following lines AND
# the 'stable-diffusion-webui' service definition below.
# - 'ENABLE_IMAGE_GENERATION=true'
# - 'AUTOMATIC1111_BASE_URL=http://stable-diffusion-webui:7860'
# --------------------------------------------------------------------------
volumes:
- open-webui:/app/backend/data
# To use the internal Ollama and other optional services, uncomment the following 'depends_on' section.
# Make sure to also uncomment the services you need below.
# depends_on:
# - ollama
# - playwright
# - stable-diffusion-webui
extra_hosts:
- host.docker.internal:host-gateway
# -----------------------------------------------------------------------------------
# Optional: Ollama Service
# To enable local AI model hosting with Ollama, uncomment the following service.
# services:
# ollama:
# image: ollama/ollama:latest
# restart: unless-stopped
# volumes:
# - ollama:/root/.ollama
# # --------------------------------------------------------------------------
# # Optional: GPU Support (Uncomment the following lines to enable)
# # deploy:
# # resources:
# # reservations:
# # devices:
# # - driver: nvidia
# # count: 1
# # capabilities: [gpu]
# # --------------------------------------------------------------------------
# -----------------------------------------------------------------------------------
# Optional: Playwright Service for Web Loader
# To enable the web loader feature in Open WebUI, uncomment this service.
# playwright:
# image: mcr.microsoft.com/playwright:v1.49.1-noble
# restart: unless-stopped
# command: npx -y [email protected] run-server --port 3000 --host 0.0.0.0
# -----------------------------------------------------------------------------------
# -----------------------------------------------------------------------------------
# Optional: Stable Diffusion Service for Image Generation
# To enable image generation, uncomment this service. (Note: AMD64/x86_64 only)
# stable-diffusion-webui:
# platform: linux/amd64
# image: ghcr.io/neggles/sd-webui-docker:latest
# restart: unless-stopped
# environment:
# CLI_ARGS: "--api --use-cpu all --precision full --no-half --skip-torch-cuda-test --ckpt /empty.pt --do-not-download-clip --disable-nan-check --disable-opt-split-attention"
# volumes:
# # You might need to adjust this volume based on your setup.
# - ./sd-empty.pt:/empty.pt
# -----------------------------------------------------------------------------------
volumes:
open-webui: {}
ollama: {}[variables]
main_domain = "${domain}"
webui_secret_key = "${password:32}"
[config]
[[config.domains]]
serviceName = "open-webui"
port = 8080
host = "${main_domain}"
[config.env]
# Secret key for signing JWTs for authentication.
# A random key is generated by default.
webui_secret_key = "${webui_secret_key}" # API Key
[[config.mounts]]
serviceName = "open-webui"
type = "volume"
source = "open-webui"
target = "/app/backend/data"
# Mount for the optional 'ollama' service.
# This will be used if you uncomment the 'ollama' service in the docker-compose file.
[[config.mounts]]
serviceName = "ollama"
type = "volume"
source = "ollama"
target = "/root/.ollama"Base64
To import this template in Dokploy: create a Compose service → Advanced → Base64 import and paste the content below:
ewogICJjb21wb3NlIjogIiMgVGhpcyBpcyB0aGUgbWFpbiBzZXJ2aWNlIGZvciB0aGUgT3BlbiBXZWJVSSBpbnRlcmZhY2UuXG5zZXJ2aWNlczpcbiAgb3Blbi13ZWJ1aTpcbiAgICBpbWFnZTogZ2hjci5pby9vcGVuLXdlYnVpL29wZW4td2VidWk6bWFpblxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXG4gICAgcG9ydHM6XG4gICAgICAtIDgwODBcbiAgICBlbnZpcm9ubWVudDpcbiAgICAgICMgVGhpcyBzaG91bGQgcG9pbnQgdG8geW91ciBPbGxhbWEgaW5zdGFuY2UuXG4gICAgICAjIEl0IGRlZmF1bHRzIHRvIHRoZSBpbnRlcm5hbCAnb2xsYW1hJyBzZXJ2aWNlIGlmIHlvdSB1bmNvbW1lbnQgaXQgYmVsb3cuXG4gICAgICAtIFwiT0xMQU1BX0JBU0VfVVJMPWh0dHA6Ly9vbGxhbWE6MTE0MzRcIlxuICAgICAgIyBTZWNyZXQga2V5IGZvciBzZXNzaW9uIGRhdGEgZW5jcnlwdGlvbi4gSXQgaXMgY29uZmlndXJlZCBpbiB0aGUgdGVtcGxhdGUudG9tbC5cbiAgICAgIC0gXCJXRUJVSV9TRUNSRVRfS0VZPSR7d2VidWlfc2VjcmV0X2tleX1cIlxuICAgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIyBPcHRpb25hbDogVG8gZW5hYmxlIHdlYiBCcm93c2UgdmlhIFBsYXl3cmlnaHQsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nXG4gICAgICAjIGxpbmVzIEFORCB0aGUgJ3BsYXl3cmlnaHQnIHNlcnZpY2UgZGVmaW5pdGlvbiBiZWxvdy5cbiAgICAgICMgLSAnV0VCX0xPQURFUl9FTkdJTkU9cGxheXdyaWdodCdcbiAgICAgICMgLSAnUExBWVdSSUdIVF9XU19VUkw9d3M6Ly9wbGF5d3JpZ2h0OjMwMDAnXG4gICAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAjIE9wdGlvbmFsOiBUbyBlbmFibGUgaW1hZ2UgZ2VuZXJhdGlvbiwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZXMgQU5EXG4gICAgICAjIHRoZSAnc3RhYmxlLWRpZmZ1c2lvbi13ZWJ1aScgc2VydmljZSBkZWZpbml0aW9uIGJlbG93LlxuICAgICAgIyAtICdFTkFCTEVfSU1BR0VfR0VORVJBVElPTj10cnVlJ1xuICAgICAgIyAtICdBVVRPTUFUSUMxMTExX0JBU0VfVVJMPWh0dHA6Ly9zdGFibGUtZGlmZnVzaW9uLXdlYnVpOjc4NjAnXG4gICAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgdm9sdW1lczpcbiAgICAgIC0gb3Blbi13ZWJ1aTovYXBwL2JhY2tlbmQvZGF0YVxuICAgICMgVG8gdXNlIHRoZSBpbnRlcm5hbCBPbGxhbWEgYW5kIG90aGVyIG9wdGlvbmFsIHNlcnZpY2VzLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyAnZGVwZW5kc19vbicgc2VjdGlvbi5cbiAgICAjIE1ha2Ugc3VyZSB0byBhbHNvIHVuY29tbWVudCB0aGUgc2VydmljZXMgeW91IG5lZWQgYmVsb3cuXG4gICAgIyBkZXBlbmRzX29uOlxuICAgICMgICAtIG9sbGFtYVxuICAgICMgICAtIHBsYXl3cmlnaHRcbiAgICAjICAgLSBzdGFibGUtZGlmZnVzaW9uLXdlYnVpXG4gICAgZXh0cmFfaG9zdHM6XG4gICAgICAtIGhvc3QuZG9ja2VyLmludGVybmFsOmhvc3QtZ2F0ZXdheVxuXG4jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIE9wdGlvbmFsOiBPbGxhbWEgU2VydmljZVxuIyBUbyBlbmFibGUgbG9jYWwgQUkgbW9kZWwgaG9zdGluZyB3aXRoIE9sbGFtYSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgc2VydmljZS5cbiMgc2VydmljZXM6XG4jICAgb2xsYW1hOlxuIyAgICAgaW1hZ2U6IG9sbGFtYS9vbGxhbWE6bGF0ZXN0XG4jICAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxuIyAgICAgdm9sdW1lczpcbiMgICAgICAgLSBvbGxhbWE6L3Jvb3QvLm9sbGFtYVxuIyAgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyAgICAgIyBPcHRpb25hbDogR1BVIFN1cHBvcnQgKFVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmVzIHRvIGVuYWJsZSlcbiMgICAgICMgZGVwbG95OlxuIyAgICAgIyAgIHJlc291cmNlczpcbiMgICAgICMgICAgIHJlc2VydmF0aW9uczpcbiMgICAgICMgICAgICAgZGV2aWNlczpcbiMgICAgICMgICAgICAgICAtIGRyaXZlcjogbnZpZGlhXG4jICAgICAjICAgICAgICAgICBjb3VudDogMVxuIyAgICAgIyAgICAgICAgICAgY2FwYWJpbGl0aWVzOiBbZ3B1XVxuIyAgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIE9wdGlvbmFsOiBQbGF5d3JpZ2h0IFNlcnZpY2UgZm9yIFdlYiBMb2FkZXJcbiMgVG8gZW5hYmxlIHRoZSB3ZWIgbG9hZGVyIGZlYXR1cmUgaW4gT3BlbiBXZWJVSSwgdW5jb21tZW50IHRoaXMgc2VydmljZS5cbiMgcGxheXdyaWdodDpcbiMgICBpbWFnZTogbWNyLm1pY3Jvc29mdC5jb20vcGxheXdyaWdodDp2MS40OS4xLW5vYmxlXG4jICAgcmVzdGFydDogdW5sZXNzLXN0b3BwZWRcbiMgICBjb21tYW5kOiBucHggLXkgcGxheXdyaWdodEAxLjQ5LjEgcnVuLXNlcnZlciAtLXBvcnQgMzAwMCAtLWhvc3QgMC4wLjAuMFxuIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIE9wdGlvbmFsOiBTdGFibGUgRGlmZnVzaW9uIFNlcnZpY2UgZm9yIEltYWdlIEdlbmVyYXRpb25cbiMgVG8gZW5hYmxlIGltYWdlIGdlbmVyYXRpb24sIHVuY29tbWVudCB0aGlzIHNlcnZpY2UuIChOb3RlOiBBTUQ2NC94ODZfNjQgb25seSlcbiMgc3RhYmxlLWRpZmZ1c2lvbi13ZWJ1aTpcbiMgICBwbGF0Zm9ybTogbGludXgvYW1kNjRcbiMgICBpbWFnZTogZ2hjci5pby9uZWdnbGVzL3NkLXdlYnVpLWRvY2tlcjpsYXRlc3RcbiMgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxuIyAgIGVudmlyb25tZW50OlxuIyAgICAgQ0xJX0FSR1M6IFwiLS1hcGkgLS11c2UtY3B1IGFsbCAtLXByZWNpc2lvbiBmdWxsIC0tbm8taGFsZiAtLXNraXAtdG9yY2gtY3VkYS10ZXN0IC0tY2twdCAvZW1wdHkucHQgLS1kby1ub3QtZG93bmxvYWQtY2xpcCAtLWRpc2FibGUtbmFuLWNoZWNrIC0tZGlzYWJsZS1vcHQtc3BsaXQtYXR0ZW50aW9uXCJcbiMgICB2b2x1bWVzOlxuIyAgICAgIyBZb3UgbWlnaHQgbmVlZCB0byBhZGp1c3QgdGhpcyB2b2x1bWUgYmFzZWQgb24geW91ciBzZXR1cC5cbiMgICAgIC0gLi9zZC1lbXB0eS5wdDovZW1wdHkucHRcbiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxudm9sdW1lczpcbiAgb3Blbi13ZWJ1aToge31cbiAgb2xsYW1hOiB7fVxuIiwKICAiY29uZmlnIjogIlt2YXJpYWJsZXNdXG5tYWluX2RvbWFpbiA9IFwiJHtkb21haW59XCJcbndlYnVpX3NlY3JldF9rZXkgPSBcIiR7cGFzc3dvcmQ6MzJ9XCJcblxuW2NvbmZpZ11cbltbY29uZmlnLmRvbWFpbnNdXVxuc2VydmljZU5hbWUgPSBcIm9wZW4td2VidWlcIlxucG9ydCA9IDgwODBcbmhvc3QgPSBcIiR7bWFpbl9kb21haW59XCJcblxuW2NvbmZpZy5lbnZdXG4jIFNlY3JldCBrZXkgZm9yIHNpZ25pbmcgSldUcyBmb3IgYXV0aGVudGljYXRpb24uXG4jIEEgcmFuZG9tIGtleSBpcyBnZW5lcmF0ZWQgYnkgZGVmYXVsdC5cbndlYnVpX3NlY3JldF9rZXkgPSBcIiR7d2VidWlfc2VjcmV0X2tleX1cIiAjIEFQSSBLZXlcblxuW1tjb25maWcubW91bnRzXV1cbnNlcnZpY2VOYW1lID0gXCJvcGVuLXdlYnVpXCJcbnR5cGUgPSBcInZvbHVtZVwiXG5zb3VyY2UgPSBcIm9wZW4td2VidWlcIlxudGFyZ2V0ID0gXCIvYXBwL2JhY2tlbmQvZGF0YVwiXG5cbiMgTW91bnQgZm9yIHRoZSBvcHRpb25hbCAnb2xsYW1hJyBzZXJ2aWNlLlxuIyBUaGlzIHdpbGwgYmUgdXNlZCBpZiB5b3UgdW5jb21tZW50IHRoZSAnb2xsYW1hJyBzZXJ2aWNlIGluIHRoZSBkb2NrZXItY29tcG9zZSBmaWxlLlxuW1tjb25maWcubW91bnRzXV1cbnNlcnZpY2VOYW1lID0gXCJvbGxhbWFcIlxudHlwZSA9IFwidm9sdW1lXCJcbnNvdXJjZSA9IFwib2xsYW1hXCJcbnRhcmdldCA9IFwiL3Jvb3QvLm9sbGFtYVwiIgp9Links
Tags
chat
Version: v0.3.7