
A batteries-included workflow engine that doesn't get in your way.
|
Define workflows in simple YAML, execute them anywhere with a single binary, compose complex pipelines from reusable sub-workflows, and distribute tasks across workers. All this without requiring databases, message brokers, or code changes.
Powerful
Enterprise-ready with advanced scheduling, retries, and distributed execution.
Portable
Single binary runs anywhere - Linux, macOS, Windows. No dependencies.
Local-First
No vendor lock-in. Works offline. Air-gapped environment ready.
Compose anything in YAML
Local scripts, remote commands, containers. All unified in simple, readable workflows.
schedule: "0 0 * * *" # Runs at 00:00 everyday
steps:
- name: local script
command: python data_extract.py
- name: remote command
executor: ssh
command: backup_database.sh
- name: docker container
executor: docker
command: python:3.11 python process.pyAir-Gapped Ready
Works offline and in isolated environments. No database, no external services required.
Universal Execution
Run anything: local scripts, remote SSH commands, Docker containers, HTTP calls.
Instant Setup
Download, run, done. Start orchestrating workflows in minutes with sensible defaults.
Production-Ready Features
Everything you need in a single binary. No external dependencies required.
Install Dagu
Create a workflow
Run it
Explore the Web UI
Dagu includes a modern web interface for monitoring and managing workflows.
Architecture Overview
A simple, layered architecture with no external dependencies
Interfaces
CLI
dagu start workflow.yaml
Web UI
Real-time monitoring
REST API
Full programmatic control
Core Components
Scheduler
Cron expressions
Timezone aware
Agent, Worker
Separated process
Distributed execution
Executor
Shell, Docker, SSH
HTTP, jq
File-Based Storage
Workflows
Simple YAML format
Logs
Structured output
Auto cleaned-up
History
Execution history
JSON format
Join our community!
Share ideas, request features, showcase use cases, report bugs, or get help from the community