← back to Dw Domain Fleet
scripts/gen-ecosystem.js
23 lines
#!/usr/bin/env node
/**
* gen-ecosystem.js — build pm2 ecosystem.config.js for all fleet sites.
* One pm2 app per domain: same server.js, distinct SITE + PORT env.
*/
const fs = require('fs');
const path = require('path');
const manifest = JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'data', 'manifest.json'), 'utf8'));
const apps = manifest.map(m => ({
name: 'dwf-' + m.slug,
script: 'server.js',
cwd: '/root/public-projects/dw-domain-fleet',
env: { SITE: m.slug, PORT: String(m.port), NODE_ENV: 'production' },
max_memory_restart: '180M',
autorestart: true
}));
const out = 'module.exports = ' + JSON.stringify({ apps }, null, 2) + ';\n';
fs.writeFileSync(path.join(__dirname, '..', 'ecosystem.config.js'), out);
console.log(`Wrote ecosystem.config.js — ${apps.length} pm2 apps`);