A feature-full workflow engine for enterprise & small teams.
Dagu /dah-goo/
Dagu is a self-contained workflow engine that has a lot of capabilities, yet is lightweight enough to run on small devices like Raspberry Pi or IoT devices. It allows you to orchestrate any shell commands or existing programs without modifications, making it easy to integrate into your existing workflows.
Self-contained
Single binary and runs without external dependencies.
Language Agnostic
Any shell commands, or existing program can be used without modifications.
Lightweight
Runs on-premise, or small devices like IoT devices without internet.
Workflow Engine Features
Dagu packs enterprise-grade features into a single binary.
Nested Workflows
Build complex workflows by composing smaller, reusable workflows
Distributed Execution
Scale your workflows across multiple machines seamlessly
Docker Integration
Run steps in isolated Docker containers with full control
Shell Commands
Execute any command with pipes, redirects, or scripts
Conditional Steps
Control workflow execution based on conditions and outputs
Automatic Retries
Built-in retry logic based on exit codes, with exponential backoff
Repeat Policy
Repeat steps with custom intervals and 'until' or 'while' conditions
Environment Variables
Pass and manage environment variables throughout workflows
Rich Web UI
DAG visualization, execution history, logs, and built-in editor
Authentication
Secure your workflows with Basic Auth or OIDC integration
Email Notifications
Get notified about workflow status and failures via email
Advanced Scheduler
Start, stop, retry schedules with cron expressions
Timezone Support
Schedule workflows in any timezone with CRON_TZ
Remote Command Execution
Execute commands on remote servers through SSH
Queue Management
Control concurrent workflow runs with built-in queueing system
Quickstart
Install dagu
Create a workflow
# Your first workflow
steps:
- name: hello
command: echo "Hello from dagu!"
- name: list
command: ls -la
depends: [hello]
Run it
Explore the Web UI
dagu includes a modern web interface for monitoring and managing workflows.
Architecture
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
Parallel, Distributed execution
Executor
Shell, Docker, SSH
HTTP, jq
File-Based Storage
Workflows
Simple YAML format
Logs
Structured output
Automatically cleaned-up
History
Execution history
Simple JSON format