Kembali ke Blog

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.

Frendi Triarista
Panduan Praktis Deploy self-hosted n8n dengan Docker di VPS

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