One web UI per server
Each server shows only its own runs. Checking last night's failures on five servers means opening five web UIs.
Dagu Cloud
Connect every self-hosted Dagu server to Dagu Cloud. See their health and runs in one console, alert your team where it works, retry, stop, and approve runs without signing in to each server, and let ChatGPT or Claude operate them through one MCP endpoint. Workflows keep running only on your servers, which connect out; nothing opens inbound.
Free for one server. Team and Pro cover every licensed server and add acting on runs, MCP, and your team. Monitoring needs Dagu v2.19.1 or later (v2.19.2 on the free plan); acting on runs and MCP need v2.22 or later.
Your servers
Workflows run here
Alerts by email, chat, PagerDuty, or webhook when something breaks, and again when it recovers
Each Dagu server is complete on its own, with its own scheduler, run history, and web UI. With several servers, that also means several places to check, and several places to sign in to when a run needs a hand.
Each server shows only its own runs. Checking last night's failures on five servers means opening five web UIs.
Nothing collects the failures of all servers in one place, so nobody sees the whole picture.
A stopped scheduler or a server that went quiet raises no error. Scheduled workflows just stop running until someone notices.
Failure emails need mail and notification settings on every server, kept in step by hand.
Retrying a failed run or approving a waiting step means finding the right server, opening its web UI, and signing in there.
Letting ChatGPT or Claude work on a server behind a firewall means opening a port or handing out an API key.
The Monitoring section of Dagu Console has an Overview, Servers, Runs, Alerts, Notifications, and Insights page, plus a page for each server, workflow, and alert. Every member of the workspace can view them.
Servers reporting, failures today (UTC), runs in progress, and the success rate over the last 7 UTC days. Needs attention lists what waits for a person, open alerts, and today's failures, each with its action in the row.
Each connected server with its status, Dagu version, last report, failures today (UTC), success rate over 7 UTC days, and open alerts. On Team and Pro, also each server's CPU, memory, and disk use.
A page per server. Overview shows its health (Dagu version, OS and architecture, process start, last report, last check-in), the services from the last report, open alerts, and its latest failures. Runs lists its runs. Workflows shows each workflow's finished runs per UTC day over 14 days, with runs, failures, success rate, and average and longest duration. On Team and Pro, Overview also charts the machine's CPU, memory, and disk use over the last 24 hours.
Runs in progress come first, then finished runs, newest first. Each run has a permalink to its attempts.
Filter by server, workflow, status (failed, succeeded, running, waiting, or queued), and range: the last hour, 24 hours, 7 days, 14 days, or, on Team and Pro, 30 days.
Runs, failures, and success rate against the previous period, runs per day, and every workflow with its p95 duration and how it changed. Today's runs count as they finish.
A page per workflow with its open alert, runs per day, success rate, and p50 and p95 duration over 7, 30, or 90 days, plus its recent runs and the steps it failed at. Owners can mute it here.
Dagu Cloud reaches each server over a connection the server opens, so members and MCP clients can act on runs without an inbound port, VPN, or API key.
Read a failed step's log, retry or stop a run, and approve or reject a step that waits for a person, right from the Overview, the run, or its alert.
Connect ChatGPT, Claude, or another MCP client once. It reads runs and logs, starts and retries workflows, and edits DAGs across the workspace's servers, as each member's role allows.
Each server's administrator turns remote access on and sets the highest role it allows. Every call is signed for that request alone and recorded in the server's own audit log. Dagu Cloud keeps no log of calls.
On Team and Pro, or in a trial. Requires Dagu v2.22 or later.
How remote access worksAn alert belongs to one workflow or one server. It opens once, counts what follows, and resolves by itself when the problem ends.
A failed run opens the workflow's alert. Later failures add to its count without another message, and the next successful run resolves it.
No report for 10 minutes, or 25 on free monitoring, opens the server's alert, so a dead host or a stopped process gets noticed. Its next report resolves it.
When the disk that holds a server's data directory is 90% full, an alert opens before runs, logs, and queues stop. It resolves once the disk is below 85%.
Memory over 90% for 10 minutes opens an alert, and CPU too once turned on. The percent and minutes are set for the workspace or for one server.
A run still going after twice its workflow's usual time, and at least 10 minutes more, opens an alert before anyone wonders why a report is late. It resolves when the run ends.
A queue whose next run waits 10 minutes while it has room, or while no worker takes it, opens an alert. A queue that is simply full waits its turn.
Workflow alerts need the Health and run status level. Emails come from no-reply@dagu.sh.
Alert emails go to owners and admins, and to the members and verified outside addresses you add, each with one-click unsubscribe. On Team and Pro, alerts also go to up to 10 destinations: Slack, Microsoft Teams, Google Chat, Discord, PagerDuty, and signed webhooks.
Adding a destination sends a test, and each one keeps a log of every post and its answer. A failed post is retried with backoff for up to a day, and a destination that refuses alerts three times in a row stops and says so.
Every Monday at 8:00 in the workspace's time zone, each owner gets an email that sums up the week before. One link stops it.
Your servers send reports to Dagu Console. Dagu Console never connects to them and never runs workflows.
Reports are HTTPS requests from the server to console.dagu.sh. No inbound port is opened, and nothing connects into the server.
If Dagu Console cannot be reached, workflows run as usual. The server retries and sends the runs it missed once the console is back.
Monitoring is off by default and chosen per server by its administrator. Connecting or upgrading a server sends nothing beyond its license check-in.
Health only sends what the server runs. Health and run status adds the status of its runs, and is needed for workflow alerts. A third level also sends failed steps' error messages, so alerts show why a run failed.
Dagu version, OS and architecture, and when the server process started
Number of running schedulers and registered coordinators
On a paid plan or trial: CPU, memory, load averages, and the data directory's disk use
Each finished top-level run: DAG name, run ID, attempt ID, status, trigger, and when it was queued, started, and finished
Names of a run's failed steps, up to 50
Runs queued, running, or waiting, up to 200 per report
Logs, outputs, parameters, environment, step commands, DAG YAML, and secret values
Every report also carries the server's license ID, server ID, and heartbeat secret, as its license check-in does. DAG and step names are sent only with run status; choose Health only if you consider them sensitive. Failed steps' error messages are sent only at a third level, Health, run status, and error messages: the end of each error, with declared secrets masked.
Requires Dagu v2.19.1 or later (v2.19.2 or later for free monitoring), and the server must reach https://console.dagu.sh over HTTPS.
In Dagu, open Plan & features and select Connect to Dagu Console, run dagu license activate, or start the server with a server key. Servers with offline licenses do not report.
Select Turn on in the Monitoring section of Plan & features, then choose Health and run status or Health only. The choice applies at once, without a restart.
For servers managed as code, set the level in the configuration file, or set DAGU_CLOUD_REPORT=runs:
cloud:
report: runs # off, health, or runs
The server reports every 60 seconds, and within about 5 seconds when a run fails or the runs in progress change. It appears under Monitoring in Dagu Console.
What each plan covers, how long Dagu Cloud keeps what servers report, and how much it stores a day.
Free for one server per workspace, with lower limits: a report every 5 minutes, 100 stored runs a day, 7 days of run history, and email alerts to owners and admins. Team and Pro cover every licensed server, with 30 days of run history, chat, PagerDuty, and webhook destinations, reminders, running-too-long alerts, and the weekly summary.
Compare plansFree monitoring shows the last 7 days of finished runs, and a trial the last 14. A server that sends no report for 30 days is removed from monitoring, with its daily totals and alerts.
Each workspace stores up to 500 finished runs per UTC day, or 100 on free monitoring. Runs past the limit still count toward the daily totals and still open and resolve alerts, but they are not added to the run list. Storing resumes at 00:00 UTC.
Need more? Contact usRead the setup guide, or open Dagu Console and connect your first server. Free for one server; start a trial for Team or Pro.