Add project and deployment instruction (docs/DEPLOYMENT.md)

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
ars
2026-02-19 18:12:09 +00:00
commit 53c572ef46
94 changed files with 9200 additions and 0 deletions

150
docker-compose.yml Normal file
View File

@@ -0,0 +1,150 @@
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