fix ecosystem config

This commit is contained in:
2026-04-21 16:15:01 +07:00
parent 4993eb444c
commit 7379c70dc0
2 changed files with 40 additions and 14 deletions
+35 -10
View File
@@ -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 <file>`.
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)
+5 -4
View File
@@ -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,