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

At a glance

n8n vs. Dagu

编写方式
Dagu

在 git 中编辑和评审的受版本控制 YAML。

Typical alternative

在浏览器 UI 中配置的可视化节点画布。

运行时
Dagu

单一二进制配本地文件——无需数据库。

Typical alternative

自托管需要一个长期运行的服务外加一个数据库。

更适合谁
Dagu

代码优先的脚本、运维任务、流水线和 AI Agent 工作流。

Typical alternative

无代码的 SaaS 应用集成与可视化自动化。

In depth

Where each tool fits

01

当你想要的是代码化自动化,而不是画布

可视化节点编辑器很适合手动把各种 SaaS 应用连在一起。代码优先的团队通常想要相反的东西:自动化存在于 git 中,在评审时干净地 diff,并运行他们已经拥有的脚本和二进制。

  • 在 YAML 中定义每一个步骤,并纳入版本控制。
  • 在普通的 pull request 中评审自动化变更。
  • 运行团队已经在用的命令、脚本和容器。
02

自托管负担更小

自托管一个基于节点的自动化平台,通常意味着既要运行一个服务,又要运行一个数据库,还要让两者都保持健康。Dagu 是一个由本地文件支撑的单一二进制,运维面因此保持很小。

  • 单一二进制配本地文件存储——无需外部数据库或消息代理。
  • 先从单机开始;需要时再迁移到队列或分布式 workers。
  • 让升级和备份保持简单。
03

为脚本、运维和 AI Agent 而生

Dagu 面向开发与运维自动化——定时任务、流水线、runbook 和 Agent 任务——而不是无代码的 SaaS 胶水。

  • 提供 shell、Docker、HTTP、SSH、子工作流和 Agent 步骤的执行器。
  • 默认带依赖、重试、超时、日志和执行历史。
  • 在工作流步骤中运行 Claude、Codex 或其他外部 Agent CLI。

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 步骤自行连接。

Next step

Start with one workflow.

Install Dagu, move one fragile script or agent task into YAML, and decide from a real run history.