别等服务器崩了才哭:你的 n8n 工作流备份了吗?
笔者在 N8N大学 社区里见过太多这样的悲剧:辛辛苦苦搭建了几个月的自动化流程,因为服务器误删、硬盘损坏或者手滑误操作,瞬间归零。那种感觉,就像精心装修的房子突然塌了。

更惨的是,很多人只备份了工作流(Workflow),却忘了备份凭证(Credentials)。结果恢复之后,所有 API 密钥、数据库密码都要重新填,甚至有些第三方服务的 Token 过期了还得重新找人授权。
今天,笔者不讲虚的,只教你一套“全自动防猝死”方案。利用 n8n 自身的能力,实现工作流和凭证的自动备份。这不仅是技术手段,更是你的“后悔药”。
核心思路:把 n8n 自己变成备份机器人
n8n 官方其实留了一个“后门”:它支持通过环境变量开启一个特殊的 API 端点。这个端点能导出包含所有数据(含凭证)的完整 JSON 文件。
我们的策略很简单:
- 利用 Webhook 节点接收备份指令(或者设置定时触发)。
- 利用 HTTP Request 节点调用 n8n 自身的导出 API。
- 利用 Google Drive / Dropbox / 邮件 节点把备份文件存到安全的地方。
第一步:开启 n8n 的“上帝模式”(环境变量配置)
这是最关键的一步。如果不开启这个开关,n8n 默认不允许导出包含凭证的备份。出于安全考虑,官方默认关闭,但我们要备份,就必须打开它。
请在你的 n8n 启动配置文件(docker-compose.yml 或者 .env 文件)中,添加以下环境变量:
N8N_ENABLE_DEBUG=true
N8N_BASIC_AUTH_ACTIVE=true
N8N_BASIC_AUTH_USER=你的用户名
N8N_BASIC_AUTH_PASSWORD=你的密码
注意: 很多教程只说了导出,但没强调安全。一旦开启导出凭证的权限,你的 n8n 实例就暴露在风险中。所以,务必开启基础认证(Basic Auth),给你的 n8n 加上一层密码保护。
配置完成后,重启 n8n 容器。现在,你的 n8n 已经具备了全量备份的能力。
第二步:搭建自动备份工作流(核心实操)
在你的 n8n 中新建一个工作流,我们将用它来定期“自我备份”。
1. 触发器:何时备份?
建议使用 Schedule Trigger 节点。设置为每周一次,或者每天凌晨流量低峰期。例如:0 2 * * * 表示每天凌晨 2 点执行。
2. 核心动作:获取全量备份 JSON
添加 HTTP Request 节点。这是整个流程的心脏。
- Method:
GET - URL:
http://localhost:5678/rest/backup(如果你是 Docker 网络,可以用容器名代替 localhost)
重点来了:在 Authentication 选项中,选择 Basic Auth,并填入我们在第一步设置的用户名和密码。
这样,n8n 才会把包含凭证的“核弹级”数据交给你。
3. 文件处理与存储
拿到数据后,你需要把它存下来。这里有两个推荐方案:
方案 A:存入云盘(推荐 Google Drive)
- 添加 Set 节点,将 HTTP Request 返回的二进制数据(Binary Data)重命名为
backup.json。 - 添加 Google Drive 节点,动作选择 Upload File。
- 在 File Name 中使用表达式,方便区分版本:
= backups/n8n_backup_{{$now.toFormat('yyyy-MM-dd_HH:mm')}}.json
方案 B:发送到邮箱(兜底方案)
- 添加 Email 节点(支持 SMTP)。
- 将二进制数据作为附件发送到你的私人邮箱。这是最原始但最有效的异地容灾手段。
第三步:避坑指南与实战细节
在 N8N大学 的实测中,我们发现几个容易导致备份失败的细节,必须提醒大家:
时区陷阱
如果你的 Docker 容器时区和宿主机不一致,{{$now}} 生成的文件名时间可能是 UTC 时间,导致你找不到文件。建议在 Docker-compose 中强制指定时区:TZ: Asia/Shanghai。
文件体积过大
如果你的 n8n 跑了几年,积累了海量日志,直接导出可能会导致内存溢出(OOM)。虽然 /rest/backup 接口通常很快,但为了保险,建议在备份工作流中,先开启 Workflow Settings -> Save Production Executions,将执行记录保存期限缩短(例如只保留最近 100 条),减轻负担。
凭证加密问题
导出的 JSON 文件中,凭证是加密存储的(除非你配置了自定义加密密钥)。这意味着,只要你在恢复 n8n 时使用相同的环境变量 N8N_ENCRYPTION_KEY,这些凭证就能无缝使用。如果你没有设置过这个 Key,n8n 会自动生成一个。强烈建议:手动设置一个 N8N_ENCRYPTION_KEY 并妥善保管,否则换了服务器,旧的备份文件里的凭证可能解不开!
如果真的发生灾难:如何恢复?
备份是为了用的。当你服务器挂掉,新装了一个 n8n 后:
- 进入新 n8n 的 Settings -> Import/Export。
- 选择 Import from URL 或者 Import from File。
- 上传你备份的那个 JSON 文件。
- 勾选 Overwrite existing data(覆盖现有数据)。
点击导入,你的工作流、凭证、标签,一切都会回来。
FAQ 常见问题答疑
Q1: 备份文件包含我的敏感数据吗?比如密码?
A: 是的。这就是为什么我们要强调开启 Basic Auth 保护备份接口。备份文件包含凭证的加密数据。所以,请像保护你的银行卡密码一样保护这个备份文件,不要上传到公开的 GitHub 仓库。
Q2: 我只想要工作流的代码,不想要凭证备份,怎么做?
A: 很简单。使用 n8n 官方推荐的 Git Sync 功能,或者直接在 UI 界面点击工作流的 Download 按钮。这种方式导出的 JSON 是不包含敏感凭证信息的,适合版本管理。
Q3: 这个方案支持 n8n Cloud 用户吗?
A: n8n Cloud 用户不需要自己折腾这个。官方自带备份和恢复功能。本文主要针对使用自托管(Self-hosted)版本的硬核玩家。
总结与资源
数据是自动化的血液。在 N8N大学,我们始终坚持:先有备份,再谈优化。这套方案虽然简单,但它能让你在深夜睡个安稳觉。
建议立刻花 15 分钟搭建这个备份流。如果你在 Docker 配置或节点设置上遇到报错,欢迎在 N8N大学 社区发帖,带上你的截图,我们一起解决。
相关资源推荐:
- n8n 官方环境变量文档:[点击查看]
- Docker-compose 一键部署模板:[N8N大学 GitHub 仓库]