# Production environment example for docker-compose.production.yml # --- NiceGUI Server --- HOST=0.0.0.0 PORT=8000 LOG_LEVEL=info RELOAD=false ENVIRONMENT=production # TRANSCRIPTION_COMMIT= RUN_EMBEDDED_WORKER=false LOG_DIR=/app/data/logs LOG_FILE_NAME=transcription.log LOG_FILE_MAX_BYTES=10485760 LOG_FILE_BACKUP_COUNT=5 # --- AI provider --- PROVIDER=openrouter OPENROUTER_API_KEY=replace-with-real-key PROVIDER_MODEL=google/gemini-2.5-flash # PROVIDER_MODELS=["google/gemini-2.5-flash","anthropic/claude-sonnet-4"] # OPENROUTER_HTTP_REFERER= # OPENROUTER_APP_TITLE= DEFAULT_PROMPT_NAME=transcribe_document.md # TRANSCRIPTION_TEMPERATURE= # TRANSCRIPTION_TOP_P= # --- persistence --- DATABASE__DRIVER=postgres # DATABASE__PATH=./data/transcription.db DATABASE__HOST=postgres DATABASE__PORT=5432 DATABASE__DATABASE=transcription DATABASE__USER=transcription DATABASE__PASSWORD=replace-with-strong-password BOOTSTRAP_SCHEMA_ON_STARTUP=false SQLITE_CHECK_SAME_THREAD=false # --- filesystem paths --- UPLOAD_DIR=/app/uploads PROMPT_DIR=/app/prompts # --- backup workflow helpers (not Runtime Settings model fields) --- BACKUP_DIR=/backup BACKUP_RETENTION_DAYS=14 # --- worker reliability --- WORKER_MAX_RETRIES=0 WORKER_PROVIDER_TIMEOUT_SECONDS=30.0 WORKER_STALE_JOB_SECONDS=30.0 WORKER_RETRY_BACKOFF_SECONDS=1.0 WORKER_SHUTDOWN_GRACE_SECONDS=5.0 WORKER_POLL_INTERVAL_SECONDS=1.0 WORKER_MIN_TRANSCRIPTION_CHARS=0 WORKER_MIN_TRANSCRIPTION_LINES=0 WORKER_FAIL_ON_FINISH_REASON_LENGTH=false # --- postgres container --- POSTGRES_DB=transcription POSTGRES_USER=transcription POSTGRES_PASSWORD=replace-with-strong-password # --- cloudflare tunnel --- # Required for token-based tunnel startup. CLOUDFLARE_TUNNEL_TOKEN=replace-with-cloudflare-tunnel-token # --- deployment wiring helpers --- # Runtime Settings writes target this file path inside the app container. RUNTIME_SETTINGS_ENV_FILE=/app/.env.production