Every server you run, on one line.

Dagda is self-hosted monitoring for Ubuntu and Debian servers running nginx, PHP and MySQL. One hub on your own infrastructure watches the whole fleet: load, sites, certificates, attacks, queues, backups. It tells you before your customers do.

web-01 web-02 web-03 api-01 api-02 db-01 db-02 queue-01 mail-01 cache-01 edge-01 backup-01
Above the line: healthy, stroke height is CPU load Below: needs attention Through it: act now

Select a server to read it. This fleet refreshes every 2 seconds, the rate Dagda uses while someone is watching.

What it watches

Dagda looks at what is actually installed. It reads your nginx sites, finds your Laravel apps, and checks for MySQL, PHP-FPM, UFW and fail2ban. Anything that isn't there stays out of the way: no empty panels, no false alarms.

Performance

CPU per core, memory, pressure, load and network, live or across 30 days. The processes using the most CPU and memory right now.

Sites and certificates

Every site in your nginx config, found automatically. Requests, errors and response times per site, and TLS certificates counted down to expiry.

Security

SSH login attempts, fail2ban bans, firewall posture and listening sockets. Processes that start dialling out to somewhere new, and ports used by miners and backdoors.

File changes

Critical system files checked against a baseline every two minutes. Web roots scanned for changed code, new PHP in upload folders and webshell markers.

Services and jobs

systemd units, PHP-FPM pools and Supervisor. Laravel queues and failed jobs, cron entries and timers with the result of their last run.

Database

MySQL connections, running queries, slow queries and the statements costing the most time, per database.

Disk and updates

Where the space is going, how fast it grows and when the disk fills. Pending OS updates, reboots needed and services running old libraries.

Domains and email

Registration expiry for every domain, and the MX, SPF, DKIM and DMARC records that decide whether your mail lands. Mail queue and bounces.

Application errors

Laravel, PHP-FPM and nginx error logs, grouped so a repeating error is one line with a count instead of a thousand.

Backups

When the last backup ran, whether it worked, and a warning when it's gone stale. Start a run from the dashboard.

Alerts that say what's wrong

Each alert names the server, the thing, and the number. Thresholds are yours to set. Dagda sends a message when something goes wrong and again when it recovers, not every minute in between.

Send alerts to email, ntfy, Pushover or Telegram. Add a heartbeat check, and an outside service tells you if the hub itself goes quiet.

  1. edge-01Not reporting for 11 minutes
  2. db-02/var 91% full, fills in 6 days
  3. web-02shop.example.com TLS certificate expires in 9 days
  4. api-01php-fpm8.3 pool www hit max_children 14 times
  5. queue-0138 failed jobs in the last hour
  6. db-01Recovered: 12 slow queries a minute, back under 2

One hub, as many servers as you run

The hub is the dashboard. Every other server runs a small agent that reports to it over outbound HTTPS, so you open no new ports. If the connection drops, the agent keeps its data and catches up when it's back, up to seven days later.

  1. Install the hub

    On a fresh Ubuntu or Debian server. Setup asks for your domain, sets up nginx and HTTPS, and prints a sign-in link with a QR code.

    sudo dagda setup
  2. Sign in

    Open the link, scan the QR code with your authenticator app, and save your recovery codes. You're the first admin.

  3. Add a server

    Name it in the dashboard and copy the command it gives you. Run it on the new server. It appears in your fleet within a minute.

    curl -fsSL https://hub.example.com/install | sudo sh -s -- --join 7Kq…

Runs on your servers. Reports to no one else.

Your hub, your database, your logs. Dagda doesn't phone home, and your monitoring data never passes through us.

  • Two-factor for everyone

    Every account signs in with an authenticator app, with recovery codes as a backup. Secrets are encrypted at rest.

  • Invite, don't share passwords

    Admins send single-use invite links. Viewers see every dashboard; only admins change settings, users and servers.

  • A record of who did what

    Sign-ins, invites, role changes and settings changes go into an audit log kept for a year.

  • Agents hold their own key

    Each server's key can only report for that server. Remove a server and its key stops working at once.

Early access

Dagda is being built now and already watches production servers. We're opening it to a small group of hosting teams and agencies first.

Request early access
Runs on
Ubuntu 22.04, 24.04 and 26.04. Debian 12. amd64 and arm64.
Works best with
nginx, PHP-FPM, Laravel, MySQL, UFW and fail2ban. Each is optional.
Trial
14 days, up to 3 servers, no card.
License
A signed license file, checked offline. If it lapses, monitoring and alerts keep running.