mirror of
https://github.com/Cian-H/openwebui_engineering_assistant.git
synced 2025-12-22 20:51:57 +00:00
160 lines
4.0 KiB
YAML
160 lines
4.0 KiB
YAML
services:
|
|
openwebui:
|
|
image: ghcr.io/open-webui/open-webui:main
|
|
container_name: openwebui
|
|
networks:
|
|
- webui
|
|
ports:
|
|
- "3000:8080"
|
|
volumes:
|
|
- open-webui:/app/backend/data
|
|
environment:
|
|
WEBUI_AUTH: False
|
|
WEBUI_URL: "http://localhost:3000/"
|
|
ENABLE_PERSISTENT_CONFIG: True
|
|
# OpenAI Config
|
|
ENABLE_OPENAI_API: True
|
|
OPENAI_API_KEY: ${OPENAI_API_KEY}
|
|
AUDIO_STT_ENGINE: openai
|
|
AUDIO_STT_OPENAI_API_KEY: ${OPENAI_API_KEY}
|
|
AUDIO_TTS_OPENAI_API_KEY: ${OPENAI_API_KEY}
|
|
ENABLE_IMAGE_GENERATION: True
|
|
IMAGE_GENERATION_ENGINE: openai
|
|
IMAGE_GENERATION_MODEL: dall-e-3
|
|
IMAGE_SIZE: 1792x1024
|
|
IMAGES_OPENAI_API_KEY: ${OPENAI_API_KEY}
|
|
# Jupyter API config
|
|
ENABLE_CODE_INTERPRETER: True
|
|
ENABLE_CODE_EXECUTION: True
|
|
CODE_EXECUTION_ENGINE: jupyter
|
|
CODE_EXECUTION_JUPYTER_URL: http://jupyter:8888
|
|
CODE_EXECUTION_JUPYTER_AUTH: token
|
|
CODE_EXECUTION_JUPYTER_AUTH_TOKEN: ${JUPYTER_TOKEN}
|
|
CODE_EXECUTION_JUPYTER_TIMEOUT: 300
|
|
CODE_INTERPRETER_ENGINE: jupyter
|
|
CODE_INTERPRETER_JUPYTER_URL: http://jupyter:8888
|
|
CODE_INTERPRETER_JUPYTER_AUTH: token
|
|
CODE_INTERPRETER_AUTH_TOKEN: ${JUPYTER_TOKEN}
|
|
CODE_INTERPRETER_TIMEOUT: 300
|
|
# Search API config
|
|
ENABLE_RAG_WEB_SEARCH: True
|
|
RAG_WEB_SEARCH_ENGINE: searxng
|
|
RAG_WEB_SEARCH_RESULT_COUNT: 3
|
|
RAG_WEB_SEARCH_CONCURRENT_REQUESTS: 10
|
|
SEARXNG_QUERY_URL: http://searxng:8080/search?q=<query>
|
|
# ChromaDB RAG config
|
|
VECTOR_DB: chroma
|
|
CHROMA_HTTP_HOST: http://chroma:8000
|
|
CHROMA_HTTP_PORT: 8000
|
|
# Redis caching config
|
|
REDIS_URL: redis://valkey:6379/0
|
|
ENABLE_WEBSOCKET_SUPPORT: True
|
|
WEBSOCKET_MANAGER: redis
|
|
WEBSOCKET_REDIS_URL: redis://valkey:6379/1
|
|
deploy:
|
|
resources:
|
|
reservations:
|
|
devices:
|
|
- driver: nvidia
|
|
capabilities: [gpu]
|
|
depends_on:
|
|
- jupyter
|
|
- searxng
|
|
- chromadb
|
|
- valkey
|
|
- blender
|
|
|
|
jupyter:
|
|
image: quay.io/jupyter/datascience-notebook
|
|
container_name: jupyter
|
|
volumes:
|
|
- jupyter:/home/jovyan/work
|
|
networks:
|
|
- webui
|
|
command: start-notebook.sh --ip=0.0.0.0
|
|
environment:
|
|
JUPYTER_LAB_ENABLE: yes
|
|
JUPYTER_TOKEN: ${JUPYTER_TOKEN}
|
|
depends_on:
|
|
- webui
|
|
|
|
searxng:
|
|
image: docker.io/searxng/searxng:latest
|
|
container_name: searxng
|
|
volumes:
|
|
- searxng:/etc/searxng:rw
|
|
- ./searxng/limiter.toml:/usr/local/searxng/searx/limiter.toml
|
|
- ./searxng/settings.yml:/usr/local/searxng/searx/settings.yml
|
|
- ./searxng/uwsgi.ini:/usr/local/searxng/searx/uwsgi.ini
|
|
networks:
|
|
- webui
|
|
environment:
|
|
SEARXNG_HOSTNAME: searxng:8080/
|
|
BASE_URL: http://searxng:8080/
|
|
INSTANCE_NAME: eng_assistant_test_searxng
|
|
restart: unless-stopped
|
|
cap_drop:
|
|
- ALL
|
|
cap_add:
|
|
- CHOWN
|
|
- SETGID
|
|
- SETUID
|
|
- DAC_OVERRIDE
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "1m"
|
|
max-file: "1"
|
|
|
|
chroma:
|
|
image: docker.io/chromadb/chroma:latest
|
|
container_name: chroma
|
|
volumes:
|
|
- chroma:/chroma/chroma
|
|
networks:
|
|
- webui
|
|
environment:
|
|
IS_PERSISTENT: True
|
|
ANONYMIZED_TELEMETRY: True
|
|
restart: unless-stopped
|
|
|
|
valkey:
|
|
image: docker.io/valkey/valkey:8.0.1-alpine
|
|
container_name: valkey
|
|
volumes:
|
|
- valkey:/data
|
|
command: "valkey-server --save 30 1"
|
|
healthcheck:
|
|
test: ["CMD", "valkey-cli", "ping"]
|
|
interval: 1s
|
|
timeout: 3s
|
|
retries: 5
|
|
start_period: 5s
|
|
restart: unless-stopped
|
|
cap_drop:
|
|
- ALL
|
|
cap_add:
|
|
- SETGID
|
|
- SETUID
|
|
- DAC_OVERRIDE
|
|
networks:
|
|
- webui
|
|
|
|
blender:
|
|
image: ghcr.io/cian-h/simple_blender_server:main
|
|
container_name: blender
|
|
networks:
|
|
- webui
|
|
restart: unless-stopped
|
|
|
|
networks:
|
|
webui:
|
|
|
|
volumes:
|
|
searxng:
|
|
open-webui:
|
|
jupyter:
|
|
chroma:
|
|
valkey:
|
|
blender:
|