module.exports = { apps: [ { name: 'tssbot-web', script: 'server.cjs', cwd: __dirname, env: { NODE_ENV: 'production', PORT: process.env.PORT || 3010, API_UPSTREAM: process.env.API_UPSTREAM || 'http://127.0.0.1:6000', PUBLIC_ORIGIN: process.env.PUBLIC_ORIGIN || '', UPTIME_STORAGE_DIR: process.env.UPTIME_STORAGE_DIR || '~/tsswebstorage', UPTIME_DATABASE_FILE: process.env.UPTIME_DATABASE_FILE || 'uptime.sqlite', UPTIME_SAMPLE_INTERVAL_MS: process.env.UPTIME_SAMPLE_INTERVAL_MS || 1800000, UPTIME_HISTORY_LIMIT: process.env.UPTIME_HISTORY_LIMIT || 336, API_CACHE_TTL_MS: process.env.API_CACHE_TTL_MS || 15000, API_RATE_LIMIT_WINDOW_MS: process.env.API_RATE_LIMIT_WINDOW_MS || 60000, API_RATE_LIMIT_MAX: process.env.API_RATE_LIMIT_MAX || 120, TRUST_PROXY: process.env.TRUST_PROXY || 'cloudflare', TRUSTED_UPSTREAM_IPS: process.env.TRUSTED_UPSTREAM_IPS || '127.0.0.1,::1,::ffff:127.0.0.1', TURNSTILE_SECRET_KEY: process.env.TURNSTILE_SECRET_KEY || '', }, }, { name: 'tssbot-webhook', script: 'webhook.cjs', cwd: __dirname, autorestart: true, env: { NODE_ENV: 'production', WEBHOOK_PORT: process.env.WEBHOOK_PORT || 3011, GITHUB_WEBHOOK_SECRET: process.env.GITHUB_WEBHOOK_SECRET || '', GITHUB_WEBHOOK_REFS: process.env.GITHUB_WEBHOOK_REFS || 'refs/heads/main', GITHUB_WEBHOOK_REPOSITORY: process.env.GITHUB_WEBHOOK_REPOSITORY || '', PM2_RESTART_TARGETS: process.env.PM2_RESTART_TARGETS || 'tssbot-web', DISCORD_WEBHOOK_URL: process.env.DISCORD_WEBHOOK_URL || '', DISCORD_INCLUDE_PATCH: process.env.DISCORD_INCLUDE_PATCH || 'false', }, }, ], }