Node.js merupakan platform JavaScript nan banyak digunakan untuk membangun aplikasi backend nan ringan, cepat, dan scalable. Ketika aplikasi Anda sudah selesai dikembangkan di lingkungan lokal, langkah berikutnya adalah deploy ke server VPS (Virtual Private Server) agar bisa diakses publik melalui internet.
Dalam tulisan ini, kita bakal membahas cara komplit deploy aplikasi Node.js di VPS berbasis Linux (Ubuntu), dari instalasi Node.js hingga konfigurasi domain dan proses menjaga aplikasi agar tetap melangkah stabil.
Persiapan Awal
Sebelum memulai, pastikan Anda memiliki:
- VPS aktif dengan akses root (Ubuntu 20.04/22.04 disarankan)
- Aplikasi Node.js siap di-upload (bisa via Git, SCP, alias FTP)
- Nama domain (opsional, jika mau mengakses aplikasi via domain)
Langkah 1: Akses VPS via SSH
Login ke VPS dengan SSH:
ssh root@IP_ADDRESSGantilah IP_ADDRESS dengan alamat IP server Anda.
Langkah 2: Instalasi Node.js dan npm
Untuk instalasi Node.js jenis terbaru, gunakan NodeSource:
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -sudo apt install -y nodejs
Cek jenis Node.js dan npm:
node -vnpm -v
Langkah 3: Upload Aplikasi ke VPS
Anda bisa meng-upload file aplikasi dengan beberapa cara:

Opsi 1: Clone dari GitHub
git clone https://github.com/username/nama-aplikasi.gitcd nama-aplikasi
Opsi 2: Upload manual via SCP (dari lokal ke server)
scp -r ./folder-aplikasi root@IP_ADDRESS:/home/Setelah itu, login ke server dan pindah ke direktori aplikasi:
cd /home/folder-aplikasiLangkah 4: Instal Dependensi
Pastikan Anda berada di dalam berkas aplikasi Node.js, lampau jalankan:
npm installIni bakal menginstal semua keterbatasan dari file package.json.
Langkah 5: Jalankan Aplikasi
Untuk memastikan aplikasi berjalan, jalankan perintah:
node app.jsatau jika Anda menggunakan framework seperti Express.js dan file utama Anda index.js:
node index.jsNamun, menjalankan aplikasi seperti ini hanya sementara — jika hubungan SSH terputus, aplikasi bakal berhenti. Maka kita perlu process manager seperti PM2.
Langkah 6: Gunakan PM2 untuk Menjaga Aplikasi Tetap Berjalan
Instal PM2 secara global:
sudo npm install pm2 -gJalankan aplikasi Anda menggunakan PM2:
pm2 start app.jsPM2 bakal memastikan aplikasi tetap melangkah di background apalagi setelah reboot.
Untuk menyimpan konfigurasi startup:
pm2 startuppm2 save
Untuk memandang status aplikasi:
pm2 listLangkah 7: Konfigurasi Reverse Proxy dengan NGINX
Agar aplikasi Node.js bisa diakses melalui port 80 alias domain Anda, gunakan NGINX sebagai reverse proxy.
Install NGINX:
sudo apt install nginx -yBuat konfigurasi NGINX:
sudo nano /etc/nginx/sites-available/nodeappIsi dengan konfigurasi berikut:
server {listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://localhost:3000; # Ganti dengan port aplikasi Anda
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/nodeapp /etc/nginx/sites-enabled/sudo nginx -t
sudo systemctl reload nginx
Sekarang Anda bisa mengakses aplikasi melalui IP alias domain Anda.
Langkah 8: (Opsional) Tambahkan SSL dengan Let’s Encrypt
Jika menggunakan domain, Anda bisa menambahkan HTTPS dengan Certbot:
sudo apt install certbot python3-certbot-nginx -ysudo certbot --nginx -d yourdomain.com
Ikuti petunjuk di layar dan sertifikat SSL bakal otomatis terpasang.
Kesimpulan
Deploy aplikasi Node.js ke VPS bukanlah proses nan rumit, namun memerlukan pemahaman tentang server Linux, Node.js, dan konfigurasi NGINX. Dengan menggunakan PM2, aplikasi Anda bakal tetap melangkah stabil, dan dengan NGINX, Anda bisa melayani aplikasi ke publik dengan port standar dan keamanan tambahan seperti HTTPS.
Rangkuman Langkah:
- Akses VPS dengan SSH
- Instal Node.js dan npm
- Upload aplikasi ke server
- Instal keterbatasan dan jalankan dengan PM2
- Konfigurasikan NGINX sebagai reverse proxy
- (Opsional) Aktifkan SSL
Dengan mengikuti pedoman ini, Anda bisa dengan mudah mempublikasikan aplikasi Node.js ke internet dengan VPS pribadi Anda.
English (US) ·
Indonesian (ID) ·