skip to content
Personal Blog

Cara Deploy Web App ke VPS

/ 3 min read

Updated:
Daftar Isi

cara-deploy-web-app-ke-vps

disini saya akan menceritakan cara deploy web app ke VPS versi yang simpel dan gampang dipraktikkan. Buat saya, VPS itu enak karena lebih fleksibel, bisa atur server sendiri, dan cocok buat belajar dunia production dari nol. Tulisan ini fokus ke alur yang paling umum dipakai: siapkan server, upload project, jalankan app, pasang reverse proxy, lalu amankan pakai SSL.

ada beberapa langkah utama biar deploy ke VPS tidak berantakan:

persiapan awal

  1. sewa VPS dan dapat akses SSH
  2. update package server
  3. install runtime sesuai stack (Node.js, Bun, atau Docker)
  4. upload source code
  5. jalankan app pakai process manager
  6. konfigurasi domain + Nginx
  7. aktifkan SSL

Disclaimer: ini berdasarkan alur yang paling sering saya pakai, jadi mungkin ada perbedaan kecil sesuai distro Linux atau stack project kamu.

pilih-vps-dan-setup-awal

langkah pertama tentu pilih provider VPS dulu, bebas mau DigitalOcean, Vultr, Hetzner, atau provider lokal. Yang penting dapet akses root dan spek minimal sesuai kebutuhan app kamu.

setelah server aktif, langsung login lewat SSH lalu update package:

Terminal window
ssh root@IP_SERVER
apt update && apt upgrade -y

kalau sudah, bikin user baru biar tidak kerja terus pakai root. ini opsional tapi sangat disarankan untuk keamanan.

install-runtime-sesuai-project

setiap web app beda kebutuhan. kalau project kamu pakai Node.js, install Node LTS dulu. kalau pakai Docker, install Docker dan Docker Compose sekalian biar deployment lebih konsisten.

contoh install Node.js singkat:

Terminal window
curl -fsSL https://deb.nodesource.com/setup_lts.x | bash -
apt install -y nodejs
node -v
npm -v

setelah runtime siap, baru masuk ke tahap upload project.

upload-project-ke-server

cara paling gampang biasanya pakai git clone langsung di server. bisa juga pakai rsync atau SFTP kalau kamu lebih nyaman.

Terminal window
git clone https://github.com/username/nama-project.git
cd nama-project
npm install
npm run build

pastikan file environment seperti .env sudah benar. banyak error deploy terjadi cuma gara-gara variabel environment belum di-set.

jalankan-app-biar-tetap-hidup

jangan jalankan app pakai terminal biasa lalu ditinggal, karena kalau terminal ketutup app ikut mati. pakai process manager seperti PM2 biar app tetap jalan di background dan auto-restart kalau crash.

Terminal window
npm install -g pm2
pm2 start npm --name "web-app" -- start
pm2 save
pm2 startup

dengan cara ini app kamu lebih stabil untuk dipakai production skala kecil sampai menengah.

pasang-nginx-dan-domain

Nginx dipakai sebagai reverse proxy biar domain kamu bisa mengarah ke port app (misalnya 3000). jadi user akses domain normal, bukan IP:port .

contoh konfigurasi dasar Nginx:

server {
server_name contohdomain.com www.contohdomain.com;
location / {
proxy_pass http://127.0.0.1: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;
}
}

setelah itu aktifkan config dan reload Nginx.

aktifkan-ssl-biar-https

setelah domain dan Nginx aman, lanjut pasang SSL gratis dari Let’s Encrypt pakai Certbot.

Terminal window
apt install -y certbot python3-certbot-nginx
certbot --nginx -d contohdomain.com -d www.contohdomain.com

kalau berhasil, website kamu otomatis pakai HTTPS. ini penting banget buat keamanan dan kepercayaan user.

kesimpulannya

deploy web app ke VPS itu sebenarnya tidak sesulit yang dibayangin kalau alurnya jelas. kunci utamanya ada di persiapan server, runtime yang sesuai, cara jalanin app yang benar, dan konfigurasi domain + SSL.

kalau masih pertama kali deploy dan ketemu error, tenang aja itu normal. pelan-pelan cek log, periksa .env, cek port, lalu cek Nginx. sekali kita paham alurnya, deploy berikutnya bakal jauh lebih cepat.