Dagu
Lightweight workflow orchestrator and cron replacement written in Go. Define task pipelines as YAML DAGs, run them on a schedule or on demand, and monitor execution through a web UI. No database required
Quick Start
docker run -d -p 8080:8080 -v dagu_data:/home/dagu/.config/dagu ghcr.io/dagucloud/dagu:latest Overview
Dagu is a workflow orchestrator built around one idea: DAGs defined in YAML, with no database and no external dependencies. You write a YAML file that describes which commands to run, in what order, with what dependencies between them. Dagu handles the scheduling, execution, retry logic, and failure notifications. A single Go binary, a directory for YAML files, and a web server for the UI — that is the entire stack.
The YAML format makes workflows readable and version-controllable. A pipeline that fetches data, transforms it, and loads it somewhere is expressed as a list of steps with depends relationships between them. Dagu evaluates the dependency graph and runs steps in the correct order, running independent steps in parallel where the graph allows it. When a step fails, you configure whether to retry, continue, or halt the pipeline.
The web UI provides the operational visibility that raw cron lacks. Every DAG has a run history, step-level log output, a visual dependency graph, and controls for manual retries. There is no need to SSH into a server and dig through log files to understand why a pipeline failed at 3am.
The practical niche is the space between cron and Airflow. For teams running shell scripts, Docker containers, or Python files on a schedule with dependencies between steps, Dagu provides DAG orchestration without requiring a Python environment, PostgreSQL, Redis, and a Celery worker pool. The entire setup takes minutes rather than an afternoon.
The constraint is scale. Dagu runs on a single machine. Teams that need distributed execution across worker nodes, Python-native operators for cloud services, or the deep observability of Airflow’s enterprise features will outgrow it. For most self-hosted automation use cases, they will not reach that ceiling.
Dagu: Pros & Cons
| Pros (The Wins) | Cons (The Friction) |
|---|---|
| No database needed: Single Go binary; state stored in local files. | GPL-3.0 licence: Proprietary embedding or SaaS use needs review. |
| YAML DAGs: Readable, version-controllable pipeline definitions. | Single-machine only: No distributed execution; no built-in horizontal scale. |
| Web UI included: Run history, live logs, and retry controls built in. | Less mature than Airflow: Fewer operators and enterprise integrations. |
| Lightweight vs Airflow: DAG orchestration without Python, Redis, or PostgreSQL. | Smaller community: Fewer examples and extensions than major tools. |
Use Cases
Specific ways to use Dagu for your workflow.
Deployment Strategy
Recommended ways to host Dagu in your own environment.