# Server Configuration PORT=3000 NODE_ENV=development # Timezone (default: UTC) # See: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones TIMEZONE=UTC # Job Configuration # Maximum number of job execution logs to keep in memory MAX_EXECUTION_LOGS=100 # ============================================================================ # SECURITY CONFIGURATION (REQUIRED) # ============================================================================ # Dashboard Authentication # The dashboard and API are protected with HTTP Basic Authentication# # Generate a secure password using: # bun -e "console.log(require('crypto').randomBytes(32).toString('base64'))" # or: # openssl rand -base64 32 DASHBOARD_USERNAME=admin DASHBOARD_PASSWORD= # API Key Authentication (OPTIONAL) # Alternative authentication method using API keys # If set, clients can authenticate with: Authorization: Bearer YOUR_API_KEY # Generate a secure API key using: # bun -e "console.log(require('crypto').randomBytes(32).toString('hex'))" # # Leave empty to disable API key authentication API_KEY= # HTTPS Enforcement (PRODUCTION ONLY) # When true, rejects requests that aren't using HTTPS # Railway automatically provides HTTPS, so this adds an extra layer of security # Set to true for production deployments REQUIRE_HTTPS=false # Rate Limiting # Prevents abuse by limiting requests per IP address # Format: MAX_REQUESTS/TIME_WINDOW_IN_SECONDS # Examples: 100/60 = 100 requests per minute, 1000/3600 = 1000 requests per hour RATE_LIMIT_MAX=100 RATE_LIMIT_WINDOW=60 # Security Headers # Enable security headers (X-Frame-Options, X-Content-Type-Options, etc.) ENABLE_SECURITY_HEADERS=true