你已经在运行的运维自动化所需的自托管控制面。

Dagu 把脚本、cron 任务、容器、HTTP 任务、SQL 作业和审批整合成一套可见的工作流系统,而不强迫你重写。

查看示例
试用在线演示
登录凭据demouser / demouser
dagu server --port 8080
安装 dagu 命令
$curl -fsSL https://raw.githubusercontent.com/dagucloud/dagu/main/scripts/installer.sh | bash

引导式安装器会帮你把 Dagu 加入 PATH、配置后台服务并创建首个管理员,让你可以开始运行工作流。

非侵入

无需 SDK。业务逻辑保持不变。

轻量

单一二进制文件,无需数据库或消息代理

命令原生

运行脚本、容器、SSH 任务和 HTTP 调用

支持离线部署

完全离线运行,无需外部服务

workflow.yaml
# Existing scripts, now production workflows
name: "daily-ops"
schedule: "0 2 * * *"

steps:
- name: "backup-db"
command: "./scripts/backup-postgres.sh"
output: BACKUP_PATH

- name: "upload-backup"
command: "aws s3 cp $${BACKUP_PATH} s3://backups/"
depends: backup-db

- name: "notify"
type: http
depends: upload-backup

常用工作流步骤类型

为什么运维团队选择 Dagu

默认自托管。现有自动化保持不变。Dagu 在其外围补上监督与运维控制。

运行轻量

Dagu 是单一二进制文件,不强制依赖数据库、消息代理或控制平面栈。先从一台机器开始,只有在需要时再添加 worker。

为混合型运维自动化而建

用可读 YAML 运行调度、依赖、重试、队列、参数、密钥、通知、SSH 步骤、容器步骤、SQL 作业和分布式执行。

无需重写即可迁移

你的脚本、服务、SQL、容器和运维命令保持原样。Dagu 在它们外部编排,而不是把框架或 SDK 强行塞进代码库。

默认提供运维可见性

每次运行都有状态、日志、历史、耗时和可视化工作流视图,让 job 不再消失在 crontab 和服务器日志里。

部署模型

Dagu 可以本地运行、自托管、使用 managed server,或将云端运维与 private execution 结合为 hybrid 模式。

从一台机器开始,扩展到自托管、托管或 Hybrid。

本地

单服务器

在一台机器上运行 `dagu start-all`,并使用本地文件保存状态。不需要 database、broker 或 platform stack。

自托管

你的基础设施

将 Dagu server、workers、secrets、logs 和 execution 保留在自己的环境中。

Dagu Cloud

全托管服务器

使用由 Dagu Cloud 在 GKE isolated gVisor instance 中运营的 dedicated Dagu server。

混合

托管服务器,私有执行

让 Dagu Cloud 运营 server,同时 private workers 运行 Docker、private-network 或 data-local steps。

Hybrid execution

Managed Dagu server
通过 mTLS 连接的 private worker
Docker、private APIs、secrets 和 data-local work

Hybrid 让 Dagu server 保持托管,同时需要你的 network、runtime 或 data 的 execution 仍由你控制。

替换碎片化自动化前要检查什么

团队会先看吞吐量、队列、恢复、治理、API 访问和 worker 执行,再把分散的作业收拢进一个控制面。

每天数千

单节点吞吐

根据硬件、工作流形态、步骤耗时和队列配置,在一台机器上每天运行数千次工作流。

队列 + workers

安全扩展执行

使用队列、并发限制和分布式 workers 控制负载,并把 jobs 分散到多台机器。

Catchup + retry

恢复计划任务

Cron 调度、catchup、durable automatic retries、timeouts、reruns、事件处理脚本和邮件通知让失败更可控。

用户 + API

按团队方式运维

通过用户管理、RBAC、workspaces、审批、密钥、REST API、CLI 和 webhooks 运维共享的生产工作流。

用例

这里整理的是一类很实际的运维工作:它们往往从脚本、cron 任务和临时任务开始,随后需要一套人们可以运行和追踪的工作流系统。

运维用例

Dagu 适合这样一些团队:他们的运维工作已经分散在命令、脚本、容器、SQL 作业、HTTP 任务和远程服务器之间,之后需要一种更清晰的方式来调度、重试、观测和管理这些工作。

保留现有命令,再在外围加上可见性、重试、审批和运行历史。

01

示例 / 隐藏的 cron 作业

Cron 与旧脚本管理

将现有 shell 脚本、Python 脚本、HTTP 调用和定时任务接入 Dagu,无需重写。

隐藏的 cron 体系会变成可见、可重试的工作流,并带有日志、依赖、历史和运维控制。

工作流既足够具体,工程师看得懂;也足够可见,运维人员用得上。

02

可维护的日常任务

ETL 与数据运维

运行 PostgreSQL 或 SQLite 查询、S3 传输、jq 转换、验证步骤和可复用子工作流。

日常数据工作流保持声明式、可观测,并且在某一步失败时容易重试。

03

分布式媒体处理

媒体转换

在 worker 上运行 ffmpeg、缩略图提取、音频归一化、图像处理和其他重计算任务。

转换任务可以分布式执行,同时状态、历史、日志和产物保存在同一个持久化层中,便于监控、调试和重试。

04

定时远程任务

基础设施与服务器自动化

编排 SSH 备份、清理任务、部署脚本、补丁窗口、前置检查和生命周期钩子。

远程操作获得调度、重试、通知和逐步日志,恢复时不需要操作员每次都 SSH 到服务器。

05

容器原生流水线

容器与 Kubernetes 工作流

组合每一步都能运行 Docker 镜像、Kubernetes Job、shell 命令或验证步骤的工作流。

基于镜像的任务可以路由到合适的 worker,而不需要围绕容器自建控制平面。

06

非工程师也能操作

客户支持自动化

通过简单的 Web UI 运行诊断、账号修复、数据检查和带审批的支持操作。

非工程师可以运行已审核的工作流,工程师仍能追踪命令、日志和结果。

07

小设备,可见运行

IoT 与边缘工作流

在小型设备上运行传感器采集、本地清理、离线同步、健康检查和设备维护任务。

单二进制和文件状态适合边缘设备,同时仍能通过 Web UI 提供可见性。

08

可选的 AI 辅助运维

AI 智能体工作流

当模型辅助确实有用时,可运行 AI 编码智能体、智能体 CLI、由智能体编写的 YAML 工作流、日志分析、修复步骤和经人工审核的自动化。

AI 仍然只是工作流里的次要能力,而不会变成驱动一切的主体。

共同点

纯 YAML任意命令Docker 和 Kubernetes JobsSSH调度重试日志通知

常见工作流模式

把脚本、定时 job、服务器任务和受控自动化放进一个工作流引擎。

Health Check
SSH Backup
Notify

脚本工作流

把现有 shell 脚本、Docker 命令、SSH 任务和 HTTP 调用变成可靠的工作流。

  • 1保持现有脚本和命令不变
  • 2在一个 DAG 中运行容器、SSH 任务和 HTTP 步骤
  • 3用依赖关系替代脆弱的命令链
  • 4用清晰日志和历史重试失败步骤
workflow.yaml
steps:
  - name: health-check
    command: curl -sf http://app:8080/health

  - name: backup
    type: ssh
    config:
      host: db-server
      user: admin
    command: pg_dump mydb > /backups/daily.sql

  - name: notify
    type: http
    config:
      url: "https://hooks.slack.com/..."
      method: POST
    body: '{"text": "Backup complete"}'

面向 Slack 和 Telegram 的 Workflow Operator

面向 Slack 和 Telegram 的持续上下文 AI 操作员。调试失败、批准操作,并在不离开对话的情况下处理事故。

DaguDagu
消息...

面向真实运维的工作流引擎能力

Dagu 专注于围绕现有工作的生产层:调度、依赖、重试、日志、队列和受控执行。

快速入门指南

先用引导式安装器安装 Dagu,再继续查看完整安装指南或快速开始文档。

1

安装 dagu 命令

脚本安装器是最推荐的方式。Homebrew、npm 和 Docker 也可用,但它们只提供二进制或容器安装。

Mac/Linux 终端
$curl -fsSL https://raw.githubusercontent.com/dagucloud/dagu/main/scripts/installer.sh | bash
✓ 引导式安装器已就绪
2

下一步

引导式安装器可以帮你完成首次启动配置。

# 安装器可以完成的内容
把 Dagu 加入 PATH
配置后台服务
创建并验证首个管理员

项目社区

讨论用法、报告问题并关注开发进展。