Deploy n8n di server Anda sendiri: domain, workflow, dan backup
Deploy n8n dari template Zenavo, atur HTTPS, alamat webhook, dan zona waktu, jalankan workflow pertama Anda, lalu amankan kunci enkripsi serta backup volume.
Artikel ini juga tersedia dalam English, 简体中文, 繁體中文, 日本語, dan Español.
Mengirim isi formulir ke spreadsheet, merangkum pesan secara terjadwal, atau memanggil API saat webhook masuk — otomatisasi berulang seperti ini bisa diserahkan ke n8n. Dengan self-hosting, Anda tidak dibatasi kuota jumlah eksekusi, dan semua workflow serta kredensial tetap berada di server milik Anda sendiri.
Panduan ini memakai template n8n di Zenavo, mulai dari deploy, pengaturan domain dan webhook, hingga backup dan upgrade. Server, platform Zenavo, dan API pihak ketiga yang dipanggil oleh workflow ditagih secara terpisah.
Deploy n8n
Pertama, hubungkan server Linux ke Zenavo, lalu buka template n8n, pilih server, dan deploy.
Pengaturan template saat ini:
| Pengaturan | Nilai atau fungsi |
|---|---|
| Image | n8nio/n8n:latest |
| Port HTTP | 5678 |
| Volume | /home/node/.n8n: database SQLite bawaan, workflow, dan kredensial disimpan di sini |
N8N_ENCRYPTION_KEY |
Dibuat otomatis saat proyek dibuat, untuk mengenkripsi kredensial yang disimpan di workflow |
GENERIC_TIMEZONE |
Bawaannya UTC, ubah ke zona waktu Anda di bawah |
N8N_DIAGNOSTICS_ENABLED |
false, mematikan telemetri |
Tag latest mengikuti rilis terbaru dari hulu. Untuk pemakaian jangka panjang, buka Pengaturan → Sumber pada layanan n8n dan kunci tag image ke versi tetap yang sudah Anda uji (misalnya n8nio/n8n:1.82.0) agar deploy ulang tidak otomatis menaikkan versi.
Pasang domain, atur URL webhook dan zona waktu
Di tab Jaringan pada layanan n8n, pasang domain seperti n8n.example.com ke port 5678, tambahkan record DNS A yang mengarah ke server, lalu tunggu HTTPS aktif. Langkah-langkahnya ada di Domain & HTTPS.
Setelah itu, buka tab Variabel pada layanan n8n dan tambahkan pengaturan domain serta zona waktu:
N8N_HOST=n8n.example.com
N8N_PROTOCOL=https
N8N_EDITOR_BASE_URL=https://n8n.example.com/
WEBHOOK_URL=https://n8n.example.com/
N8N_PROXY_HOPS=1
GENERIC_TIMEZONE=Asia/Jakarta
TZ=Asia/Jakarta
Beberapa catatan:
WEBHOOK_URLmenentukan alamat publik yang dibuat oleh node Webhook; jika tidak diatur, node akan menampilkan alamat internal kontainerhttp://localhost:5678.N8N_PROXY_HOPS=1sesuai dengan satu lapis reverse proxy dari gateway Zenavo. Jika di depan domain Anda masih ada proxy CDN seperti Cloudflare, sesuaikan jumlah hop-nya.GENERIC_TIMEZONEmengatur zona waktu bawaan untuk Schedule Trigger.
Simpan lalu restart layanan, kemudian buka https://n8n.example.com untuk membuat akun pemilik. Jika nanti Anda mengganti domain, perbarui juga variabel alamat di atas.
Jalankan workflow dan webhook pertama
Setelah masuk ke editor, buat satu workflow sederhana untuk memastikan eksekusi berjalan lancar:
- Buat workflow baru dan tambahkan Manual Trigger.
- Tambahkan node Edit Fields (Set), buat field string
messagedengan nilaiHello from n8n. - Klik Test workflow, pastikan pesan tersebut muncul di hasil sebelah kanan, lalu simpan.
Berikutnya, uji apakah permintaan dari luar bisa masuk ke Webhook:
- Tambahkan node Webhook dengan HTTP Method
GET. - Klik Listen for test event, buka Test URL yang ditampilkan node di browser, dan pastikan editor langsung menerima data permintaan.
- Saat menghubungkan layanan pihak ketiga yang sebenarnya (seperti GitHub, Stripe, atau Slack), gunakan Production URL dan nyalakan sakelar Active di kanan atas workflow. Test URL hanya aktif sementara saat Anda menekan tombol listen di editor.
Simpan N8N_ENCRYPTION_KEY dengan aman
Semua API key pihak ketiga, kata sandi database, dan token OAuth yang Anda simpan di n8n dienkripsi memakai N8N_ENCRYPTION_KEY sebelum disimpan di database.
Buka tab Variabel pada layanan n8n, lalu salin nilai N8N_ENCRYPTION_KEY ke pengelola kata sandi Anda. Jangan mengubahnya setelah deploy. Jika suatu saat Anda memulihkan backup ke proyek atau server baru, Anda wajib mengisi N8N_ENCRYPTION_KEY yang sama persis; tanpa kunci itu, workflow yang dipulihkan tidak bisa mendekripsi kredensial lama.
Fitur "Export workflow" di editor hanya mengekspor JSON berisi node dan sambungannya, tanpa kredensial maupun riwayat eksekusi, sehingga tidak menggantikan backup penuh.
Backup dan upgrade
Seluruh data n8n berada di volume /home/node/.n8n. Cadangkan dari tab Backup & Pemulihan pada layanan n8n:
- Pilih waktu saat tidak ada workflow penting yang sedang berjalan, lalu hentikan proyek (backup volume mengharuskan proyek dalam keadaan berhenti).
- Buat backup volume, lalu jalankan kembali proyek setelah selesai.
- Unduh satu salinan backup dan simpan bersama
N8N_ENCRYPTION_KEYAnda.
Detail langkahnya ada di Backup & Pemulihan. Jika Anda memulihkan backup ke proyek baru untuk pengujian, ingat bahwa workflow yang aktif akan langsung menjalankan jadwalnya begitu dinyalakan — matikan trigger lebih dulu atau pisahkan dari sistem produksi.
Sebelum upgrade, baca catatan rilis n8n, cadangkan volume terlebih dahulu, baru ubah versi image di Pengaturan → Sumber. Upgrade n8n dapat memigrasikan struktur database, sehingga mengganti tag image kembali ke versi lama belum tentu bisa langsung jalan; pulihkan backup dari sebelum upgrade jika perlu kembali.
Pertanyaan umum
Alamat di node Webhook masih menampilkan localhost:5678?
Periksa apakah WEBHOOK_URL=https://domain-anda/ sudah ditambahkan di tab Variabel, lalu restart layanan n8n setelah menyimpan.
Platform pihak ketiga mendapat 404 saat memanggil webhook?
Pastikan yang dipakai adalah Production URL (path /webhook/..., bukan /webhook-test/...) dan sakelar Active di kanan atas workflow sudah dinyalakan.
Jadwal otomatis tidak berjalan sesuai zona waktu saya?
Periksa apakah GENERIC_TIMEZONE dan TZ di Variabel sudah diatur ke zona waktu Anda (misalnya Asia/Jakarta), dan cek juga Settings → Timezone di dalam workflow tersebut apakah menimpa zona waktu bawaan.
Seberapa besar server yang dibutuhkan? Untuk workflow ringan sehari-hari, pemakaian memorinya kecil dan server 1 vCPU / 2 GB sudah cukup untuk mulai. Jika workflow Anda memproses file besar, array JSON besar di memori, atau banyak eksekusi bersamaan, gunakan server 2 vCPU / 4 GB ke atas.
Mulailah dari template n8n: pasang domain, atur WEBHOOK_URL dan zona waktu, simpan N8N_ENCRYPTION_KEY, lalu buat backup volume pertama Anda.
Inilah yang dibaca agen coding, di https://zenavo.app/id-ID/blog/self-host-n8n.md.
Markdown tidak bisa dimuat. Buka langsung: https://zenavo.app/id-ID/blog/self-host-n8n.md