跳到正文
发现
Dagu:自托管工作流编排引擎
命令行工具开发者工具

Dagu:自托管工作流编排引擎

单二进制、无需数据库的自托管工作流编排引擎,用 YAML 把已有脚本、容器和 SSH 命令编排成带调度与重试的 DAG。

admin
发布于 2026-10-28
浏览
4
访问
0
下载
0
版本
v2.24.0
平台
Windows、macOS、Linux
该作品还没有经过官方审核。访问演示、下载或复制命令前,请自行确认来源可信。

详细介绍

项目简介

Dagu 是一个面向「主业不是做编排」的团队的开源工作流引擎。它把工作流的结构当作配置而不是代码:顺序、依赖、重试、调度、人工任务都写在一个 YAML 文件里,放在你已有的脚本旁边;真正干活的仍然是你的 shell 命令、Docker 容器、Kubernetes Job 或 SSH 远程命令。

它是一个单二进制程序,内置 Web UI,不需要外部数据库或消息队列,可运行在 Linux、macOS、Windows 上,从单机扩展到多 worker。脚本本身不 import 任何框架,删掉 YAML 仍可照常运行;保留 YAML,每次运行就多了依赖图、重试、分步日志、历史记录和 Web 界面。定位上可作为 Airflow / cron / 作业调度器的替代方案。

主要功能

  • 声明式 YAML 定义 DAG:用 YAML 描述步骤、依赖与执行顺序,工作流与业务逻辑分离。
  • 复用现有执行方式:直接运行现有 shell 命令、Docker 容器、Kubernetes Job,以及通过 SSH 执行的远程命令,无需改造脚本。
  • 组合与并发:可复用的 Sub-DAG,配合并发控制并行执行任务。
  • 调度能力:cron 语法、时区、重叠策略与补跑窗口。
  • 运行保障:日志、运行历史、重试、通知、Webhook 触发集中在一处。
  • 内置 MCP server:用于查看工作流与运行、维护 Wiki 页面、应用变更和控制运行。
  • 部署形态灵活:单机运行、按次创建的临时 worker,或多机分布式 worker;同份 YAML 在任意形态下都能跑。
  • Dagu Console 可选监控:集中查看各服务器的运行与趋势,工作流失败或服务器失联时发邮件;仅出站 HTTPS、仅上报元数据。
  • 自带 Web UI 与 API:安装后即可在浏览器中管理 DAG、查看运行详情与步骤日志,并提供 CLI 和 HTTP API。

安装与使用

macOS / Linux 脚本安装:

curl -fsSL https://raw.githubusercontent.com/dagucloud/dagu/main/scripts/installer.sh | bash

Homebrew:

brew install dagu

npm:

npm install -g --ignore-scripts=false @dagucloud/dagu

Windows(PowerShell):

irm https://raw.githubusercontent.com/dagucloud/dagu/main/scripts/installer.ps1 | iex

Docker:

docker run --rm -v ~/.dagu:/var/lib/dagu -p 8080:8080 ghcr.io/dagucloud/dagu:latest dagu start-all

Kubernetes(Helm):

helm repo add dagu https://dagucloud.github.io/dagu
helm repo update
helm install dagu dagu/dagu --set persistence.storageClass=<your-rwx-storage-class>

脚本安装方式会启动引导向导,可将 Dagu 加入 PATH、配置为后台服务并创建初始管理员账号;Homebrew、npm、Docker、Helm 安装不带向导。

创建并运行一个工作流,在空目录下新建 hello.yaml:

steps:
  - id: hello
    run: echo "hello from Dagu"

执行:

dagu start hello.yaml

启动服务器,在同一目录下执行:

dagu start-all --dags .

然后打开 http://localhost:8080 ,首次启动时创建管理员账号(若安装向导已创建则跳过)。若安装脚本已把 Dagu 设为后台服务,它已经在 8080 端口运行,直接在 UI 中添加工作流,或把 hello.yaml 放到安装程序提示的 DAGs 目录。

还可以直接体验在线 Demo:https://dagu-demo-f5e33d0e.dagu.sh (用户名/密码:demouser)。

注意事项

  • 使用 Docker 方式运行时,该命令不会把宿主机的 Docker daemon 暴露给 Dagu;工作流中若使用 container: 或 action: docker.run,需要按文档完成额外的容器步骤 Docker 配置。
  • 挂载 Docker socket 等于授予工作流控制宿主机 daemon 的权限,请谨慎评估。
  • Helm 安装时需把 <your-rwx-storage-class> 替换为支持 ReadWriteMany 的 StorageClass,更多参数见 charts/dagu/README.md。
  • Dagu Console 监控为可选功能,只通过出站 HTTPS 上报元数据,日志、输出与密钥仍留在各自服务器上。
  • 项目使用 GPL-3.0 许可证。

本作品整理自 GitHub 开源项目 dagucloud/dagu,原作者 @dagucloud,许可证 GPL-3.0。中文介绍由 AI 根据项目 README 整理,以原仓库为准。

更新记录

  1. v2.24.0当前版本

    foreach 缺少命名空间的字段会报错;记录并展示每个步骤的模型用量(含缓存 token、推理与成本);浏览器写操作新增写入门控与提交前确认,并记录已批准的写入;模型步骤可用提示读取文件;监视文件夹中新到的文件各触发一次运行;另有多项 Windows 测试与界面修复。

评论