Backup Workflow n8n ke GitHub Secara Otomatis

Backup workflow n8n ke GitHub artinya menyimpan salinan setiap workflow dalam bentuk file JSON di repository Git, secara otomatis dan terjadwal. Kalau server rusak, database korup, atau ada yang tidak sengaja menghapus node penting, Anda tinggal mengambil versi terakhir dari GitHub dan mengimpornya lagi. Bonusnya, Anda juga punya riwayat perubahan: siapa mengubah apa, dan kapan.

Artikel ini membahas cara menyiapkannya untuk n8n self-hosted, dari export workflow sampai restore, termasuk hal yang sering terlewat: kredensial.

Kenapa backup workflow itu wajib

Workflow n8n sering tumbuh pelan-pelan. Awalnya satu alur laporan harian, enam bulan kemudian ada puluhan workflow yang menjalankan penagihan, sinkron stok, dan notifikasi approval. Semuanya tersimpan di database n8n, dan banyak tim baru sadar belum punya backup saat sesuatu sudah rusak.

Beberapa kejadian yang umum:

  • Server atau volume Docker hilang. Misalnya VPS dihapus, disk penuh, atau volume tidak ter-mount setelah update.
  • Salah edit. Seseorang mengubah workflow yang sedang jalan, hasilnya error, dan tidak ada yang ingat versi sebelumnya seperti apa.
  • Workflow terhapus. Satu klik yang salah, dan alur yang dibangun berminggu-minggu hilang.
  • Pindah server. Tanpa file export, migrasi jadi pekerjaan manual yang ribet.

n8n memang punya fitur riwayat versi workflow, tapi riwayat itu tersimpan di database yang sama. Kalau database-nya yang hilang, riwayatnya ikut hilang. Backup ke tempat terpisah seperti GitHub menutup celah ini.

Kalau Anda memakai n8n Cloud, sebagian urusan infrastruktur ditangani n8n. Perbedaan tanggung jawab antara dua opsi ini dibahas di n8n self hosted vs n8n Cloud.

Pilihan cara backup

Ada beberapa pendekatan, masing-masing dengan kelebihan sendiri:

Cara Cocok untuk Catatan
Workflow n8n yang membackup dirinya sendiri Kebanyakan tim kecil Semua diatur dari dalam n8n
Script CLI + cron di server Tim yang nyaman dengan terminal Tidak bergantung pada n8n yang sedang jalan normal
Fitur Source Control bawaan Paket Business dan Enterprise Terhubung ke Git, cocok untuk alur dev ke production

Fitur Source Control and Environments dari n8n menghubungkan instance ke repository Git dan mendukung push dan pull workflow. Fitur ini hanya tersedia di paket Business dan Enterprise, jadi untuk Community Edition, dua cara pertama yang paling realistis.

Export workflow via API

n8n self-hosted menyediakan public API (jalur akses terprogram ke data n8n). Untuk memakainya, buat API key di menu Settings n8n, lalu kirim di header X-N8N-API-KEY. Daftar workflow bisa diambil dari endpoint /api/v1/workflows, yang hasilnya dibagi per halaman.

Anda tidak perlu memanggil API itu secara manual. n8n punya node bawaan bernama n8n yang bisa mengambil daftar workflow beserta isinya memakai API key tadi.

Kalau Anda lebih suka lewat server, CLI n8n juga bisa melakukannya:

n8n export:workflow --backup --output=backups/latest/

Flag --backup otomatis mengekspor semua workflow, satu file per workflow, dengan format rapi. Satu file per workflow penting agar perubahan di GitHub mudah dibaca per workflow. Kalau n8n berjalan di Docker, jalankan perintah ini di dalam container dengan docker exec.

Commit otomatis ke repository

Setelah export, langkah berikutnya adalah menyimpan file ke GitHub. Contoh alur workflow backup di n8n:

  1. Schedule Trigger menjalankan workflow setiap malam, misalnya jam 23.00. Pengaturannya dibahas di Schedule Trigger n8n.
  2. Node n8n mengambil semua workflow.
  3. Loop memproses satu workflow per putaran.
  4. Node GitHub mengecek apakah file untuk workflow itu sudah ada di repository.
  5. Kalau belum ada, file dibuat. Kalau sudah ada dan isinya berubah, file diperbarui. Kalau sama, dilewati agar riwayat commit tidak penuh dengan perubahan kosong.
  6. Setelah selesai, kirim ringkasan singkat ke email atau Slack: berapa workflow dibackup, berapa yang berubah.

Beberapa hal yang perlu diperhatikan:

  • Pakai repository privat. Workflow bisa berisi URL internal, nama sheet, alamat email, dan logika bisnis Anda.
  • Pakai token dengan akses minimum. Di GitHub, buat fine-grained personal access token yang hanya bisa menulis ke satu repository backup itu.
  • Beri nama file yang stabil. Gunakan ID workflow di nama file, misalnya laporan-harian_<id>.json, supaya file tidak dobel saat workflow diganti nama.
  • Pasang notifikasi gagal. Backup yang diam-diam berhenti sama bahayanya dengan tidak punya backup. Cara memantaunya ada di monitoring eksekusi n8n.

Kalau memakai cara CLI, polanya sama: cron di server menjalankan export, lalu git add, git commit, dan git push ke repository privat.

Mengembalikan workflow dari backup

Backup baru berguna kalau restore-nya pernah dicoba. Ada tiga cara mengembalikan workflow:

  • Dari editor n8n. Buat workflow baru, lalu pilih import from file dan unggah file JSON dari GitHub. Paling mudah untuk satu atau dua workflow.
  • Dari CLI. Untuk mengembalikan banyak workflow sekaligus:
n8n import:workflow --separate --input=backups/latest/
  • Dari riwayat Git. Kalau yang Anda butuhkan adalah versi minggu lalu, buka riwayat file di GitHub, ambil versi yang tepat, lalu import.

Perlu dicatat, workflow hasil import lewat CLI secara default dalam keadaan tidak aktif. Ini justru aman: Anda bisa mengecek kredensial dan pengaturannya dulu sebelum mengaktifkan kembali. Jadwalkan uji restore, misalnya tiga bulan sekali, di instance n8n terpisah.

Backup kredensial dengan aman

File JSON workflow tidak berisi password atau API key. Workflow hanya menyimpan referensi ke kredensial, misalnya nama dan ID-nya. Kredensial sendiri tersimpan terenkripsi di database n8n, memakai encryption key milik instance tersebut.

Artinya, backup workflow saja belum cukup untuk memulihkan sistem secara utuh. Anda juga perlu:

  1. Menyimpan encryption key n8n (variabel N8N_ENCRYPTION_KEY atau file di folder data n8n) di password manager atau secret manager. Tanpa key ini, kredensial terenkripsi tidak bisa dibaca oleh instance baru.
  2. Membackup kredensial dalam bentuk terenkripsi, misalnya dengan n8n export:credentials --backup --output=backups/credentials/, dan menyimpannya di lokasi terpisah dengan akses terbatas.
  3. Membackup database n8n secara rutin, karena database juga menyimpan hal lain seperti riwayat eksekusi dan pengaturan user.

Satu larangan tegas: jangan pernah commit hasil export:credentials --decrypted ke GitHub, walaupun repository-nya privat. Dokumentasi n8n sendiri mengingatkan bahwa opsi ini membuat semua informasi sensitif terlihat dalam file.

Kalau Anda ingin n8n di perusahaan Anda dirawat dengan benar, termasuk backup, monitoring, dan update versi, itu bagian dari layanan kami. Untuk melihat kondisi otomatisasi Anda saat ini, Anda bisa mulai dari audit proses gratis.

Pertanyaan yang sering muncul

Apakah n8n Community Edition bisa terhubung ke GitHub?

Bisa. Node GitHub dan node n8n tersedia di Community Edition, jadi workflow backup seperti di atas bisa dibuat tanpa paket berbayar. Yang hanya ada di paket Business dan Enterprise adalah fitur Source Control bawaan.

Seberapa sering backup sebaiknya dijalankan?

Untuk kebanyakan tim, sekali sehari sudah cukup. Kalau workflow sering diubah setiap hari oleh beberapa orang, jalankan beberapa kali sehari. Yang penting jadwalnya konsisten dan ada notifikasi kalau gagal.

Apakah backup ke GitHub menggantikan backup database?

Tidak. Backup ke GitHub melindungi isi workflow dan riwayat perubahannya. Backup database tetap diperlukan untuk kredensial, riwayat eksekusi, user, dan pengaturan lain.