Cara Self-Host n8n (Panduan 2026)
Self-hosting n8n memberi kamu platform otomatisasi workflow lengkap tanpa batas eksekusi dan kepemilikan penuh atas data kamu. Panduan ini menjelaskan pengaturan Docker, Docker Compose, dan PostgreSQL yang sebenarnya secara jujur, lalu menunjukkan jalan pintas 30 detik jika kamu lebih memilih melewati administrasi server sepenuhnya.
Apa arti “self-hosting n8n”?
n8n adalah alat otomatisasi workflow yang source-available. Berbeda dengan n8n Cloud, yaitu SaaS yang di-hosting oleh tim n8n, self-hosting berarti kamu menjalankan aplikasi n8n di infrastruktur yang kamu kendalikan. Perangkat lunaknya sendiri gratis di bawah lisensi fair-code, tetapi komputasi, database, storage, dan bandwidth untuk menjalankannya 24/7 tidak gratis. Self-hosting adalah pilihan yang tepat ketika kamu menginginkan tanpa batas eksekusi, kontrol penuh atas kredensial dan data, workflow tanpa batas, serta kemampuan memakai community node dan kode kustom tanpa tingkatan SaaS yang membatasinya.
Persyaratan sistem n8n
n8n ringan saat dimulai, tetapi skalanya mengikuti seberapa berat workflow kamu. Gambaran realistisnya:
- CPU: 1 vCPU sudah cukup untuk penggunaan ringan; 2+ vCPU untuk banyak eksekusi bersamaan.
- RAM: 1–2GB untuk n8n. Workflow yang memproses payload besar (file, gambar, JSON besar) membutuhkan lebih banyak.
- Database: PostgreSQL sangat direkomendasikan untuk produksi. SQLite bawaan cukup untuk pengujian tetapi tidak menangani konkurensi dengan baik dan lebih sulit di-backup dengan aman.
- Storage: Beberapa GB sudah cukup untuk mulai; riwayat eksekusi dan data biner bertambah seiring waktu.
- Jaringan: Endpoint HTTPS publik (port 443) agar webhook masuk dan callback OAuth berfungsi.
Untuk pembahasan yang lebih dalam yang dipetakan ke ukuran paket, lihat Panduan persyaratan server n8n kami.
Opsi 1: Deploy n8n dengan Docker
Cara tercepat menjalankan n8n di mesin atau VPS kamu sendiri adalah image Docker resmi. Ini bagus untuk uji coba lokal, tetapi perlu diingat bahwa ini memakai SQLite dan tanpa TLS, jadi bukan yang kamu inginkan untuk produksi:
docker volume create n8n_data
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
docker.n8n.io/n8nio/n8nBuka http://localhost:5678, buat akun owner, dan kamu sudah punya n8n yang berfungsi. Untuk penggunaan sungguhan, pindah ke Docker Compose dengan PostgreSQL.
Opsi 2: Docker Compose dengan PostgreSQL
Pengaturan produksi memasangkan n8n dengan database PostgreSQL khusus, kunci enkripsi, serta host dan URL webhook yang benar. Simpan ini sebagai docker-compose.yml:
services:
postgres:
image: postgres:16
restart: always
environment:
POSTGRES_USER: n8n
POSTGRES_PASSWORD: change-me
POSTGRES_DB: n8n
volumes:
- pgdata:/var/lib/postgresql/data
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
ports:
- "5678:5678"
environment:
DB_TYPE: postgresdb
DB_POSTGRESDB_HOST: postgres
DB_POSTGRESDB_DATABASE: n8n
DB_POSTGRESDB_USER: n8n
DB_POSTGRESDB_PASSWORD: change-me
N8N_HOST: n8n.example.com
N8N_PROTOCOL: https
WEBHOOK_URL: https://n8n.example.com/
N8N_ENCRYPTION_KEY: a-long-random-string
depends_on:
- postgres
volumes:
- n8ndata:/home/node/.n8n
volumes:
pgdata:
n8ndata:Lalu jalankan docker compose up -d. Ada beberapa hal penting: atur N8N_ENCRYPTION_KEY yang kuat (kunci ini mengenkripsi kredensial yang tersimpan, dan jika hilang kamu harus memasukkan ulang setiap kredensial), arahkan WEBHOOK_URL ke domain HTTPS publik sungguhanmu, dan jangan pernah membuka port 5678 langsung ke internet tanpa reverse proxy di depannya.
Bagian-bagian yang dilewatkan tutorial self-hosting
Membuat n8n berjalan adalah 20% yang mudah. Menjaganya tetap berjalan dengan aman adalah 80% sisanya, dan di situlah VPS mentah sering menyulitkanmu:
- Sertifikat TLS: Kamu membutuhkan HTTPS untuk webhook dan OAuth. Itu berarti Caddy, Traefik, atau Nginx ditambah Let’s Encrypt, dan perpanjangan sertifikat yang tidak boleh gagal.
- Webhook & reverse proxy: Webhook masuk membutuhkan URL publik yang stabil dan header proxy yang benar, atau trigger akan rusak secara diam-diam.
- Backup: Workflow, kredensial, dan riwayat eksekusi kamu tinggal di PostgreSQL. Kamu membutuhkan backup database otomatis yang sudah diuji; backup yang belum diuji bukanlah backup.
- Pembaruan: n8n sering dirilis. Kamu bertanggung jawab untuk menarik image baru, membaca catatan perubahan yang merusak, dan memigrasikan database.
- Uptime: Satu VPS adalah titik kegagalan tunggal. Jika host reboot pukul 2 pagi, workflow terjadwal dan webhook kamu berhenti sampai kamu menyadarinya.
Atau lewati semuanya: deploy n8n di Flux dalam 30 detik
Jika kamu ingin manfaat self-hosting (tanpa batas eksekusi, instans sendiri, kepemilikan data penuh) tanpa harus menjadi sysadmin paruh waktu, deploy n8n di cloud terdesentralisasi Flux. Kamu mendapatkan instans khusus dengan klaster high-availability PostgreSQL 3-node, failover otomatis, HTTPS, webhook yang berfungsi, dan perlindungan DDoS, semuanya disediakan untukmu.
Pertanyaan yang sering diajukan
Is self-hosting n8n free?
The n8n software is free to self-host, but the server, database, storage, and bandwidth to run it 24/7 are not. On Flux you rent that server from $6.99/month with n8n preinstalled and an HA PostgreSQL cluster already set up.
Do I need PostgreSQL to self-host n8n?
For testing, n8n’s default SQLite works. For production you should use PostgreSQL — it handles concurrent executions safely and is far easier to back up and restore reliably.
How do I make n8n webhooks work when self-hosting?
Webhooks need a stable public HTTPS URL. Set WEBHOOK_URL and N8N_HOST to your real domain and put a reverse proxy with a valid TLS certificate in front of n8n. On Flux this HTTPS endpoint is provisioned automatically.
Can I migrate my existing workflows?
Yes. n8n workflows are portable JSON — export them from any existing instance and import them into your new one. Credentials are re-entered for security.