🚀 Deploy Next.js di VPS Menggunakan PM2 (Lengkap & Praktis)

Search for a command to run...

No comments yet. Be the first to comment.
Saat membangun aplikasi Next.js, menjalankannya di local dengan npm run dev memang mudah.
Tapi ketika masuk ke server / VPS, kita butuh cara yang stabil, aman, dan otomatis hidup kembali saat server restart.
Di artikel ini, aku akan membahas cara deploy Next.js di VPS menggunakan PM2, lengkap dari build hingga troubleshooting umum.
npm run dev di Server?Mode dev:
❌ Tidak untuk production
❌ Boros resource
❌ Mati saat terminal ditutup
Solusinya adalah production build + PM2.
Pastikan di VPS kamu sudah terinstall:
Node.js v20+
npm
Project Next.js siap jalan
Cek versi Node:
node -v
Sebelum dijalankan di production, WAJIB build dulu:
npm run build
Jika sukses, akan muncul:
Compiled successfully
PM2 adalah process manager untuk Node.js.
npm install -g pm2
Cek:
pm2 -v
Gunakan next start, bukan dev.
Contoh menjalankan di port 8080:
pm2 start npm --name "next-portfolio" -- start -- -H 0.0.0.0 -p 8080
Cek status:
pm2 list
Agar aplikasi otomatis hidup kembali:
pm2 save
pm2 startup
Jalankan command yang muncul di terminal.
Next.js tidak membaca .env.example.
Gunakan .env.local.
cp .env.example .env.local
Contoh env penting:
NEXT_PUBLIC_SITE_URL=http://localhost:8080
BETTER_AUTH_URL=http://localhost:8080
⚠️ Setiap ubah ENV → build ulang wajib dilakukan.
npm run build
pm2 restart next-portfolio
Pastikan port terbuka (ufw allow 8080)
Pastikan app listen ke 0.0.0.0
.env.local belum diisi
ENV berubah tapi tidak build ulang
URL API masih localhost:3000
Cek log:
pm2 logs next-portfolio
Dengan PM2, aplikasi Next.js jadi:
✅ Stabil
✅ Auto-restart
✅ Siap production
Kalau kamu serius deploy Next.js ke server, PM2 adalah pilihan wajib.
✨ Semoga bermanfaat dan selamat ngoding!