4.0k stars · GPL-3.0 · v2.16.4 (2026-09-11) · Track this in Scout
A workflow scheduler shipped as one file that keeps its state in ordinary files, so there is no database, no message queue and no worker to install.
▶Repo detailsthe review · specs · pros & cons · install
What it is
Dagu is a workflow engine written in Go and shipped as a single file you copy onto a server. You describe each job in a short text file, and each step can be a shell command, a Docker container (a way to run a program inside its own sealed box, so it cannot break anything else on your server), a Kubernetes job, or a command run on another machine over SSH.What it is good for. Anybody running a handful of scheduled tasks on one server. The usual answer to this problem is Airflow or Temporal, and both of those want a database, a message queue and a worker process before they will do anything at all. Dagu keeps its state in ordinary files, so there is nothing extra to install, nothing extra to back up and nothing extra to go wrong at 3am. It also has retries and step-by-step dependencies, which a plain timed command does not. For you: it is the natural partner to Healthchecks (Ed. 15 #8). Healthchecks tells you a job did not run. Dagu is the thing that runs it, and the place you look when it failed.
- One file, no database, no queue. You can install it and remove it in minutes.
- The web page shows logs for every run, so you stop reading server log files by hand.
- Steps can depend on other steps, so a report only runs after the data it needs has arrived.
- You write the job files by hand in YAML, a plain text format that cares about indentation. There is no drag-and-drop screen, so this is harder than it sounds for a non-programmer.
- The licence is GPL-3.0, and single sign-on, permissions and audit logs sit behind a paid tier. The free part is complete for one person, but the line between free and paid can move.
- The project changed its owner name from
dagu-orgtodagucloud. Old guides, old Docker image names and old links all point at the previous name.
- jhuckaby/Cronicle
The same job of running scheduled commands across servers with a web screen, but built on Node.js and organised around single jobs rather than a chain of steps.
Track this in Scout - mcuadros/ofelia
The same replacement for timed commands, but only for commands inside Docker containers, and with no web page and no chain of steps.
Track this in Scout - kestra-io/kestra
The same idea of writing workflows as text files, but much heavier: it wants Java, PostgreSQL and Elasticsearch, and it is aimed at data teams rather than one person on one server.
Track this in Scout
# On the server, as a single file curl -fsSL https://raw.githubusercontent.com/dagucloud/dagu/main/scripts/installer.sh | bash dagu start-all # web page on http://localhost:8080 # Or with Docker docker run --rm -v ~/.dagu:/var/lib/dagu -p 8080:8080 \ ghcr.io/dagucloud/dagu:latest dagu start-all




