JWT_SECRET="change-me-to-something-random" PORT=8080 DATABASE_URL="postgres://openpath:openpath@localhost:5432/openpath?sslmode=disable" DB_HOST="" OPENAI_API_KEY="" OPENAI_ADMIN_API_KEY="" OPENAI_PROJECT_ID="" # Email of the admin whose OpenAI Codex/ChatGPT max-plan sign-in is used # platform-wide for all OpenAI traffic (after a request user's own keys, before # OPENAI_API_KEY). Auto-refreshed every 4h; circuit-breaks to the env key. ADMIN_OPENAI_MAX_PLAN_EMAIL="" ANTHROPIC_API_KEY="" GEMINI_API_KEY="" GROQ_API_KEY="" XAI_API_KEY="" # Management key for programmatic xAI key rotation (separate from XAI_API_KEY); team auto-discovered XAI_MANAGEMENT_KEY="" XAI_TEAM_ID="" DEEPSEEK_API_KEY="" MOONSHOT_API_KEY="" TINKER_API_KEY="" DASHSCOPE_API_KEY="" STEP_API_KEY="" OPENROUTER_API_KEY="" INFERENCE_NET_API_KEY="" # Provisioning key for programmatic OpenRouter key rotation (can only manage keys, not infer) OPENROUTER_PROVISIONING_KEY="" OPENROUTER_APP_REFERER="https://openpaths.io" OPENROUTER_APP_TITLE="OpenPaths" OPENROUTER_APP_CATEGORIES="programming-app" TOGETHER_API_KEY="" MINIMAX_API_KEY="" NETWRCK_API_KEY="" MANIFOLDGEN_API_KEY="" FAL_API_KEY="" BFL_API_KEY="" FAL_ADMIN_API_KEY="" Z_API_KEY="" SAKANA_API_KEY="" TEXTGENERATOR_API_KEY="" MISTRAL_API_KEY="" NVIDIA_API_KEY="" EXA_API_KEY="" APP_API_KEY="" CEREBRAS_API_KEY="" CURSOR_API_KEY="" RUNANYWHERE_API_KEY="" RUNPOD_API_KEY="" SEEDREAM_API_KEY="" # AppNZ TTS (fish-speech, local + RunPod serverless offload) APPNZ_BASE_URL="http://127.0.0.1:8791" APPNZ_API_KEY="" APPNZ_RUNPOD_ENDPOINT_ID="" APPNZ_RUNPOD_API_KEY="" APPNZ_MAX_LOCAL_QUEUE="4" APPNZ_RUNPOD_MIN_CHARS="40" APPNZ_RUNPOD_MAX_RPM="30" # ZImage art index (/art) OPENPATHS_ZIMAGE_ART_INDEX_URL="https://openpathsstatic.openpaths.io/static/data/zimage-art/manifest.json" OPENPATHS_ART_INDEX_DISABLED="0" OPENPATHS_API_KEY="" OPENPATHS_BASE_URL="https://openpaths.io" # Periodic "say hi" latency probes (usage_logs + /stats/model-probes) OPENPATHS_PROBE_API_KEY="" OPENPATHS_PROBE_BASE_URL="http://127.0.0.1:8092" OPENPATHS_MODEL_PROBE_DISABLED="0" # Direct low-cost provider credit checks (daily at 08:00 Auckland time) OPENPATHS_CREDIT_POLL_DISABLED="0" OPENPATHS_CREDIT_POLL_EMAIL="leepenkman@gmail.com" OPENPATHS_CREDIT_POLL_TIME="08:00" OPENPATHS_CREDIT_POLL_TIMEZONE="Pacific/Auckland" OPENPATHS_CREDIT_POLL_TIMEOUT="90s" # AWS SES (email) AWS_SMTP_USERNAME="" AWS_SMTP_PASSWORD="" AWS_REGION="us-east-1" SES_FROM_EMAIL="lee.penkman@netwrck.com" # Stripe STRIPE_SECRET_KEY="" STRIPE_PUBLISHABLE_KEY="" STRIPE_WEBHOOK_SECRET="" # Crypto / Solana (set crypto.enabled: true in config.yaml) SOLANA_WALLET_PUBKEY="" HD_WALLET_SEED="" HELIUS_API_KEY="" BAGS_API_KEY="" SOLANA_PRIVATE_KEY="" # Test fixtures (used by e2e tests) TEST_API_KEY="op-testkey123456789abcdef" TEST_USER_ID="u1" TEST_USER_EMAIL="test@example.com" TEST_USER_NAME="Test User" # Forwarded client IPs are ignored unless both settings are configured. For a # local nginx/Traefik proxy, the loopback list below is usually sufficient. TRUST_PROXY_HEADERS=false TRUSTED_PROXY_CIDRS=127.0.0.1/32,::1/128