Files
iiEsaywebUI/docker-compose.yml
2026-02-19 18:12:09 +00:00

151 lines
4.8 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
services:
ollama:
image: ollama/ollama:latest
container_name: ollama
restart: unless-stopped
volumes:
- ollama_data:/root/.ollama
networks:
- iieasy-ai
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
environment:
- NVIDIA_VISIBLE_DEVICES=${NVIDIA_VISIBLE_DEVICES:-all}
healthcheck:
test: ["CMD", "ollama", "list"]
interval: 30s
timeout: 10s
retries: 3
qdrant:
image: qdrant/qdrant:latest
container_name: qdrant
restart: unless-stopped
volumes:
- qdrant_data:/qdrant/storage
ports:
- "6333:6333" # gRPC API
- "6334:6334" # HTTP API (только внутри сети)
networks:
- iieasy-ai
environment:
- QDRANT_API_KEY=${QDRANT_API_KEY}
healthcheck:
test: ["CMD-SHELL", "timeout 1 bash -c '</dev/tcp/localhost/6333' || exit 1"]
interval: 30s
timeout: 10s
retries: 5
start_period: 30s
searxng:
image: ghcr.io/searxng/searxng:latest
container_name: searxng
restart: always
volumes:
- ./searxng:/etc/searxng:rw
- searxng_cache:/var/cache/searxng
networks:
- iieasy-ai
environment:
- SEARXNG_BASE_URL=http://searxng:8080/
# Ограничиваем ресурсы, чтобы поиск не отъедал лишнего
deploy:
resources:
limits:
memory: 512M
healthcheck:
test: ["CMD-SHELL", "wget --no-verbose --tries=1 --spider http://localhost:8080 || exit 1"]
interval: 30s
timeout: 10s
retries: 5
start_period: 40s
open-webui:
image: ghcr.io/open-webui/open-webui:v0.8.3
container_name: open-webui
restart: unless-stopped
ports:
- "3001:8080" # Изменено с 3000 на 3001 для избежания конфликтов
volumes:
- openwebui_data:/app/backend/data
- ./media:/app/media:ro # Монтирование медиа-файлов для ребрендинга
- ./media:/app/web/static/custom:ro # Монтирование кастомных логотипов для веб-интерфейса
networks:
- iieasy-ai
depends_on:
qdrant:
condition: service_healthy
searxng:
condition: service_started
environment:
# Базовая конфигурация
- WEBUI_NAME=iiEasyWeb
- WEBUI_URL=${DOMAIN_OPENWEBUI}
- ENABLE_SIGNUP=false
- DEFAULT_USER_ROLE=user
# Кастомные логотипы и favicon (через Admin Panel или переменные окружения)
# Пути к файлам относительно /static/ или полные URL
# Можно настроить через Admin Panel: Settings → Appearance → Logo
# Qdrant векторная БД
- VECTOR_DB=qdrant
- QDRANT_URI=http://qdrant:6333
- QDRANT_API_KEY=${QDRANT_API_KEY}
# SearXNG веб-поиск (настройки как в рабочем демо)
- RAG_WEB_SEARCH_ENGINE=searxng
- SEARXNG_QUERY_URL=http://searxng:8080/search?q=<query>&format=json
- ENABLE_WEB_SEARCH=true
- WEB_SEARCH_RESULT_COUNT=5
- WEB_SEARCH_TRUST_ENV=true
- WEB_SEARCH_CONCURRENT_REQUESTS=1
- USER_AGENT=Open-WebUI-RAG-Bot
# Ollama API для работы с изображениями
- OLLAMA_BASE_URL=http://ollama:11434
# Authentik OIDC SSO
- OAUTH_CLIENT_ID=${OAUTH_CLIENT_ID}
- OAUTH_CLIENT_SECRET=${OAUTH_CLIENT_SECRET}
- OAUTH_PROVIDER_NAME=iiEasy ID
# Правильный формат для Authentik: полный URL до .well-known/openid-configuration
- OPENID_PROVIDER_URL=${OPENID_CONNECT_ISSUER}.well-known/openid-configuration
- OPENID_REDIRECT_URI=${DOMAIN_OPENWEBUI}/oauth/oidc/callback
- ENABLE_OAUTH_SIGNUP=true
- ENABLE_LOGIN_FORM=true
# Форма входа включена как fallback, если OAuth не работает
# Можно отключить после полной настройки OAuth: ENABLE_LOGIN_FORM=false
- OAUTH_MERGE_ACCOUNTS_BY_EMAIL=true
# Bitwarden CLI интеграция (подготовка)
- BW_CLIENTID=${BW_CLIENTID}
- BW_CLIENTSECRET=${BW_CLIENTSECRET}
# Отключение проверки обновлений и аналитики
- ENABLE_PERSISTENT_CONFIG=true
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
interval: 30s
timeout: 10s
retries: 3
volumes:
ollama_data:
driver: local
qdrant_data:
driver: local
searxng_cache:
driver: local
openwebui_data:
driver: local
networks:
iieasy-ai:
driver: bridge