/**
 * PM2 ecosystem — WAJIB memakai nama ecosystem.config.js agar PM2
 * mem-parse `apps` (bukan menjalankan file ini sebagai skrip Node).
 *
 * Jalankan dari root proyek setelah `npm run build`:
 *   pm2 start ecosystem.config.js --env production
 */
module.exports = {
  apps: [
    {
      /**
       * Fork (1 instance): default aman — satu proses, satu listener PORT, satu
       * pool Prisma ke DB.
       *
       * Cluster mode BISA dipakai: ubah ke `exec_mode: "cluster"` dan
       * `instances: angka` (mis. 2) atau `"max"`. PM2 membagi request antar
       * worker; tiap worker menjalankan `next start` sendiri.
       *
       * Perhatikan: koneksi DB ≈ bertambah per worker (sesuaikan limit Postgres
       * / connection pool Prisma). NextAuth dengan JWT atau session di DB
       * biasanya tidak masalah; hindari mengandalkan state hanya di memory
       * antar request tanpa sticky session. Jika ada EADDRINUSE di PORT,
       * kurangi `instances` atau tetap fork + scale di mesin/proksi lain.
       */
      name: "setrip",
      cwd: __dirname,
      script: "node_modules/next/dist/bin/next",
      args: "start",
      instances: 1,
      exec_mode: "fork",
      autorestart: true,
      watch: false,
      max_memory_restart: "512M",
      env: {
        NODE_ENV: "production",
        PORT: 3090,
      },
      env_production: {
        NODE_ENV: "production",
        PORT: 3090,
      },
    },
  ],
};
