Backup workflows to git repository on Gitea

该工作流实现了将自动化流程定期备份到指定的Gitea Git仓库,确保工作流的安全存储和版本管理。通过每45分钟自动触发,自动检测工作流变更,仅在内容发生变化时更新仓库,避免重复提交。内置的Base64编码处理增强了数据传输的安全性,同时灵活的条件判断确保新增或更新文件的准确性,适用于需要私有化部署和高效管理自动化流程的用户。

流程图
Backup workflows to git repository on Gitea 工作流程图

工作流名称

Backup workflows to git repository on Gitea

主要功能和亮点

该工作流实现了将所有n8n工作流自动备份到指定的Gitea Git仓库中,支持定时触发,自动检测工作流变更,仅在内容发生变化时更新仓库文件,避免重复提交。工作流内置了Base64编码处理,确保数据安全传输与存储,并且通过灵活的条件判断实现新增或更新文件的自动区分。

解决的核心问题

  • 自动化备份n8n工作流,防止工作流丢失
  • 及时同步工作流变更到Git仓库,保障版本管理
  • 减少重复提交,优化Git仓库更新效率
  • 集成Gitea API,实现无缝对接私有Git仓库

应用场景

  • 企业或个人利用n8n进行自动化流程管理,需定期备份工作流脚本以防止意外丢失
  • 通过Git仓库进行工作流版本控制与协作开发
  • 需要私有化部署Git服务器(如Gitea),并将自动化流程数据同步到私有仓库的用户
  • 希望定时自动备份和版本化n8n工作流的运维团队

主要流程步骤

  1. 定时触发(Schedule Trigger):每45分钟自动启动备份流程。
  2. 设置全局变量(Globals):配置Gitea仓库地址、仓库名和拥有者信息。
  3. 获取所有n8n工作流(n8n节点):调用n8n API获取当前所有工作流数据。
  4. 拆分处理工作流(ForEach):批量逐个处理每个工作流。
  5. 检查工作流文件是否存在于Gitea仓库(GetGitea + Exist判断节点)。
  6. 根据文件是否存在分支处理
    • 文件存在则准备更新内容(SetDataUpdateNode + Base64EncodeUpdate),调用PUT接口更新文件。
    • 文件不存在则准备创建内容(SetDataCreateNode + Base64EncodeCreate),调用POST接口新建文件。
  7. 变更检测(Changed节点):比较最新内容与仓库内容,只有变更时才提交。
  8. 提交变更到Gitea(PutGitea / PostGitea节点):通过Gitea API完成文件的更新或创建。
  9. 自动循环处理所有工作流文件,完成备份同步。

涉及的系统或服务

  • n8n:作为数据源,获取所有自动化流程定义。
  • Gitea:私有Git服务,存储所有工作流的备份文件。
  • HTTP请求节点:调用Gitea API完成文件操作。
  • Python代码节点:对工作流JSON数据进行Base64编码处理。
  • 定时触发器:实现自动定时执行。

适用人群或使用价值

  • n8n自动化平台用户,需要保障工作流安全与版本管理的运维人员和开发者。
  • 企业技术团队,希望将自动化流程纳入标准的代码仓库管理体系。
  • 私有Git服务用户,需要将自动化流程备份到内部Git服务器,满足安全合规需求。
  • 自动化运维工程师,通过该工作流构建自动备份机制,提升运维效率和稳定性。

该工作流极大简化了n8n工作流的备份操作,保障自动化流程的安全存储和版本追踪,是构建高效、可靠自动化运维环境的重要利器。只需配置Gitea相关信息并激活,即可享受自动化备份的便捷体验。