影片連結:https://www.youtube.com/watch?v=IiqqMcIcZK4
YouTube 頻道:https://www.youtube.com/c/kaochenlong
n8n 用一陣子之後,有沒有發現你的工作流程跟設定的 API Key 也越來越多,萬一系統哪天出問題了,這些設定跟流程可能就得重來一次。如果想把這些工作流程搬到另一台機器,雖然一個一個手動複製貼到新的主機上也不是不行,但這樣的方式不僅麻煩,也容易出錯。
直接備份資料庫是個簡單的方法,但如果你的 n8n 是公司的工程師幫你架的,你不一定有機會可以直接存取或備份資料庫。是說,大家別忘了,n8n 身為一個工作流程自動化工具,我們就應該讓它自動備份,而且還是自己備份自己,這樣才是真正的自動化!先不說別的,像這種用魔法打敗魔法的方式,不覺得很有趣嗎?
要用 n8n 備份有兩種方式,一種是透過 n8n 提供的 API 來進行備份,不過如果你是自己架設的 n8n 而且有權限能執行指令也可以透過 n8n 指令來備份工作流程跟金鑰。雖然透過 API 進行工作流程的備份還算方便,但目前沒有匯出 Credentials 的 API(就以資安來說好像也不應該有),所以如果要備份這些之前設定過的 API Credential 的話得另外想辦法。
很幸運的 n8n 這個程式本身就有提供一些指令讓我們來做這件事,如果你有權限可以執行指令的話(例如架設在 Zeabur 上),透過 n8n 指令來進行備份會更簡單,連 API Key 都不用。
但不管是工作流程還是 API Key,檔案備份出來後應該要另外存一份在別的地方(aka 異地備援),這樣才算是真正的備份,這裡可以用 FTP、AWS S3 或是 Google Drive 節點都可以。
因為是操作型的介紹,建議大家可以直接跟著 YouTube 影片實做會更容易理解。
## 匯出工作流程
n8n export:workflow --backup --output=/tmp/workflows
## 匯出金鑰
n8n export:credentials --backup --decrypted --output=/tmp/credentials
## 建立工作流程備份壓縮檔
tar -czf /tmp/backup-workflows-$(date +%Y%m%d).tar.gz /tmp/workflows
## 建立金鑰備份壓縮檔
tar -czf /tmp/backup-credentials-$(date +%Y%m%d).tar.gz /tmp/credentials
## 刪除匯出的工作流程及金鑰目錄、壓縮檔
rm -rf /tmp/workflows /tmp/credentials && rm -rf /tmp/backup-*.tar.gz
工作流程下載:https://gist.github.com/kaochenlong/ef1eb821f9325e5436e93cb5695a6757