Best self hosted uptime monitor

Uptime Kuma is the best self hosted uptime monitor for most people, Gatus is better if you want your checks in a YAML file in git, Upptime is better if you want no server at all, and Logdash cannot be self-hosted in production with one command yet.

Every self-hosted monitor has the same weak spot: it is only as up as the machine it runs on. Put it on the VPS it watches and the night that VPS dies, the monitor dies with it, silently. Whatever you pick below, run it somewhere else, a small VPS at a different provider or a Raspberry Pi at home, and alert through something that does not depend on your app.

The shortlist, in order

  • Uptime Kuma. The default for a reason. MIT, one container, a web UI anyone can use, monitors for HTTP, keywords, TCP, ping, DNS and push heartbeats, intervals down to 20 seconds, 90+ notification services and status pages. Version 2 added MariaDB next to SQLite. Weak spots: one login shared by everyone, and its status page JSON is not an officially supported API.
  • Gatus. Apache 2.0, one container, checks written as YAML conditions on status, body and response time. Covers HTTP, TCP, ICMP, DNS and TLS, plus certificate and domain expiry. There is no UI for editing checks, which is the point if you want review on every change.
  • Upptime. MIT and no server: GitHub Actions checks every 5 minutes, outages become GitHub issues, the status page is GitHub Pages. Still maintained, with a release in September 2026. The floor is 5 minutes and scheduled runs can start late.
  • Logdash self-host. AGPL-3.0, the whole stack in one public repo, and it runs locally for development. Production is not one command: you wire up Node 22, MongoDB, Redis and ClickHouse yourself, there is no packaged deployment and no upgrade path, and boot still expects Stripe and Resend keys. Use the hosted version, or one of the three above.

Uptime Kuma in one command

terminal
docker run -d --restart=always -p 3001:3001 \
  -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:2
# open http://localhost:3001 and create the admin user

Back up the uptime-kuma volume. It holds every monitor, every notification setting and the whole history, and losing it means an afternoon of clicking everything back in.

Uptime Kuma alternatives, self hosted

Beyond the shortlist: Checkmate is the newest Kuma-style app, AGPL-3.0 on Node.js and MongoDB, with Docker Compose and Helm installs. OpenStatus, also AGPL-3.0, self-hosts with Docker Compose, but its 28 check regions are hosted only; self-hosted checks run from probes you deploy. Healthchecks is the pick for cron jobs rather than URLs, and a common setup is Kuma for URLs plus Healthchecks for jobs.

When hosted beats self-hosted

Self-hosting wins on cost, data ownership and check types. It loses on one thing: the monitor is another service you keep alive, patch and back up, and its failures are silent by nature. Logdash is the hosted trade: HTTP checks every 5 minutes on the free plan, every minute on Builder and every 15 seconds on Pro, Telegram and webhook alerts and a status page, all run from outside your network.

Logdash vs Uptime Kuma

FeatureLogdashUptime Kuma
Self-hosting in productionNot one command yetOne container
Who keeps the checker runningWe do, outside your networkYou do, on a box you patch
Check typesHTTP, plus push heartbeats on ProHTTP, keyword, TCP, ping, DNS, push and more
Fastest interval15 seconds on Pro20 seconds
Notification channelsTelegram and webhook90+ services
Logs and metricsEight SDKs into the same serviceNot what Kuma is for

When Uptime Kuma is the better pick

  • Self-hosting is the requirement. Kuma does it today, Logdash does not.
  • You need keyword, TCP, ping or DNS checks. Logdash has none of them.
  • You want alerts on Discord, Slack, email or ntfy. Kuma has them built in, Logdash has Telegram and webhooks.
  1. Add the URL If you would rather skip the server, paste your health URL into Logdash. The free plan covers 5 services with a check every 5 minutes.
  2. Connect Telegram Add a Telegram channel once and attach it to the monitor. This is the channel that still works when your own server does not.
  3. Pull the plug Stop the app, or the whole VPS. On the next check the monitor flips to down and the Telegram alert arrives with the status code, sent from a machine you did not just turn off.
What is the best self hosted uptime monitor?
Uptime Kuma for most people: one container, a web UI and 90+ notification services. Gatus if you want checks in git and review on every change. Either way, run it on a different machine from the app it watches.
Where should a self hosted uptime monitor run?
Anywhere but the server it watches: a small VPS at another provider, or a machine at home. If it shares a host, a network or a provider with your app, one outage takes out both and nobody gets told.
What are the best Uptime Kuma alternatives, self hosted?
Gatus for config as code, Checkmate for a Kuma-style UI on MongoDB, OpenStatus if you can deploy its probes yourself, and Upptime if you want GitHub Actions to do the hosting.
Is Logdash a self hosted uptime monitor?
Not yet. The code is AGPL-3.0 and runs locally for development, but there is no packaged production install and the work is tracked as an open GitHub issue. Today Logdash is a hosted monitor.

Point it at your own URL and watch it for real.