Kalau kamu belajar n8n dengan mengetik npx n8n di terminal, kebiasaan itu sebentar lagi tidak jalan. n8n 3.0.0 dirilis sebagai beta pada 27 Oktober 2026, versi stabilnya direncanakan awal Desember, dan mulai 3.0 n8n self-hosted hanya bisa dijalankan lewat Docker. Paket n8n yang bisa dijalankan di npm tidak diterbitkan lagi.
Aku sendiri sudah cukup lama menjalankan instance sendiri (sekarang isinya lewat 200 workflow), jadi tulisan ini adalah setup yang akan kulakukan hari ini kalau mulai dari VPS kosong di Indonesia: server mana yang disewa, satu perintah yang menggantikan seluruh ritual install npm, dan beberapa perubahan yang wajib dilakukan sebelum hasilnya aman ditaruh di internet.
Apa yang berubah di 3.0
Bagian deployment-nya pendek:
- Install lewat
npm install n8n -gataunpx n8ntidak didukung lagi. Menurut n8n, salah satu alasannya karena fitur keamanan baru bergantung pada setup container. - Install npm yang sudah ada masih jalan di 2.x untuk sementara, tapi install baru dan upgrade berikutnya harus lewat Docker.
- Setup Kubernetes dan Helm tidak terpengaruh. Kalau kamu sudah pakai file Docker Compose sendiri, tidak ada yang perlu diubah.
- Tidak ada jalur upgrade langsung dari 1.x ke 3.x. Harus lewat 2.x dulu. Dukungan 1.x berakhir 31 Desember 2026.
- Tidak bisa rollback dari 3.0 ke 2.x.
Pengganti npx n8n adalah installer satu baris:
curl -fsSL https://get.n8n.io | sh
Script ini mengecek Docker dan plugin Compose v2, menulis compose.yml dan .env ke folder baru ./n8n, membuat secret, menarik image, lalu menjalankan semuanya. Aman dijalankan dua kali; kalau foldernya sudah ada, script cuma memberi tahu lalu berhenti.
Breaking change 3.0 lainnya menyangkut workflow, bukan hosting. Yang paling sering bikin orang kejedot kubahas di checklist paling bawah.
Pilih VPS: kenapa 2 GB sudah tidak cukup
n8n sendiri ringan. Dokumentasinya menyebut instance idle memakai sekitar 100 MB. Yang membuat kebutuhan server naik adalah bawaan installer-nya: sandbox untuk n8n Assistant (container Docker-in-Docker privileged yang menjalankan kode buatan AI) plus layanan pencarian SearXNG. Panduan Docker Compose n8n meminta minimal 4 GB RAM dan 2 vCPU untuk stack ini.
Jadi tier yang dilihat adalah 2 vCPU / 4 GB. Ini harganya per awal November 2026, dari daftar harga masing-masing provider:
| Provider | Paket | Spek | Harga / bulan | Catatan |
|---|---|---|---|---|
| Biznet Gio (Jakarta) | NEO Lite MS 4.2 | 2 vCPU, 4 GB, 60 GB SSD | Rp139.000 | Bandwidth unlimited, 1 IP publik. Snapshot bayar terpisah. |
| Rumahweb | VPS L | 2 vCPU, 4 GB, 80 GB SSD | Rp245.000 | Traffic unlimited |
| IDCloudHost (Indonesia / Singapura) | Cloud VPS | mulai 2 vCPU, 2 GB, 20 GB NVMe | mulai Rp87.000 | Cek pricelist untuk tier 4 GB; harganya sering berubah. |
| DigitalOcean (Singapura) | Basic Droplet | 2 vCPU, 4 GB, 80 GB | $24 (sekitar Rp435.000 dengan kurs Rp18.100/USD) | Transfer 4 TB |
| Hetzner (hanya Jerman/Finlandia) | CX23 | 2 vCPU, 4 GB, 40 GB | €5,49 + €0,50 IPv4 (sekitar Rp121.000 dengan kurs Rp20.200/EUR) | Tidak tersedia di Singapura. Setelah kenaikan harga Juni 2026, opsi Singapura mulai dari CCX13 €53,99. Sering kehabisan stok. |
Dua hal yang menonjol. Hetzner murah yang sering direkomendasikan orang hanya ada di Eropa, jadi setiap webhook dari Jakarta harus bolak-balik ke Jerman. Dan kalau dihitung, VPS Jakarta Rp139.000 ada di kisaran harga yang sama, dengan server di negara yang sama dengan user dan datamu.
Pilihanku untuk kebanyakan orang: Biznet Gio NEO Lite MS 4.2 atau paket 4 GB IDCloudHost, mana yang tersedia. Ambil tier 8 GB (Biznet MM 8.4 Rp269.000) kalau kamu berencana menyalakan n8n Assistant dan membiarkannya menjalankan kode, atau kalau workflow-mu banyak memproses PDF dan gambar.
Sebelum memutuskan, ping dari lokasi user atau sistem klienmu ke IP test masing-masing provider. Latensi beda-beda per ISP, jadi ukur sendiri.
Install: dari Ubuntu kosong sampai n8n jalan
Asumsinya Ubuntu 24.04, server baru, dan kamu bisa SSH sebagai root atau user sudo.
1. Install Docker. Installer n8n butuh Docker Engine dan plugin docker compose v2, bukan binary docker-compose lama. Script resmi Docker memberi keduanya:
curl -fsSL https://get.docker.com | sh
docker compose version # harus keluar v2.x
2. Jalankan installer n8n.
cd ~
curl -fsSL https://get.n8n.io | sh
Kamu akan melihat script mengonfirmasi Docker, membuat ./n8n/compose.yml, ./n8n/.env dan ./n8n/searxng-settings.yml, menarik image, lalu mencetak n8n is running at: http://localhost:5678. Jalan pertama butuh beberapa menit karena download image.
Script ini menginstall versi stabil terbaru. Kalau mau mencoba beta 3.0, pin versinya:
curl -fsSL https://get.n8n.io | sh -s -- --version 3.0.0
3. Jangan berhenti di sini. Yang kamu punya sekarang adalah n8n di HTTP polos, mendengarkan port 5678 di semua interface, dengan database SQLite. Untuk laptop oke. Untuk server dengan IP publik, tidak.
Bikin aman untuk produksi
Buka ~/n8n/compose.yml dan ubah port mapping service n8n supaya hanya localhost yang bisa mengaksesnya:
ports:
- '127.0.0.1:5678:5678'
Lalu pasang reverse proxy dengan HTTPS otomatis. Caddy paling sedikit kerjanya. Arahkan A record (misalnya n8n.domainmu.com) ke IP VPS dulu, lalu:
sudo apt install -y caddy
sudo tee /etc/caddy/Caddyfile > /dev/null <<'EOF'
n8n.domainmu.com {
reverse_proxy 127.0.0.1:5678
}
EOF
sudo systemctl reload caddy
Sekarang beri tahu n8n alamat publiknya, kalau tidak URL webhook dan callback OAuth akan menunjuk ke localhost. Tambahkan ini ke ~/n8n/.env:
N8N_HOST=n8n.domainmu.com
N8N_PROTOCOL=https
N8N_PORT=5678
WEBHOOK_URL=https://n8n.domainmu.com/
GENERIC_TIMEZONE=Asia/Jakarta
TZ=Asia/Jakarta
N8N_PROXY_HOPS=1
Restart:
docker compose -f ~/n8n/compose.yml up -d
Kunci firewall hanya untuk SSH dan web:
sudo ufw allow OpenSSH
sudo ufw allow 80,443/tcp
sudo ufw enable
Port 5678 tidak bisa diakses dari luar lagi, dan container sandbox serta runner memang tidak pernah terbuka. File compose bawaan n8n sudah menjaga keduanya internal; jangan tambahkan port mapping ke sana. Sandbox runner adalah container privileged, yang oleh dokumentasi n8n disamakan dengan akses root ke host.
Postgres, bukan SQLite
SQLite adalah bawaan installer dan cukup untuk satu orang dengan puluhan workflow. Untuk tim, atau apa pun yang jalan 24 jam, ganti ke Postgres. Panduan Docker Compose n8n punya blok service postgres dan variabel DB_* yang perlu ditambahkan. Satu peringatan dari halaman itu yang layak diulang: setup itu untuk instance baru. Data SQLite yang sudah ada tidak otomatis pindah ke Postgres, jadi ekspor workflow dulu kalau kamu pindah belakangan.
Perintah sehari-hari
| Tugas | Perintah |
|---|---|
| Stop | docker compose -f ~/n8n/compose.yml down |
| Start | docker compose -f ~/n8n/compose.yml up -d |
| Upgrade n8n dan sandbox | curl -fsSL https://get.n8n.io | sh -s -- --upgrade |
| Pin versi tertentu | curl -fsSL https://get.n8n.io | sh -s -- --version 3.0.0 |
| Log | docker compose -f ~/n8n/compose.yml logs -f n8n |
| Hapus semua termasuk data | docker compose -f ~/n8n/compose.yml down -v && rm -rf ~/n8n |
Perintah upgrade hanya mengubah N8N_VERSION dan N8N_SANDBOX_VERSION di .env. Data, secret, dan sisa file compose tetap.
Backup dua hal secara terjadwal: volume Docker n8n-data (berisi database SQLite dan encryption key) dan folder ~/n8n. Kalau sudah pindah ke Postgres, backup volume itu juga. Kehilangan encryption key berarti kehilangan semua credential yang tersimpan, jadi salin .env dan volume ke luar server.
Sebelum upgrade ke 3.0: checklist
Kalau kamu memindahkan instance 2.x yang sudah ada (npm maupun Docker) ke 3.0, buka Settings > Migration Report dulu. Laporan itu mendaftar workflow dan setting di instance-mu yang perlu perhatian. Yang paling sering rusak:
- Node yang dihapus. Function, Function Item, Item Lists, Cron, Interval, HTML Extract, Read/Write Binary File, Read PDF, node OpenAI lama, HTTP Request Tool lama, dan beberapa node loader serta vector store era LangChain sudah hilang. Workflow yang memakainya gagal, dan yang sudah published tidak aktif setelah upgrade. Kebanyakan punya pengganti langsung (Code, Schedule Trigger, HTML, Read/Write Files from Disk, Extract from File).
$getPairedItemdihapus. Pakai$('Node').item,.itemMatching(i)atau.pairedItem(i).- Slack Trigger butuh signing secret di credential Slack, kalau tidak workflow-nya tidak bisa aktif.
- Task Code node timeout setelah 60 detik secara default, bukan 300. Set
N8N_RUNNERS_TASK_TIMEOUTkalau kodemu jalan lama. - Community node yang belum terverifikasi mati secara default. Set
N8N_UNVERIFIED_PACKAGES_ENABLED=trueatau pindah ke yang terverifikasi. ~/.n8n/binaryDatadiganti nama jadi~/.n8n/storage. Kalau kamu mount volume di sana, ubah path mount-nya. n8n menolak start kalau kedua folder ada.- Rotasi encryption key aktif secara default. Tidak perlu apa-apa, tapi backup database dulu.
Ekspor workflow (lewat Settings atau CLI) sebelum upgrade. Tidak ada rollback.
Biaya per bulan
Untuk builder solo atau tim kecil di VPS Jakarta:
- VPS 2 vCPU / 4 GB: Rp139.000 (Biznet Gio) sampai Rp245.000 (Rumahweb)
- Domain: yang sudah kamu bayar; subdomain dari domain yang ada gratis
- TLS: gratis lewat Caddy dan Let’s Encrypt
- Backup: beberapa ribu rupiah kalau didorong ke object storage, atau gratis ke disk kedua
Jadi kira-kira Rp140.000 sampai Rp250.000 per bulan untuk workflow dan eksekusi tanpa batas, dengan server di Indonesia. Angka itulah yang dibandingkan dengan n8n Cloud saat memutuskan, dan sisa perbandingannya kutulis di Self-hosted n8n vs n8n Cloud untuk tim Indonesia.
Kalau kamu mau ada yang memasang, mengamankan, lalu menyerahkannya lengkap dengan dokumentasi, itu bagian dari yang kukerjakan. Mulai dari audit automasi gratis dan kita putuskan dulu apakah self-hosting memang masuk akal untuk kasusmu.
Harga dicek 1 November 2026 dari daftar harga publik masing-masing provider. Kurs yang dipakai: Rp18.100/USD dan Rp20.200/EUR, dibulatkan. Cek halaman aslinya sebelum membeli; Hetzner saja sudah dua kali mengubah harga sepanjang 2026.
Sumber: blog n8n “Introducing n8n 3.0” (27 Okt 2026), dokumentasi n8n: v3.0 breaking changes, One-line setup, Install using Docker Compose; pricelist Biznet Gio; halaman VPS Rumahweb; pengumuman penyesuaian harga Hetzner (15 Juni 2026); harga Droplet DigitalOcean.