← back to George Gmail

fleet-autoresponder.config.js

41 lines

/**
 * pm2 ecosystem config for the fleet auto-responder.
 *
 *   fleet-autoresponder     — runs in --daemon mode: a long-lived process that
 *                             self-schedules main() every 3 minutes
 *                             (FLEET_INTERVAL_MS). pm2 keeps it `online` and
 *                             restarts it on crash. A long-lived loop is used
 *                             rather than pm2 cron_restart because pm2 cannot
 *                             cron-restart a short-lived process that has
 *                             already exited.
 *   fleet-autoresponder-ui  — the admin dashboard (long-lived, 127.0.0.1:9768).
 *
 * Start:  pm2 start fleet-autoresponder.config.js && pm2 save
 */
module.exports = {
  apps: [
    {
      name: 'fleet-autoresponder',
      script: 'fleet-autoresponder.js',
      args: '--daemon',
      cwd: __dirname,
      autorestart: true,         // pm2 relaunches on crash
      time: true,
      env: {
        FLEET_SCAN_WINDOW: '2d',       // only ever scan recent mail
        FLEET_INTERVAL_MS: '180000',   // self-schedule every 3 minutes
      },
    },
    {
      name: 'fleet-autoresponder-ui',
      script: 'fleet-autoresponder-ui.js',
      cwd: __dirname,
      autorestart: true,
      time: true,
      env: {
        FLEET_UI_PORT: '9768',
      },
    },
  ],
};