Install n8n di VPS Ubuntu: Mulai dari Nol hingga Online
n8n adalah automation platform open-source yang memungkinkan kamu menghubungkan lebih dari 350 layanan tanpa harus menulis kode. Self-hosting n8n di VPS Ubuntu memberi kontrol penuh atas data, webhook, dan resource—plus biaya bulanan yang lebih kecil ketimbang langganan zap berbayar.
Artikel ini saya tulis setelah mengalami sendiri error “ECONNREFUSED” dan port 5678 yang tak kunjung terbuka. Di bawah ini adalah ringkasan langkah yang sudah saya uji di KVM 2 GB RAM, 1 vCPU, Ubuntu 22.04. Total waktu: ±15 menit.
1. Persiapan awal server
Sebelum menyentuh Docker, pastikan kamu punya:
- VPS Ubuntu 20.04/22.04 (min. 1 GB RAM)
- Akses root via SSH
- Domain/subdomain mengarah ke IP VPS (opsional tapi direkomendasikan untuk HTTPS)
Update sistem dan buat user baru biar nggak boros port 22:
apt update && apt upgrade -y
adduser n8n
usermod -aG sudo n8n
Log out, lalu login lagi sebagai n8n.
1a. Install Docker & Docker Compose
Langkah singkat biar nggak ribet:
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
newgrp docker
docker --version # pastikan ≥ 24
1b. Buka port firewall
Kalau pakai UFW:
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
2. Jalankan n8n dengan Docker Compose
Buat folder project:
mkdir ~/n8n && cd ~/n8n
Buat docker-compose.yml:
version: "3.8"
services:
n8n:
image: n8nio/n8n:latest
container_name: n8n
restart: unless-stopped
ports:
- "127.0.0.1:5678:5678"
volumes:
- n8n_data:/home/node/.n8n
environment:
- N8N_HOST=n8n.domainkamu.com
- N8N_PORT=5678
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.domainkamu.com/
- GENERIC_TIMEZONE=Asia/Jakarta
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=GantiDenganPasswordKuat!
volumes:
n8n_data:
Start service:
docker compose up -d
Cek status:
docker compose logs -f
Kalua log terakhir Editor is now accessible via ..., berarti kontainer siap.
3. Pasang Nginx reverse-proxy + SSL
Install Nginx & Certbot:
sudo apt install nginx certbot python3-certbot-nginx -y
Buat virtual-host:
sudo nano /etc/nginx/sites-available/n8n
server {
server_name n8n.domainkamu.com;
location / {
proxy_pass http://127.0.0.1:5678;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Aktifkan & reload:
sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
Dapatkan sertifikat SSL otomatis:
sudo certbot --nginx -d n8n.domainkamu.com --redirect --agree-tos -m [email protected]
Auto-renew sudah otomatis lewat systemd, tapi kalau mau double:
sudo crontab -e
# tambahkan baris ini
0 3 * * * certbot renew --quiet
4. Optimasi & tips produksi
- Tambah
--memory="800m" --cpus="0.8"di docker-compose agar n8n tak makan semua RAM. - Backup volume
n8n_datatiap minggu:docker run --rm -v n8n_data:/data -v $(pwd):/backup alpine tar czf /backup/n8n-$(date +%F).tar.gz -C /data . - Gunakan execution timeout di menu Settings untuk mencegah workflow ngantuk.
- Update image:
docker compose pull && docker compose up -d.
Kesimpulan
Dalam waktu singkat kamu sudah punya n8n self-host berjalan di VPS Ubuntu dengan HTTPS aktif. Dengan Docker Compose, update jadi sekali perintah; dengan Nginx, kamu bebas menambahkan domain lain atau load-balancer di belakangnya. Mulai sekarang, otomasi WhatsApp → Google Sheet, atau webhook Shopify → Slack, bisa dikerjakan sendiri tanpa takut data lewat server pihak ketiga. Jangan lupa backup mingguan dan pantau log agar workflow tetap lancar. Selamat bereksperimen!
FAQ
Bisa, asalkan tidak menjalankan workflow berat secara paralel. Disarankan 2 GB untuk produksi.
Self-host memberi kontrol data & webhook tak terbatas, tapi kamu urus update & backup sendiri.
Jalankan docker compose pull && docker compose up -d; workflow tersimpan di volume otomatis aman.