Welcome to Dagu
Dagu Mascot - Squirrel Pilot

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.

Terminal
# Get started instantly
$curl -L https://...installer.sh | sh
✓ dagu installed successfully
$dagustart-all
✓ Web UI ready at http://localhost:8080
Key Strengths

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.

workflow.yaml

Compose anything in YAML

Local scripts, remote commands, containers. All unified in simple, readable workflows.

workflow.yaml
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.py

Air-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.

Quickstart Guide
1

Install Dagu

Binary
$curl -L https://raw.githubusercontent.com/dagu-org/dagu/main/scripts/installer.sh | bash
✓ Installed to /usr/local/bin/dagu
2

Create a workflow

hello.yaml
$cat > hello.yaml << EOF
# Your first workflow
steps:
- echo "Hello from dagu!"
- ls -la
EOF
✓ hello.yaml created
3

Run it

Terminal
$dagu start hello.yaml
Running hello...
✓ hello finished
Hello from dagu!
Running list...
✓ list finished
-rw-r--r-- hello.yaml
✓ Workflow completed successfully
4

Explore the Web UI

Dagu includes a modern web interface for monitoring and managing workflows.

Terminal
$dagu start-all
✓ Server started at http://localhost:8080
Web UI: Real-time monitoring, visual DAG view, execution history
System Architecture

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

Community

Join our community!

Share ideas, request features, showcase use cases, report bugs, or get help from the community