mrkeyoor.com_
Fri 11 Sept 18:03 UTC
Automationevaluationupdated 11 Sept 2026

dagu review

Dagu is a self-hosted workflow engine that adds schedules, dependencies, retries, logs, and human approval steps around scripts and containers you already have. It aims to replace tangled cron jobs without making teams adopt a large orchestration platform or rewrite working automation in a framework.

trackingstars / 7d
Verdict

Our build succeeded in 370 seconds, but the full test run still had 2 failures and hit the 900-second cap. Dagu is an appealing upgrade from cron when existing scripts should remain ordinary scripts and infrastructure overhead must stay low. Pilot it on noncritical workflows first, inspect the unresolved test results in your own environment, and validate file-backed state and worker behavior under your real concurrency before trusting it with core operations.

We ran it

Install✓ · 116s1066 packages
Build✓ · 370s
Tests✗ timed out · 900s36 passed · 2 failed of 38 (go test)
Repo3237 files~745,443 lines of source · 39.4 MB · 12 CI workflows · Dockerfile

Answers from our run

Does dagu build from source?

Dependencies installed in 116 seconds (1066 packages), and the build succeeded in 370 seconds. We cloned commit 55b5c71 into a clean Debian container with 3 CPUs and no project-specific setup.

Do dagu's tests pass?

Not all of them: 36 of 38 passed and 2 failed when we ran the project's own test command (go test). Some failures need services or credentials a bare container does not have.

Who should not use dagu?

Teams that need a deeply established distributed-workflow programming model rather than YAML around existing commands

What are the alternatives to dagu?

Apache Airflow, Temporal, Prefect. Our build succeeded in 370 seconds, but the full test run still had 2 failures and hit the 900-second cap.

Setup4/5Install and build passed; the 900-second test run did not finish
Docs4/5Clear install paths, examples, API links, and Docker caveats
Community4/53,915 stars and same-day code and release activity
Maturity4/5Broad operational features, tempered by our incomplete test run

Who it’s for

Operations teams turning cron jobs and runbooks into visible workflows
Small platform teams that want orchestration without a separate database or broker
Organizations running automation on-premises, at the edge, or in air-gapped environments
Teams that need shell, Docker, Kubernetes, and SSH steps in one YAML-defined system

Who it’s NOT for

Teams that need a deeply established distributed-workflow programming model rather than YAML around existing commands
Organizations unwilling to operate and secure a self-hosted control plane
Buyers that require a clean full-suite test result before adoption, because our 900-second run did not finish
Users who cannot accept GPL-3.0 licensing for their intended distribution model

Setup reality

In our sandbox, installation succeeded in 116 seconds and installed 1,066 packages, then the build succeeded in 370 seconds. The full Go test command reached the 900-second cap, reporting 36 passed and 2 failed out of 38; the visible log tail showed successful packages, including the file-backed wiki package at 120.078 seconds, but did not expose the two failure causes. That makes basic setup credible, while source-level verification is heavier and less conclusive than the README's single-binary pitch may suggest.

Dagu makes orchestration a smaller operational commitment

Dagu's central idea is unusually practical: keep the scripts and containers that already do the work, then describe their order and operating rules in YAML. Version v2.16.4 packages the scheduler, execution engine, history, and Web UI into a single self-hosted binary. That is a sharp answer to the point where cron becomes unmanageable but a larger platform still feels disproportionate. Linux, macOS, and Windows support also makes it plausible for mixed environments, while the GPL-3.0 license keeps the code open but deserves review if you plan to redistribute modified software.

The design differs meaningfully from code-first orchestrators. Your shell commands do not import a framework, and removing 1 YAML file leaves the underlying script runnable on its own. Dagu can invoke shell commands, Docker containers, Kubernetes Jobs, and remote SSH commands, so it can wrap automation spread across several execution environments. This separation is its strongest argument: the orchestration layer describes dependencies, scheduling, retries, and human steps without becoming part of the business logic it coordinates. Teams inheriting a directory full of runbooks may find that boundary easier to understand and reverse.

What happened when we ran it

Our run used commit 55b5c71 in an unprivileged Debian container with 3 CPUs and 8 GB of RAM, and no secrets. Installation succeeded in 116 seconds, bringing in 1,066 packages. The build then succeeded in 370 seconds. That is solid evidence that the repository can be assembled from a clean environment, although it is not the same experience as downloading the advertised prebuilt single binary. The checkout itself was substantial: 3,237 files, about 745,443 lines of source, and 39.4 MB on disk. Source contributors should expect a sizable Go project, not a tiny cron wrapper.

Testing was the rough part. The Go test command reached our 900-second ceiling and reported 36 passes plus 2 failures out of 38. The supplied tail contained successful package results rather than the actual failing assertions, so it would be dishonest to name a cause. It did show some file-backed packages taking noticeable time: the wiki package completed in 120.078 seconds and the service registry package in 43.105 seconds. The correct conclusion is limited but useful: our build worked, while our full verification run neither finished cleanly nor gave enough visible failure detail to diagnose the 2 failures.

Its strengths are concrete, not cosmetic

Dagu covers the operational gaps that make cron painful. Schedules support cron syntax, time zones, overlap policies, and catch-up windows. Workflows can run reusable sub-DAGs, parallel branches, queues, concurrency controls, and resource limits. A single place holds retries, per-step logs, notifications, webhooks, run history, and human tasks. Those are not novelty features; they address missed runs, overlapping jobs, invisible failures, and manual checkpoints. The README also gives 5 distinct operational settings, including ETL, media conversion, infrastructure automation, customer support, and edge workloads, which suggests a general command orchestrator rather than a data-only scheduler.

Deployment flexibility is another real advantage. There are documented routes for direct installers, Homebrew, npm, Docker, and Kubernetes through Helm. The Docker section explicitly warns that container steps need additional Docker access and that mounting the socket gives workflows control of the host daemon. That warning matters because a workflow runner is effectively a privileged automation surface. Dagu also says it can scale from 1 node to a fleet of workers, with queues and limits controlling placement and concurrency. We did not benchmark that claim, so capacity should be proven with your workload rather than inferred from the architecture description.

The Web UI and MCP server widen the blast radius

The built-in Web UI is valuable because operators can inspect graphs, logs, history, and human tasks without reading state files. A live demo, CLI documentation, API definition, and workflow examples lower the evaluation cost. The built-in MCP server goes further: it can inspect workflows and runs, maintain wiki pages, apply changes, and control executions. That is powerful, but write and run controls should be treated as production privileges, not a chat convenience. Put authentication, network boundaries, audit review, and least-privilege credentials around both surfaces before allowing 1 operator tool or assistant to trigger consequential workflows.

File-backed simplicity has limits you should test

Avoiding PostgreSQL and a message broker reduces setup work, but local-file state also creates questions for backup, shared storage, failover, and concurrent workers. The Helm instructions call for ReadWriteMany storage, a clue that multi-node operation needs deliberate storage design. Before migration, test restart recovery, duplicate-run prevention, queue behavior, and restoration from backup under realistic failure conditions. There are 71 open issues, which is not alarming for a project of this scope, but the count alone says nothing about response times or severity. The repository has 12 CI workflow files, yet our capped suite still did not complete cleanly.

It fits between cron and a full workflow platform

Project activity looks current: the latest release is v2.16.4 from September 11, 2026, and the last push was also September 11, alongside 3,915 stars. That combination is better evidence of health than a release date alone, though 1 snapshot cannot establish a long-term release cadence or tell us how quickly maintainers resolve the 71 open issues. In a real stack, Dagu fits best behind an existing access boundary, beside your scripts, container runtime, Kubernetes cluster, or SSH targets. Choose it when operational visibility matters and platform sprawl does not; choose a code-first durable engine when workflows are application logic rather than external automation.

Alternatives

ProjectWhat it isPick it when
Apache Airflow gh↗A Python-centered platform for scheduled data pipelines with a large integration ecosystem.pick this instead when your team already works in Python and needs Airflow's mature provider ecosystem.
Temporal gh↗A durable execution platform built around application code and worker SDKs.pick this instead when workflow correctness must live in a typed programming model and long-running durable execution is central.
Prefect gh↗A Python workflow orchestration system with deployments, scheduling, and observability.pick this instead when Python-native authoring matters more than keeping existing scripts independent of the orchestrator.
Kestra gh↗A declarative orchestration platform with a broad plugin-based task catalog.pick this instead when you want a larger integration catalog and accept a heavier platform footprint.

What people are saying

  1. [github-trending] dagucloud/dagu

Sources

  1. Dagu GitHub repository
  2. Dagu homepage
  3. Dagu documentation

More automation reviews

helm · awesome-n8n-templates · gogcli · ars0n-framework-v2 · douyin-downloader · fastlane · the whole board →