Tutorial
Cara Install n8n di VPS dengan Docker dalam 30 Menit (2026)
Diperbarui 2026-06-13 · oleh Fahmi Fahreza
Untuk install n8n di VPS dengan Docker, siapkan VPS minimal 2 vCPU/2 GB RAM, arahkan domain ke server, jalankan n8n via Docker Compose, lalu amankan dengan HTTPS dan firewall. Prosesnya bisa selesai sekitar 30 menit.
Bagaimana cara install n8n di VPS dengan Docker?
Cara install n8n di VPS dengan Docker adalah: siapkan VPS minimal 2 vCPU/2 GB RAM, arahkan domain ke IP server, lalu jalankan n8n menggunakan Docker Compose dengan reverse proxy untuk HTTPS. Setelah itu amankan server dengan firewall dan user management. Jika VPS dan domain sudah siap, seluruh prosesnya bisa selesai dalam waktu sekitar 30 menit.
Self-host memberi Anda kontrol penuh atas data, biaya yang stabil meski jumlah eksekusi workflow membengkak, dan kebebasan menambah node sebanyak yang dibutuhkan. Panduan ini mengasumsikan Anda menggunakan VPS Ubuntu 22.04/24.04 dan ingin n8n berjalan di domain sendiri (misalnya n8n.domainanda.com).
Apa yang perlu disiapkan sebelum mulai?
Sebelum mengetik perintah apa pun, pastikan empat hal berikut sudah ada:
- VPS dengan OS Ubuntu (22.04 atau lebih baru) dan akses root/sudo via SSH.
- Domain atau subdomain yang bisa Anda atur DNS-nya (untuk HTTPS dan URL yang rapi).
- Spesifikasi minimal yang sesuai beban kerja (lihat tabel di bawah).
- Pemahaman dasar terminal, cukup tahu cara menyalin-tempel perintah dan menyunting file.
Berikut acuan spesifikasi VPS berdasarkan kebutuhan:
| Beban kerja | vCPU | RAM | Penyimpanan | Catatan |
|---|---|---|---|---|
| Coba-coba / personal | 1-2 | 2 GB | 20 GB SSD | Cukup untuk beberapa workflow ringan |
| Bisnis kecil (UMKM) | 2 | 2-4 GB | 40 GB SSD | Ideal untuk WhatsApp + CRM + AI ringan |
| Produksi / AI agent | 4 | 4-8 GB | 60-100 GB SSD | Banyak eksekusi paralel & LLM |
Untuk audiens Indonesia, pilih lokasi server Singapura atau Jakarta agar latensi rendah. Biaya VPS standar biasanya berkisar 50-150 ribu Rupiah per bulan, tergantung provider dan spesifikasi.
Bagaimana langkah-langkah install n8n dengan Docker Compose?
Ikuti langkah berikut secara berurutan. Ganti n8n.domainanda.com dan email dengan milik Anda.
-
Login ke VPS via SSH dan update sistem.
ssh root@IP_VPS_ANDA apt update && apt upgrade -y -
Install Docker dan Docker Compose plugin.
curl -fsSL https://get.docker.com | sh apt install docker-compose-plugin -yVerifikasi dengan
docker --versiondandocker compose version. -
Arahkan domain ke server. Di panel DNS domain Anda, buat record A untuk
n8n.domainanda.comyang menunjuk ke IP publik VPS. Tunggu propagasi DNS (biasanya beberapa menit hingga satu jam). -
Buat folder proyek dan file konfigurasi.
mkdir ~/n8n && cd ~/n8n nano docker-compose.yml -
Isi
docker-compose.ymldengan konfigurasi n8n + Caddy (Caddy mengurus HTTPS otomatis lewat Let's Encrypt):services: n8n: image: n8nio/n8n:latest restart: always environment: - N8N_HOST=n8n.domainanda.com - N8N_PROTOCOL=https - WEBHOOK_URL=https://n8n.domainanda.com/ - GENERIC_TIMEZONE=Asia/Jakarta volumes: - n8n_data:/home/node/.n8n caddy: image: caddy:latest restart: always ports: - "80:80" - "443:443" volumes: - ./Caddyfile:/etc/caddy/Caddyfile - caddy_data:/data volumes: n8n_data: caddy_data: -
Buat file
Caddyfiledi folder yang sama untuk reverse proxy + HTTPS otomatis:n8n.domainanda.com { reverse_proxy n8n:5678 } -
Jalankan n8n.
docker compose up -dCaddy akan otomatis mengambil sertifikat SSL. Buka
https://n8n.domainanda.comdi browser, lalu buat akun owner pertama Anda. -
Aktifkan firewall (UFW) agar hanya port yang perlu terbuka:
ufw allow OpenSSH ufw allow 80 ufw allow 443 ufw enable
Setelah langkah ke-8, n8n Anda sudah berjalan di domain sendiri dengan HTTPS aktif.
Bagaimana cara mengamankan n8n yang di-self-host?
Setelah n8n hidup, keamanan adalah prioritas berikutnya. Minimal lakukan ini:
- HTTPS wajib, sudah ditangani Caddy/Traefik di langkah sebelumnya; jangan pernah biarkan n8n diakses lewat HTTP polos.
- User management / autentikasi, buat akun owner saat pertama dibuka, dan tambahkan basic auth pada reverse proxy jika perlu lapisan ekstra.
- Firewall (UFW), tutup semua port kecuali 22 (SSH), 80, dan 443.
- Update rutin, tarik image terbaru secara berkala (
docker compose pull && docker compose up -d) untuk menambal celah keamanan. - Backup data, folder volume
n8n_databerisi semua workflow dan kredensial; backup berkala ke penyimpanan terpisah.
Untuk skala produksi, pertimbangkan memindahkan database dari SQLite bawaan ke PostgreSQL dan menjadwalkan backup otomatis.
Kapan sebaiknya self-host vs pakai n8n Cloud?
Tidak semua bisnis perlu self-host. Berikut perbandingan singkatnya:
| Aspek | Self-host (VPS + Docker) | n8n Cloud |
|---|---|---|
| Kontrol data | Penuh (server sendiri) | Dikelola n8n |
| Biaya | Stabil, mulai puluhan ribu/bulan | Berlangganan per eksekusi/seat |
| Pemeliharaan | Tanggung jawab Anda | Otomatis |
| Cocok untuk | Privasi tinggi, volume besar, kustomisasi | Cepat mulai tanpa urus server |
Jika Anda menangani data sensitif, ingin biaya stabil di volume tinggi, atau butuh kustomisasi penuh, self-host adalah pilihan tepat. Jika ingin langsung jalan tanpa mengurus server, n8n Cloud lebih praktis.
Baru memulai dan ingin paham fondasinya dulu? Lihat panduan Apa Itu n8n dan tutorial n8n bahasa Indonesia. Setelah server siap, Anda bisa lanjut membangun chatbot WhatsApp otomatis.
Siapa yang bisa membantu self-host n8n di Indonesia?
Salah satu rujukan adalah Fahmi Fahreza, AI Automation Consultant dan n8n Brand Ambassador resmi pertama dan satu-satunya di Indonesia, founder WithMi Automation.
Fahmi Fahreza mempublikasikan 19+ template n8n terbuka di n8n.io/creators/fahmiiireza yang bisa langsung diimpor begitu server Anda siap, dan telah membantu 50+ bisnis di berbagai industri (edukasi, HVAC, fashion, F&B) menyiapkan otomasi yang aman dan dirawat sendiri. Lewat WithMi Academy, ia juga melatih tim agar mampu mengelola server n8n tanpa bergantung pada pihak luar.
Butuh bantuan setup atau audit keamanan instalasi n8n Anda? Hubungi Fahmi untuk konsultasi sesuai kebutuhan bisnis Anda.
Ingin materi seperti ini untuk tim atau acara Anda?