michaelnet/thonkpad/open-webui/docker-compose.yml

91 lines
2.1 KiB
YAML

version: "3"
networks:
open-webui:
external: false
searxng:
external: false
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
volumes:
- ./open-webui-data:/app/backend/data
env_file:
- "./.env"
environment:
- ENV=prod
- PORT=8080
- WEBUI_AUTH=True
- WEBUI_SECRET_KEY=${OPEN_WEBUI_SECRET_KEY}
- DEFAULT_LOCALE=en
- ENABLE_OPENAI_API=True
- ENABLE_OLLAMA_API=False
- TASK_MODEL_EXTERNAL=gpt-4o
- OPENAI_API_KEY=${OPENAI_API_KEY}
- CORS_ALLOW_ORIGIN=https://open-webui.michaellisano.com
- SEARXNG_QUERY_URL=http://searxng:8080
restart: unless-stopped
networks:
- open-webui
- searxng
searxng:
# see: https://github.com/searxng/searxng-docker/blob/master/docker-compose.yaml
# (runs on port 8080)
container_name: open-webui-searxng
image: docker.io/searxng/searxng:latest
restart: unless-stopped
networks:
- searxng
volumes:
- ./searxng-settings.yml:/etc/searxng/settings.yml
- ./searxng:/etc/searxng:rw
environment:
- UWSGI_WORKERS=${SEARXNG_UWSGI_WORKERS:-4}
- UWSGI_THREADS=${SEARXNG_UWSGI_THREADS:-4}
cap_drop:
- ALL
cap_add:
- CHOWN
- SETGID
- SETUID
logging:
driver: "json-file"
options:
max-size: "1m"
max-file: "1"
searxng-valkey:
container_name: open-webui-searxng-valkey
image: docker.io/valkey/valkey:8-alpine
command: valkey-server --save 30 1 --loglevel warning
restart: unless-stopped
networks:
- searxng
volumes:
- ./valkey-data2:/data
cap_drop:
- ALL
cap_add:
- SETGID
- SETUID
- DAC_OVERRIDE
logging:
driver: "json-file"
options:
max-size: "1m"
max-file: "1"
open-webui-cloudflared:
container_name: open-webui-cloudflared
image: cloudflare/cloudflared
restart: unless-stopped
command: tunnel run
environment:
- TUNNEL_TOKEN=${OPEN_WEBUI_TUNNEL_TOKEN}
networks:
- open-webui