PassNAT LogoPassNAT

轻量级工作流引擎Dagu无代码部署,NAS一键启动内网穿透远程管理任务

作者

小编

发布时间

Curving abstract shapes with an orange and blue gradient

项目介绍

Dagu 是一个轻量级的工作流引擎,具有现代化的 Web 用户界面。它采用简洁的 YAML 声明式格式定义工作流,支持定时执行、Shell 命令、SSH 远程执行和 Docker 容器运行。内置错误通知和日志记录功能,开箱即用。

相比于 Airflow 等复杂的工作流调度系统,Dagu 无需编写代码,无需依赖数据库或云服务,只需一个二进制文件即可运行。它特别适合那些有大量 Cron 任务、Shell 脚本的遗留系统,能够帮助您清晰地可视化和管理任务间的依赖关系,通过直观的 Web UI 查看执行状态、日志记录,轻松重新运行或停止任务。

项目地址: 点我跳转

部署安装

若需要在公网环境访问 Dagu,建议配置内网穿透服务。可前往 帕斯内网穿透 注册账号,并参考 全平台上手攻略 快速配置,让您随时随地都能管理工作流任务。

最快速的部署方式 - Docker 单命令启动:

打开飞牛 NAS 或其他 NAS 设备,进入容器管理界面。

点击 本地镜像 - 添加镜像 - 从 URL 添加,在镜像地址栏填入:

1ghcr.io/dagu-org/dagu:latest

等待镜像下载完成后,点击启动按钮启动容器。

勾选 开机自动启动 后进入下一步。

端口设置:

将容器端口 8080 映射到主机端口。如果您的 NAS 上 8080 端口已被占用,可修改主机端口号(如改为 8888),但容器内端口必须保持为 8080

存储位置设置:

Dagu 需要持久化存储工作流定义和执行日志。请在 NAS 上创建一个文件夹(如 /mnt/data/dagu),将其映射到容器内的 /var/lib/dagu 目录。这样您的工作流配置和历史记录才能被保留。

环境变量设置:

以下是可选的环境变量配置,根据需求填写:

环境变量 | 默认值 | 说明 | 是否必须

DAGU_HOST | 127.0.0.1 | Web UI 服务器地址 | 否

DAGU_PORT | 8080 | Web UI 服务器端口 | 否

DAGU_TZ | - | 服务器时区(如 Asia/Shanghai) | 否

DAGU_DEBUG | false | 调试模式开关 | 否

DAGU_LOG_FORMAT | text | 日志格式(text 或 json) | 否

DAGU_AUTH_BASIC_USERNAME | - | 基础认证用户名 | 否

DAGU_AUTH_BASIC_PASSWORD | - | 基础认证密码 | 否

大多数情况下无需设置环境变量,使用默认配置即可正常运行。如需启用 Web UI 访问认证,才需要配置用户名和密码。

其他配置项保持默认,直接点击启动即可。

容器启动成功后,打开浏览器访问 http://NAS_IP:8080(若修改了映射端口则使用对应端口号),即可看到 Dagu 的 Web 界面。

开始使用:

在 Web UI 中,您可以创建新的工作流配置文件(YAML 格式),定义任务步骤和执行计划。例如创建一个简单的定时任务:

1schedule: '0 0 * * *' # 每天午夜执行
2
3steps:
4 - echo 'Hello from Dagu!'
5 - echo '这是第二个任务步骤'

保存配置后,Dagu 会自动按照 Cron 表达式进行定时调度。您可以在 Dashboard 中实时查看任务执行状态、查阅详细日志,需要时可手动触发或停止任务运行。

到此,Dagu 工作流引擎的部署就完成了。

本篇教程结束