← 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`);