# Server (internal bind inside containers) HOST=0.0.0.0 BACKEND_INTERNAL_PORT=8080 FRONTEND_INTERNAL_PORT=80 # External ports on the host (docker compose publish) BACKEND_PORT=8080 FRONTEND_PORT=3080 VITE_DEV_PORT=5173 # OpenRouter OPENROUTER_API_KEY=sk-or-v1-your-key-here OPENROUTER_MODEL=deepseek/deepseek-chat OPENROUTER_BASE_URL=https://openrouter.ai/api/v1 # App DATABASE_URL=sqlite:///./data/assistant.db CORS_ORIGINS=http://localhost:5173,http://localhost:8080,http://localhost:3080 SYSTEM_PROMPT_PATH=./prompts/assistant.md MEMORY_AUTO_EXTRACT=true # Fitness (wger + Open Food Facts — public HTTPS, no proxy) WGER_BASE_URL=https://wger.de/api/v2 OPENFOODFACTS_BASE_URL=https://world.openfoodfacts.org FITNESS_REMINDERS_ENABLED=true # Taiga (on host :9000, nginx → taiga.grigowashere.ru) TAIGA_BASE_URL=http://host.docker.internal:9000 TAIGA_USERNAME=your_taiga_user TAIGA_PASSWORD=your_taiga_password TAIGA_PUBLIC_URL=https://taiga.grigowashere.ru # Gitea (on host :3000, nginx → git.grigowashere.ru) GITEA_BASE_URL=http://host.docker.internal:3000 GITEA_TOKEN=your_gitea_api_token GITEA_PUBLIC_URL=https://git.grigowashere.ru GITEA_WEBHOOK_SECRET=generate_a_random_secret # Gitea webhook URL (repo Settings → Webhooks): # https://assistant.your-domain/api/v1/webhooks/gitea ← nginx → 127.0.0.1:BACKEND_PORT # http://172.17.0.1:8202/api/v1/webhooks/gitea ← если Gitea в Docker (не 127.0.0.1!) REPOS_DIR=/data/repos # Vector DB (phase 3) QDRANT_PORT=6333 QDRANT_GRPC_PORT=6334