NODE_ENV=production PORT=3000 LOG_LEVEL=info JSON_BODY_LIMIT=24mb # Required secrets JWT_SECRET= JWT_EXPIRES_IN=7d ADMIN_TOKEN_SECRET= ADMIN_TOKEN_TTL_SECONDS=28800 # Enable only for the first deployment, then disable it again. ADMIN_BOOTSTRAP_ENABLED=false ADMIN_USERNAME= ADMIN_PASSWORD= ADMIN_NICKNAME= # Persistent storage USE_MEMORY_STORAGE=false USE_FILE_REDIS=false DB_HOST= DB_PORT=3306 DB_USERNAME= DB_PASSWORD= DB_NAME= REDIS_HOST= REDIS_PORT=6379 REDIS_PASSWORD= REDIS_DB=0 # Email EMAIL_HOST= EMAIL_PORT=465 EMAIL_SECURE=true EMAIL_USER= EMAIL_PASS= EMAIL_FROM= # Zulip ZULIP_CONFIG_MODE=dynamic ZULIP_SERVER_URL= ZULIP_BOT_EMAIL= ZULIP_BOT_API_KEY= ZULIP_API_KEY_ENCRYPTION_KEY= ZULIP_DEGRADED_MODE_ENABLED=true ZULIP_AUTO_RECONNECT_ENABLED=true # Realtime and generated assets # The native WebSocket server listens separately from the REST API. WEBSOCKET_PORT=3001 WEBSOCKET_NAMESPACE=/game ACCOUNT_ASSET_DIR=generated/account-assets SKIN_GENERATION_OUTPUT_DIR=generated/skins SKIN_GENERATION_SCRIPT_PATH=scripts/skin_generation/generate_skin_from_prompt.py SKIN_GENERATION_PYTHON=python3 NOVAMAILIO_API_KEY= # Optional cafe companion defaults CAFE_COMPANION_DEFAULT_OPENAI_BASE_URL= CAFE_COMPANION_DEFAULT_OPENAI_API_KEY= CAFE_COMPANION_DEFAULT_OPENAI_MODEL=