Lewati ke isi

AI & Otomasi

Cara Update n8n di VPS Tanpa Kehilangan Workflow

Langkah aman memperbarui n8n di VPS dengan Docker Compose, dari backup workflow dan kredensial, menyimpan encryption key, sampai cara mundur bila gagal.

Terbit 6 menit baca

Jawaban singkat

Sebelum update, ekspor workflow dan kredensial, salin volume /home/node/.n8n beserta encryption key, dan baca catatan rilis. Lalu kunci versi image, jalankan docker compose pull dan up -d, dan periksa workflow aktif. Data aman selama volume tetap terpasang.

Daftar isi
  1. Langkah update n8n dengan aman
  2. 1. Pastikan data memang tersimpan di volume
  3. 2. Ekspor workflow dan kredensial
  4. 3. Simpan encryption key
  5. 4. Cadangkan database dan volume
  6. 5. Baca catatan rilis, terutama lompatan versi mayor
  7. 6. Kunci versi, lalu jalankan update
  8. 7. Periksa hasilnya
  9. Kalau update gagal, bagaimana cara mundur?
  10. Pertanyaan yang sering diajukan

Takut workflow n8n yang sudah berbulan-bulan kamu susun hilang begitu tombol update ditekan? Kekhawatiran itu wajar, tetapi risikonya bisa ditekan sampai hampir nol. Workflow, kredensial, dan riwayat eksekusi n8n tidak disimpan di dalam image Docker, melainkan di volume data (dan database, bila kamu memakai PostgreSQL). Selama volume itu tetap terpasang dan kamu punya cadangannya, mengganti versi n8n hanyalah mengganti program yang membaca data tersebut.

Yang sering membuat orang kehilangan data justru hal di sekitarnya: menjalankan container tanpa volume, kehilangan encryption key, atau melompat ke versi mayor tanpa membaca perubahan yang tidak kompatibel. Langkah di bawah menutup ketiga celah itu. Contohnya memakai Docker Compose, cara instalasi n8n yang paling umum di VPS.

Langkah update n8n dengan aman

1. Pastikan data memang tersimpan di volume

Buka docker-compose.yml dan cari bagian volumes pada layanan n8n. Harus ada baris yang memetakan volume atau folder ke /home/node/.n8n, misalnya:

services:
  n8n:
    image: docker.n8n.io/n8nio/n8n:2.35.0
    volumes:
      - n8n_data:/home/node/.n8n
volumes:
  n8n_data:

Dokumentasi n8n menyebut folder ini menyimpan encryption key, log instance, dan aset source control, dan tetap perlu dipetakan meski kamu memakai PostgreSQL. Bila memakai SQLite bawaan, file database juga ada di folder ini. Kalau baris volume tidak ada, berhenti dulu: data kamu ada di dalam container, dan menghapus container berarti menghapus data. Ekspor semuanya (langkah 2) sebelum memperbaiki konfigurasi. Nomor versi di contoh hanyalah ilustrasi, ganti dengan versi yang kamu tuju.

2. Ekspor workflow dan kredensial

Jalankan perintah CLI n8n di dalam container. Sesuaikan nama container dengan milikmu (cek dengan docker ps):

docker exec -u node -it n8n n8n export:workflow --backup --output=/home/node/.n8n/backup/
docker exec -u node -it n8n n8n export:credentials --backup --output=/home/node/.n8n/backup/

Opsi --backup setara dengan --all --pretty --separate, jadi setiap workflow tersimpan sebagai satu file JSON. Kredensial diekspor dalam keadaan terenkripsi, dan hanya bisa dibuka lagi dengan encryption key yang sama. Salin folder hasil ekspor ke luar server, misalnya ke laptop atau object storage.

3. Simpan encryption key

Encryption key ada di file /home/node/.n8n/config, atau di variabel N8N_ENCRYPTION_KEY bila kamu mengaturnya sendiri. Tanpa kunci ini, semua kredensial (API key, password database, token OAuth) tidak bisa didekripsi, dan kamu harus memasukkan ulang satu per satu. Catat nilainya di password manager.

4. Cadangkan database dan volume

Untuk PostgreSQL, buat dump sebelum update:

docker exec -t postgres pg_dump -U n8n -d n8n > n8n-sebelum-update.sql

Untuk SQLite, hentikan n8n sebentar lalu salin seluruh isi volume. Cara paling aman di VPS adalah mengambil snapshot sesaat sebelum update, sehingga kamu bisa kembali ke kondisi persis sebelumnya bila ada masalah besar. Bedanya snapshot dan backup dijelaskan di snapshot VPS vs backup, dan backup database berkala ada di backup database otomatis.

5. Baca catatan rilis, terutama lompatan versi mayor

Update dalam versi minor yang sama biasanya mulus. Lompatan versi mayor berbeda. Saat n8n 2.0 dirilis, misalnya, dokumentasi resminya mencantumkan sejumlah perubahan yang tidak kompatibel, di antaranya akses variabel lingkungan dari Code node diblokir secara bawaan dan beberapa node dinonaktifkan secara bawaan. n8n juga menyediakan Migration Report di menu Settings (untuk admin) yang menandai workflow yang terdampak sebelum kamu naik versi.

6. Kunci versi, lalu jalankan update

Hindari tag latest di produksi. Tulis versi spesifik di image, sehingga kamu tahu persis versi yang berjalan dan update hanya terjadi saat kamu mengubah angkanya. Setelah mengganti nomor versi, jalankan sesuai panduan resmi:

cd /path/folder/compose
docker compose pull
docker compose down
docker compose up -d

Pantau log saat container pertama kali naik, karena migrasi database terlihat di sini:

docker compose logs -f n8n

Pola umum memperbarui container tanpa kehilangan data dibahas lebih luas di cara update container Docker tanpa kehilangan data.

7. Periksa hasilnya

Setelah n8n bisa dibuka, cek beberapa hal:

  • Jumlah workflow sama dengan sebelum update.
  • Workflow yang tadinya aktif masih aktif.
  • Kredensial bisa dipakai (jalankan satu workflow yang memakai API eksternal).
  • Webhook produksi masih menerima data. Bila tidak, lihat penyebab webhook n8n tidak jalan.
  • Tab Executions tidak dipenuhi error baru.

Kalau update gagal, bagaimana cara mundur?

Urutan pemulihannya dari yang paling ringan:

KondisiTindakan
n8n naik tetapi beberapa workflow errorPerbaiki node yang terdampak sesuai catatan rilis
n8n gagal naik, migrasi belum berjalanKembalikan tag image ke versi lama, docker compose up -d
Migrasi sudah berjalan dan versi lama menolak databasePulihkan dump database atau salinan volume, lalu jalankan versi lama
Kondisi server kacauKembalikan snapshot VPS yang diambil sebelum update
Volume hilang sama sekaliPasang n8n baru dengan encryption key lama, lalu impor hasil ekspor

Untuk skenario terakhir, impor dilakukan dengan n8n import:workflow --separate --input=<folder> dan n8n import:credentials --separate --input=<folder>. Dokumentasi n8n mengingatkan bahwa impor menimpa workflow dengan ID yang sama, dan workflow hasil impor dinonaktifkan secara bawaan, jadi aktifkan kembali yang diperlukan.

Pertanyaan yang sering diajukan

Seberapa sering n8n perlu diperbarui?

n8n merilis versi baru dengan cepat. Untuk produksi, jadwalkan update rutin, misalnya bulanan, dan segera perbarui bila ada rilis perbaikan keamanan. Jangan mengaktifkan update otomatis tanpa pengawasan.

Apakah bisa langsung melompat beberapa versi sekaligus?

Dalam satu versi mayor biasanya bisa, karena migrasi database dijalankan berurutan. Untuk lompatan versi mayor, baca daftar perubahan yang tidak kompatibel dan jalankan Migration Report lebih dulu.

Perlukah ekspor kredensial dalam bentuk terdekripsi?

Sebaiknya tidak, kecuali benar-benar perlu memindahkan ke instance dengan kunci berbeda. File terdekripsi berisi semua password dan token dalam teks biasa. Bila terpaksa, simpan di tempat terenkripsi dan hapus setelah dipakai.

Bagaimana menguji update tanpa mengganggu produksi?

Pulihkan backup ke server atau container terpisah, jalankan versi baru di sana, dan uji workflow penting. Matikan dulu pemicu terjadwal di salinan uji agar tidak mengirim pesan atau data ganda.

Checklist update n8n:

  • Volume /home/node/.n8n terpasang dengan benar.
  • Workflow dan kredensial sudah diekspor dan disalin ke luar server.
  • Encryption key tercatat di tempat aman.
  • Dump database atau snapshot VPS sudah diambil.
  • Catatan rilis sudah dibaca, versi image ditulis spesifik.
  • Workflow aktif, kredensial, dan webhook sudah dicek setelah update.

Sumber & referensi

Baca juga