~/blog /tutorial /cara-deploy-aplikasi-w.md
// Tutorial

Cara Deploy Aplikasi Web ke VPS dengan Nginx dan PM2

S
Sarah WijayaTim Lintascode.com
5 Juli 2026 4 min read 17
Cara Deploy Aplikasi Web ke VPS dengan Nginx dan PM2

Mengapa VPS dan Tools seperti Nginx serta PM2?

Banyak pengembang aplikasi web yang menghabiskan biaya besar di platform hosting tanpa memaksimalkan kinerjanya. Padahal, dengan menggunakan Virtual Private Server (VPS) yang dikombinasikan dengan alat seperti Nginx dan PM2, Anda dapat menghemat biaya sekaligus meningkatkan performa aplikasi secara signifikan. Bagaimana caranya? Artikel ini akan memandu Anda langkah demi langkah.

Nginx adalah server web populer yang terkenal karena kecepatan, efisiensi, dan kemampuannya menangani banyak koneksi secara bersamaan. Di sisi lain, PM2 adalah process manager khusus untuk aplikasi Node.js yang berguna untuk memastikan aplikasi berjalan terus-menerus, bahkan setelah terjadi crash atau reboot server. Kombinasi keduanya sangat ideal untuk mengelola aplikasi web modern yang cepat dan andal.

Menggunakan VPS juga memberikan fleksibilitas lebih besar dibandingkan shared hosting, karena Anda memiliki kendali penuh terhadap sistem operasi, konfigurasi, dan sumber daya server. Dengan mengoptimalkan penggunaan VPS, Anda dapat meningkatkan performa aplikasi, mengurangi downtime, dan menghemat biaya operasional secara signifikan.

Prasyarat yang Perlu Dipersiapkan

Sebelum memulai, pastikan Anda telah memenuhi beberapa prasyarat berikut:

  • VPS aktif dengan akses SSH: Anda perlu memiliki server VPS yang sudah dikonfigurasi dan dapat diakses melalui SSH. Anda bisa menggunakan layanan seperti DigitalOcean, AWS, Linode, atau lainnya.
  • Domain yang diarahkan ke IP VPS: Pastikan domain Anda sudah diarahkan ke IP VPS melalui pengaturan DNS (misalnya menggunakan A record).
  • Node.js dan npm sudah terinstal: Aplikasi Node.js memerlukan runtime environment, jadi pastikan Node.js dan npm sudah diinstal di server Anda.
  • Aplikasi web siap dideploy: Aplikasi Anda sebaiknya sudah selesai dikembangkan dan di-push ke repository Git atau dalam bentuk file siap deploy.
  • Akses root atau user dengan sudo: Beberapa langkah memerlukan hak akses administratif, jadi pastikan Anda memiliki izin yang cukup.

Jika semua sudah siap, mari kita mulai prosesnya.

Langkah-Langkah Deploy Aplikasi Web ke VPS

  1. Login ke VPS Anda

    Langkah pertama adalah menghubungkan diri Anda ke VPS menggunakan protokol SSH. Gunakan perintah berikut di terminal:

    ssh user@your_server_ip

    Ganti user dengan username VPS Anda dan your_server_ip dengan alamat IP server Anda. Jika diminta, masukkan kata sandi untuk menyambung ke server. Pastikan koneksi Anda stabil agar proses berjalan lancar.

    Cara Deploy Aplikasi Web ke VPS dengan Nginx dan PM2
    Cara Deploy Aplikasi Web ke VPS dengan Nginx dan PM2
  2. Update dan Install Paket yang Dibutuhkan

    Setelah berhasil login, mulailah dengan memperbarui paket-paket di server Anda. Jalankan perintah berikut untuk memperbarui dan meningkatkan sistem:

    sudo apt update && sudo apt upgrade -y

    Setelah itu, instal Nginx untuk mengatur reverse proxy di server Anda:

    sudo apt install nginx -y

    Selanjutnya, instal PM2 sebagai process manager untuk menjalankan dan mengelola aplikasi Node.js Anda:

    sudo npm install pm2 -g
  3. Upload Aplikasi Anda ke VPS

    Anda dapat mengunggah aplikasi ke VPS menggunakan beberapa metode. Salah satunya adalah dengan menggunakan scp (secure copy) atau melalui Git jika aplikasi Anda sudah ada di repository. Contoh untuk mengkloning menggunakan Git:

    git clone https://github.com/username/repo-name.git

    Setelah berhasil mengunggah atau mengkloning, navigasikan ke direktori tempat aplikasi Anda disimpan:

    cd /path/to/your/app

    Pastikan semua file yang diperlukan aplikasi sudah ada di direktori tersebut.

  4. Install Dependensi dan Jalankan Aplikasi

    Setelah mengunggah aplikasi ke server, instal semua dependensi yang dibutuhkan. Anda dapat menggunakan perintah ini di terminal:

    npm install

    Pastikan tidak ada error selama proses instalasi. Setelah itu, jalankan aplikasi menggunakan PM2 dengan perintah berikut:

    pm2 start app.js --name "YourAppName"

    Ganti app.js dengan file entry point aplikasi Anda. Anda dapat memverifikasi apakah aplikasi berjalan dengan baik menggunakan perintah:

    Poin Penting
    • Siapkan environment dan dependensi sebelum mulai coding.
    • Uji tiap langkah secara bertahap agar mudah men-debug.
    • Simpan konfigurasi deploy agar bisa diulang dengan cepat.
    pm2 list
  5. Konfigurasi Nginx sebagai Reverse Proxy

    Langkah selanjutnya adalah mengonfigurasi Nginx agar dapat mengarahkan permintaan ke aplikasi Anda. Buat file konfigurasi Nginx baru untuk domain Anda:

    sudo nano /etc/nginx/sites-available/yourdomain.com

    Tambahkan konfigurasi berikut ke dalam file tersebut:

    server {
        listen 80;
        server_name yourdomain.com www.yourdomain.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;
        }
    }

    Setelah menyimpan file, aktifkan konfigurasi Nginx Anda:

    sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/

    Pastikan tidak ada kesalahan pada konfigurasi dengan menjalankan:

    sudo nginx -t

    Jika hasilnya menunjukkan tidak ada error, restart Nginx untuk menerapkan perubahan:

    sudo systemctl restart nginx
  6. Tambahkan HTTPS dengan Let's Encrypt (Opsional)

    Untuk meningkatkan keamanan aplikasi Anda, gunakan sertifikat SSL gratis dari Let's Encrypt. Instal certbot dengan perintah berikut:

    Tutorial — ilustrasi LintasCode
    Tutorial — ilustrasi LintasCode
    sudo apt install certbot python3-certbot-nginx -y

    Setelah itu, jalankan perintah ini untuk mengonfigurasi HTTPS di domain Anda:

    sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

    Ikuti instruksi yang muncul di layar. Setelah selesai, Nginx akan secara otomatis mengarahkan semua permintaan HTTP ke HTTPS.

  7. Otomatisasi dengan PM2

    Pastikan aplikasi Anda tetap berjalan meski server di-restart dengan mengaktifkan fitur startup script PM2. Jalankan perintah berikut:

    pm2 startup

    PM2 akan memberikan perintah yang harus Anda jalankan untuk mengaktifkan script tersebut. Setelah itu, simpan konfigurasi aplikasi yang sedang berjalan:

    pm2 save

Checklist Sebelum Deploy

  • Pastikan domain sudah diarahkan ke IP VPS.
  • Node.js dan npm sudah terinstal di server.
  • Pastikan port yang dibutuhkan aplikasi tidak bentrok dengan layanan lain.
  • Uji aplikasi di lingkungan lokal sebelum mengunggah ke server.

Best Practices untuk Deployment

  • Gunakan environment variables untuk menyimpan konfigurasi sensitif, seperti API keys.
  • Selalu gunakan SSL untuk mengamankan data yang dikirimkan melalui internet.
  • Atur logging di PM2 agar bisa memantau error dan performa aplikasi di server.
  • Gunakan source code dari marketplace seperti LintasCode untuk mempercepat proses pengembangan dan deployment Anda.
Tool Fungsi Perintah Instalasi
Nginx Server web dan reverse proxy sudo apt install nginx -y
PM2 Process manager untuk aplikasi Node.js sudo npm install pm2 -g
Certbot Alat untuk mengelola SSL dari Let's Encrypt sudo apt install certbot python3-certbot-nginx -y

Pertanyaan yang Sering Diajukan

Bagaimana cara memastikan Nginx berjalan dengan benar?

Gunakan perintah sudo nginx -t untuk memeriksa syntax konfigurasi Nginx. Jika tidak ada error, restart Nginx dengan sudo systemctl restart nginx.

Apakah PM2 hanya untuk Node.js?

PM2 dirancang untuk aplikasi Node.js, tetapi dapat digunakan untuk menjalankan program lain seperti Python atau aplikasi berbasis script lain dengan sedikit penyesuaian.

Apakah saya harus selalu menggunakan SSL?

Ya, sangat disarankan untuk menggunakan SSL, terutama jika Anda menangani data sensitif seperti informasi pengguna atau transaksi keuangan. Sertifikat SSL juga membantu meningkatkan kepercayaan pengguna.

Bagaimana jika server saya kehabisan memori?

Pastikan aplikasi Anda tidak menggunakan terlalu banyak sumber daya. Gunakan PM2 untuk memonitor penggunaan CPU dan RAM. Jika masalah terus terjadi, pertimbangkan untuk meningkatkan kapasitas VPS Anda.

Bisakah saya menggunakan source code dari marketplace?

Tentu saja! Dengan menggunakan source code dari marketplace seperti LintasCode, Anda dapat mempercepat pengembangan dan fokus pada kustomisasi alih-alih membuat semuanya dari awal.

// share: cd ~/blog
Percepat Project Anda — Jelajah Produk
Terapkan tutorial ini — atau langsung pakai source code premium siap pakai dari marketplace Lintascode.com.

Artikel Terkait