2025-10-08
admin
Diperbarui 2025-10-11

Panduan Deploy Node.js di VPS Ubuntu 22.04: Nginx, PM2 & SSL

Ingin aplikasi Node.js Anda online di VPS Ubuntu 22.04? Panduan ini akan memandu Anda langkah demi langkah, mulai dari instalasi Node.js hingga setup Nginx dan SSL. Dijamin berhasil!
Panduan Deploy Node.js di VPS Ubuntu 22.04: Nginx, PM2 & SSL

Berikut adalah cara deploy aplikasi Node.js di VPS Linux Ubuntu 22.04:

1. Persiapan Awal

Pertama, update sistem dan install dependensi:

sudo apt update
sudo apt upgrade -y

2. Install Node.js

Ada beberapa cara, saya rekomendasikan menggunakan NodeSource:

# Install Node.js 20.x (atau versi LTS terbaru)
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs

# Verifikasi instalasi
node -v
npm -v

3. Install PM2 (Process Manager)

PM2 untuk menjaga aplikasi tetap running dan auto-restart:

sudo npm install -g pm2

4. Upload Aplikasi ke VPS

Bisa menggunakan Git, SCP, atau FTP. Contoh dengan Git:

# Install git jika belum
sudo apt install git -y

# Clone repository
cd /var/www
sudo git clone https://github.com/username/repo-anda.git
cd repo-anda

# Install dependencies
npm install

5. Jalankan Aplikasi dengan PM2

# Jalankan aplikasi
pm2 start app.js --name "nama-app"

# Atau jika pakai npm script
pm2 start npm --name "nama-app" -- start

# Simpan konfigurasi PM2
pm2 save

# Auto-start PM2 saat server restart
pm2 startup
# Jalankan perintah yang muncul

6. Setup Nginx sebagai Reverse Proxy

Install Nginx:

sudo apt install nginx -y

Buat konfigurasi Nginx:

sudo nano /etc/nginx/sites-available/nama-app

Isi dengan:

server {
    listen 80;
    server_name domain-anda.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

Aktifkan konfigurasi:

sudo ln -s /etc/nginx/sites-available/nama-app /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

7. Setup Firewall

sudo ufw allow 'Nginx Full'
sudo ufw allow OpenSSH
sudo ufw enable

8. Setup SSL dengan Let's Encrypt (Opsional tapi Direkomendasikan)

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d domain-anda.com

Perintah PM2 yang Berguna

pm2 list              # Lihat semua aplikasi
pm2 logs              # Lihat logs
pm2 restart nama-app  # Restart aplikasi
pm2 stop nama-app     # Stop aplikasi
pm2 delete nama-app   # Hapus aplikasi
pm2 monit             # Monitor real-time

Tips Tambahan

  • Gunakan file .env untuk environment variables
  • Jangan commit node_modules ke Git
  • Setup logging yang proper
  • Backup database secara rutin
  • Monitor resource usage

Apakah ada bagian yang ingin saya jelaskan lebih detail?

blog teknologi programming admin

Artikel Terkait