n8n 替代方案
面向开发者的代码优先 n8n 替代方案。
Dagu 是一个自托管的 n8n 替代方案,面向那些更愿意把自动化定义为受版本控制的 YAML、而不是在可视化画布上连线的团队——调度、重试、日志和 Web UI 都由一个二进制提供。
name: nightly-ops
schedule: "0 2 * * *"
steps:
- id: extract
run: python scripts/extract.py
- id: transform
run: ./bin/transform
retry_policy:
limit: 3
depends: [extract]
- id: notify
run: ./scripts/slack-success.sh
depends: [transform]工作流即受版本控制的 YAML,而非可视化画布
单一自托管二进制——无需运维数据库或 Node 运行时
运行 shell、Docker、HTTP、SSH 和 AI Agent 步骤
内置调度、重试、日志和 Web UI
当你想要的是代码化自动化,而不是画布
可视化节点编辑器很适合手动把各种 SaaS 应用连在一起。代码优先的团队通常想要相反的东西:自动化存在于 git 中,在评审时干净地 diff,并运行他们已经拥有的脚本和二进制。
- 在 YAML 中定义每一个步骤,并纳入版本控制。
- 在普通的 pull request 中评审自动化变更。
- 运行团队已经在用的命令、脚本和容器。
自托管负担更小
自托管一个基于节点的自动化平台,通常意味着既要运行一个服务,又要运行一个数据库,还要让两者都保持健康。Dagu 是一个由本地文件支撑的单一二进制,运维面因此保持很小。
- 单一二进制配本地文件存储——无需外部数据库或消息代理。
- 先从单机开始;需要时再迁移到队列或分布式 workers。
- 让升级和备份保持简单。
为脚本、运维和 AI Agent 而生
Dagu 面向开发与运维自动化——定时任务、流水线、runbook 和 Agent 任务——而不是无代码的 SaaS 胶水。
- 提供 shell、Docker、HTTP、SSH、子工作流和 Agent 步骤的执行器。
- 默认带依赖、重试、超时、日志和执行历史。
- 在工作流步骤中运行 Claude、Codex 或其他 Agent CLI。
n8n vs. Dagu
FAQ
Practical questions before adopting Dagu
Dagu 是 n8n 的直接替代品吗?
不是。n8n 是一个可视化、基于节点的工具,用于无需写代码地连接各种 SaaS 应用。Dagu 是一个代码优先的编排器:当你想要受版本控制的 YAML,以及一个面向脚本、容器、cron 和 Agent 的自托管单一二进制时,它很合适,但它不是拖拽式构建器,也没有 SaaS 连接器市场。
Dagu 有可视化编辑器吗?
Dagu 提供一个用于运行、检查和监控工作流的 Web UI,但工作流是用 YAML 编写的,而不是在画布上绘制。这个 UI 用于操作工作流,而不是构建它们。
Dagu 能像 n8n 那样调用 API 和 webhook 吗?
可以。Dagu 能发起 HTTP 请求、按调度运行,并通过命令触发步骤,因此 API 调用和 webhook 风格的流程都是可行的——但它不像 n8n 那样捆绑数百个预建 SaaS 集成。这些需要你用 HTTP 和 CLI 步骤自行连接。
Start with one workflow.
Install Dagu, move one fragile script or agent task into YAML, and decide from a real run history.