From 7379c70dc001d01c681a51847becf1e18eb14b01 Mon Sep 17 00:00:00 2001 From: arifal Date: Tue, 21 Apr 2026 16:15:01 +0700 Subject: [PATCH] fix ecosystem config --- deployment.md | 45 ++++++++++++++++++++++------- ecosystem.js => ecosystem.config.js | 9 +++--- 2 files changed, 40 insertions(+), 14 deletions(-) rename ecosystem.js => ecosystem.config.js (64%) diff --git a/deployment.md b/deployment.md index 895cdf1..702c7a5 100644 --- a/deployment.md +++ b/deployment.md @@ -11,11 +11,22 @@ Panduan ini untuk menjalankan aplikasi **Next.js** (setrip) di server Linux/VPS ## File PM2 -Konfigurasi PM2 ada di root repositori: **`ecosystem.js`**. +Konfigurasi PM2 ada di root repositori: **`ecosystem.config.js`** (nama ini disengaja). -Isinya menjalankan biner Next (`next start`) setelah build, mode **fork**, satu proses, **PORT** **3090** (sesuai alokasi server Anda). Ubah `PORT` di file tersebut atau lewat variabel lingkungan di server jika kebijakan port berubah. +### Jangan `pm2 start ecosystem.js` kecuali itu skrip Node -Beberapa tutorial memakai nama `ecosystem.config.js`; PM2 menerima nama apa pun asal Anda menjalankan `pm2 start `. +Jika Anda menjalankan `pm2 start ecosystem.js` pada file yang isinya hanya `module.exports = { apps: [...] }`, PM2 menganggapnya **skrip aplikasi biasa** dan menjalankannya dengan `node ecosystem.js`. Akibatnya: + +- Nama proses di daftar PM2 jadi **`ecosystem`** (bukan `setrip`). +- Next.js **tidak** dijalankan lewat entri `apps` Anda. + +Gunakan selalu: + +```bash +pm2 start ecosystem.config.js --env production +``` + +Isi file menjalankan biner Next (`next start`) setelah build, mode **fork**, satu proses, **PORT** **3090**. Ubah `PORT` di file tersebut jika kebijakan port berubah. ### Berapa port yang dibutuhkan? @@ -56,14 +67,10 @@ Untuk **trafik HTTP/HTTPS ke aplikasi Next.js**, cukup **satu port** yang dideng 6. **Mulai** dengan PM2: ```bash - pm2 start ecosystem.js + pm2 start ecosystem.config.js --env production ``` - Untuk memakai blok `env_production` di file ecosystem: - - ```bash - pm2 start ecosystem.js --env production - ``` + Tanpa `--env production` tetap jalan; variabel default memakai blok `env` di file. 7. **Simpan** daftar proses agar bangkit lagi setelah reboot: @@ -98,7 +105,25 @@ npm run build pm2 reload setrip ``` -Jika nama aplikasi di PM2 berbeda, ganti `setrip` dengan nama di `ecosystem.js` (`name`). +Jika nama aplikasi di PM2 berbeda, ganti `setrip` dengan nama di `ecosystem.config.js` (`name`). + +### Hapus proses PM2 yang salah (nama `ecosystem`) + +Jika Anda pernah menjalankan `pm2 start ecosystem.js` dan muncul proses bernama `ecosystem`: + +```bash +pm2 stop ecosystem +pm2 delete ecosystem +``` + +Atau pakai id dari `pm2 status` (contoh id `9`): + +```bash +pm2 stop 9 +pm2 delete 9 +``` + +Lalu mulai lagi dengan `pm2 start ecosystem.config.js --env production` dan `pm2 save`. ## Reverse proxy (opsional) diff --git a/ecosystem.js b/ecosystem.config.js similarity index 64% rename from ecosystem.js rename to ecosystem.config.js index 18d61b8..790d8ec 100644 --- a/ecosystem.js +++ b/ecosystem.config.js @@ -1,6 +1,9 @@ /** - * PM2 ecosystem — jalankan dari root proyek setelah `npm run build`. - * Contoh: pm2 start ecosystem.js + * 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: [ @@ -18,8 +21,6 @@ module.exports = { NODE_ENV: "production", PORT: 3090, }, - // Override di server produksi, contoh: - // pm2 start ecosystem.js --env production env_production: { NODE_ENV: "production", PORT: 3090,