// Load environment variables from .env (production secrets) try { // eslint-disable-next-line global-require require('dotenv').config({ path: '/var/www/harheimertc/.env' }) } catch (_e) { // If dotenv isn't available or .env missing, continue (process.env may be set elsewhere) } // Helper function to create env object function createEnv(port) { return { NODE_ENV: 'production', PORT: port, // Secrets/Config (loaded from .env above, if present) ENCRYPTION_KEY: process.env.ENCRYPTION_KEY, JWT_SECRET: process.env.JWT_SECRET, SMTP_HOST: process.env.SMTP_HOST, SMTP_PORT: process.env.SMTP_PORT, SMTP_USER: process.env.SMTP_USER, SMTP_PASS: process.env.SMTP_PASS, SMTP_FROM: process.env.SMTP_FROM, SMTP_ADMIN: process.env.SMTP_ADMIN, NUXT_PUBLIC_BASE_URL: process.env.NUXT_PUBLIC_BASE_URL, COOKIE_SECURE: process.env.COOKIE_SECURE, COOKIE_SAMESITE: process.env.COOKIE_SAMESITE, CSP_ENABLED: process.env.CSP_ENABLED, CSP_REPORT_ONLY: process.env.CSP_REPORT_ONLY, CSP_VALUE: process.env.CSP_VALUE, HIBP_ENABLED: process.env.HIBP_ENABLED, HIBP_USER_AGENT: process.env.HIBP_USER_AGENT, HIBP_TIMEOUT_MS: process.env.HIBP_TIMEOUT_MS, HIBP_CACHE_TTL_MS: process.env.HIBP_CACHE_TTL_MS, HIBP_FAIL_CLOSED: process.env.HIBP_FAIL_CLOSED, AUDIT_LOG_ENABLED: process.env.AUDIT_LOG_ENABLED, WEBAUTHN_ORIGIN: process.env.WEBAUTHN_ORIGIN, WEBAUTHN_RP_ID: process.env.WEBAUTHN_RP_ID, WEBAUTHN_RP_NAME: process.env.WEBAUTHN_RP_NAME, WEBAUTHN_REQUIRE_UV: process.env.WEBAUTHN_REQUIRE_UV } } module.exports = { apps: [ { name: 'harheimertc', // Nuxt 4 production build: direkt den Node-Server starten (kein "preview mode") script: 'node', args: '.output/server/index.mjs', cwd: '/var/www/harheimertc', instances: 1, autorestart: true, watch: false, max_memory_restart: '1G', env: createEnv(3100), error_file: '/var/log/pm2/harheimertc-error.log', out_file: '/var/log/pm2/harheimertc-out.log', log_file: '/var/log/pm2/harheimertc-combined.log', time: true }, { name: 'harheimertc-3102', // Zweite Instanz auf Port 3102 script: 'node', args: '.output/server/index.mjs', cwd: '/var/www/harheimertc', instances: 1, autorestart: true, watch: false, max_memory_restart: '1G', env: createEnv(3102), error_file: '/var/log/pm2/harheimertc-3102-error.log', out_file: '/var/log/pm2/harheimertc-3102-out.log', log_file: '/var/log/pm2/harheimertc-3102-combined.log', time: true } ] }