151 lines
4.8 KiB
YAML
151 lines
4.8 KiB
YAML
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
|