# Copy to .env. Keep each comment on its own line: Docker Compose strips a # comment after a value, but reads KEY= # note as the value "# note". # Core POSTGRES_USER=postgres POSTGRES_PASSWORD=postgres POSTGRES_DB=nojoin REDIS_PASSWORD=change_this_before_remote_access WEB_APP_URL=https://localhost:14443 FIRST_RUN_PASSWORD=change_this_before_first_start DATA_ENCRYPTION_KEY=change_this_to_a_long_random_secret NOJOIN_BIND_ADDRESS=127.0.0.1 NOJOIN_TRUSTED_PROXIES=127.0.0.1,::1,nginx # Worker WHISPER_ENABLE_WORD_TIMESTAMPS=true NVIDIA_VISIBLE_DEVICES=all NVIDIA_DRIVER_CAPABILITIES=compute,utility # All Optional Below Here DEFAULT_TIMEZONE=UTC # Built-in MCP connector for AI assistants (docs/MCP.md). false disables the # /mcp endpoint and its OAuth surface. MCP_ENABLED=true # Anonymous MCP handshake and tool listing, so Codex Desktop can start OAuth # (docs/MCP.md). false requires authentication for every request. MCP_ANONYMOUS_DISCOVERY=true # Anonymous usage data (docs/TELEMETRY.md). Empty sends the daily install # heartbeat and leaves usage diagnostics to Settings. false stops both # permanently and true opts in to both permanently. Either locks the UI toggle. NOJOIN_TELEMETRY_ENABLED= # Where exported backup archives are written (docs/BACKUP_RESTORE.md). Empty # means data/backups. The API and the workers must agree on the value. BACKUP_EXPORT_DIR= # umask for the application processes. Empty means 0077 (owner-only access). NOJOIN_UMASK= # What the daily cleanup does with document, audio and proxy files that no row names # (docs/DEPLOYMENT.md#storage-hygiene). Empty means flag, which only reports them; # delete removes them. NOJOIN_STORAGE_HYGIENE= # Reports API stalls and host pressure to the container log # (docs/DEPLOYMENT.md#stall-detection). Empty means true. NOJOIN_STALL_WATCHDOG_ENABLED= # Only needed to refresh the bundled Pyannote assets from Hugging Face. HF_TOKEN= # One of gemini, openai, anthropic or ollama. Empty means gemini. LLM_PROVIDER= GEMINI_API_KEY= OPENAI_API_KEY= ANTHROPIC_API_KEY= OLLAMA_API_URL=http://host.docker.internal:11434 # Ollama num_ctx. Empty means 32768. The KV cache is roughly 190 KiB per token on # a 14B model, so 32768 costs about 6 GB of VRAM on top of the weights. Raise it # only if the card has the headroom. OLLAMA_CONTEXT_WINDOW= # Secondary LLM Provider (used when primary is unavailable) # One of gemini, openai, anthropic or ollama. Empty turns the fallback off. SECONDARY_LLM_PROVIDER= SECONDARY_GEMINI_API_KEY= SECONDARY_OPENAI_API_KEY= SECONDARY_ANTHROPIC_API_KEY= SECONDARY_OLLAMA_API_URL=http://host.docker.internal:11434 # Ollama num_ctx for the secondary provider. Empty means 32768. SECONDARY_OLLAMA_CONTEXT_WINDOW= # Calendar OAuth GOOGLE_OAUTH_CLIENT_ID= GOOGLE_OAUTH_CLIENT_SECRET= MICROSOFT_OAUTH_CLIENT_ID= MICROSOFT_OAUTH_CLIENT_SECRET= MICROSOFT_OAUTH_TENANT_ID=common