Panduan Praktis Deploy self-hosted n8n dengan Docker di VPS
Panduan praktis deploy n8n self-hosted di VPS pakai Docker. Setup cepat, aman, dan siap dipakai untuk automation production.

Pelajari cara self-hosted n8n di VPS pakai Docker: setup data persisten, base URL, webhook, reverse proxy, dan SSL untuk lingkungan produksi.
n8n adalah platform otomasi workflow berbasis node yang bisa di-self-host. Artikel ini membahas cara menjalankan self-hosted n8n di VPS menggunakan Docker secara rapi untuk produksi, termasuk penyimpanan persisten, konfigurasi base URL/webhook, reverse proxy, dan SSL.
Deploy self-hosted n8n dengan Docker di VPS: Panduan Praktis untuk Produksi
Kalau workflow otomasi Anda mulai menyentuh data sensitif, butuh kontrol penuh, atau ingin integrasi webhook yang stabil, menjalankan self-hosted n8n di VPS adalah keputusan yang masuk akal.
n8n adalah platform otomasi workflow berbasis node visual untuk menghubungkan aplikasi, layanan, dan API — cocok dari automasi sederhana sampai alur kerja kompleks.
Di panduan ini, Anda akan belajar deploy n8n menggunakan Docker di VPS dengan pendekatan siap produksi: data persisten, konfigurasi URL publik & webhook, reverse proxy, dan SSL.
Apa itu self-hosted n8n dan Kapan Cocok Digunakan?
n8n membantu Anda menyusun workflow otomasi:
-
Trigger → memicu proses
-
Processing → memproses data
-
Action → mengeksekusi aksi ke aplikasi/API lain Use case umum:
-
Sinkronisasi data antar tools
-
Scheduled API calls
-
Monitoring & alert
-
Automasi CRM / lead routing
-
Notifikasi & reporting Cocok untuk:
-
Developer / Ops → automasi tugas repetitif & integrasi API
-
Produk / Marketing → lead routing, update CRM, laporan berkala
-
Tim internal → membangun tooling automasi tanpa banyak SaaS terpisah
Arsitektur Produksi self-hosted n8n yang Direkomendasikan
Untuk deployment yang stabil:
- Jalankan n8n via Docker Compose
- Gunakan persistent storage (volume)
- Pasang reverse proxy (Nginx)
- Set Base URL & Webhook URL Struktur umum:
/opt/n8n/
├── docker-compose.yml
└── .env
Praktik produksi:
- Aktifkan restart: always
- Gunakan Docker volume atau bind mount
- Pisahkan config dari code
Langkah 1 — Deploy self-hosted n8n dengan Docker Compose
Contoh docker-compose.yml produksi sederhana:
version: "3.8"
services:
n8n:
image: n8nio/n8n:latest
container_name: n8n
restart: always
ports:
- "5678:5678"
environment:
- N8N_HOST=automation.domainanda.com
- N8N_PORT=5678
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://automation.domainanda.com/
- N8N_PROXY_HOPS=1
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:
Jalankan:
docker compose up -d
Dengan volume, data workflow tidak hilang saat container restart.
Langkah 2 — Konfigurasi Base URL & Webhook self-hosted n8n
Masalah umum produksi: webhook masih menunjuk ke localhost.
Solusi:
- Set N8N_HOST
- Set N8N_PROTOCOL
- Set WEBHOOK_URL
- Set N8N_PROXY_HOPS=1 (jika di belakang reverse proxy) Pastikan reverse proxy mengirim:
X-Forwarded-For
X-Forwarded-Host
X-Forwarded-Proto
Kalau ini benar, webhook akan generate URL publik yang valid.
Langkah 3 — Pasang Reverse Proxy (Nginx) di self-hosted n8n
Reverse proxy berfungsi untuk:
- Expose domain/subdomain
- Terminasi SSL
- Forward header proxy
- Menyembunyikan port internal Contoh config Nginx:
server {
server_name automation.domainanda.com;
location / {
proxy_pass http://localhost:5678;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Reload Nginx setelah konfigurasi.
Langkah 4 — Aktifkan SSL di self-hosted n8n dengan Let’s Encrypt
Gunakan Certbot:
sudo certbot --nginx -d automation.domainanda.com
Checklist produksi:
- DNS sudah mengarah ke IP VPS
- Port 80 & 443 terbuka
- Auto-renew aktif HTTPS bukan opsional kalau webhook menyentuh API eksternal.
Langkah 5 — Hardening & Operasional self-hosted n8n
Supaya tidak jadi “server yang rewel”:
Backup
- Backup volume /home/node/.n8n
- Backup file Compose & .env
Update
docker compose pull
docker compose up -d
Monitoring
- CPU
- RAM
- Disk IO
- Log container
Security
- Aktifkan authentication
- Gunakan firewall
- Batasi akses SSH
- Segmentasi network jika perlu
Kapan self-hosted n8n Perlu VPS yang Lebih Serius?
Upgrade resource jika:
-
Workflow paralel makin banyak
-
Webhook real-time tinggi
-
Butuh SLA & backup disiplin
-
Workflow berat (data transform besar) Rule of thumb:
-
Small workload → 2 vCPU / 2GB RAM
-
Medium → 4 vCPU / 8GB RAM