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
|