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.

Quick Start
$ npm i -g dagu
$ dagu start-all
✓ Server started at http://localhost:8080

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.

Quickstart

1

Install dagu

npm
$ npm i -g dagu
✓ Installed dagu@latest
2

Create a workflow

hello.yaml
# Your first workflow
steps:
  - name: hello
    command: echo "Hello from dagu!"
  - name: list
    command: ls -la
    depends: [hello]
3

Run it

Terminal
$ dagu start hello.yaml
⏳ hello running...
✓ hello finished
Hello from dagu!
⏳ list running...
✓ list finished
total 16
-rw-r--r-- 1 user staff 123 Jul 30 10:15 hello.yaml
drwxr-xr-x 3 user staff 96 Jul 30 10:14 .dagu
✓ 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

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

Join the community to develop Dagu