Skip to content

Uptime Kuma vs hosted monitoring, an honest comparison

We sell hosted monitoring, so read this with that in mind. It is still true that most people asking this question should self-host.

Uptime Kuma is very good software. It is free, actively maintained, pleasant to use, and it does several things that hosted services either charge for or do not offer at all. Any comparison that opens by explaining why the free option is inadequate is a sales page, and you should close it.

Here is the version we would give a friend.

What Uptime Kuma is genuinely better at

Interval. Kuma will check every twenty seconds. Hosted services put their fastest intervals on their most expensive plans, and ours does not go below five minutes at any price. If you need to know within a minute, self-hosting is the straightforward answer.

Notification channels. Kuma ships integrations for something like ninety services — Slack, Discord, Telegram, Matrix, Gotify, ntfy, Pushover, Signal, SMS gateways, generic webhooks. If your team already lives somewhere specific, Kuma probably speaks it. Most small hosted services support two or three channels.

Check types. HTTP and keyword matching, yes, but also raw TCP ports, ICMP ping, DNS records, Docker container health, gRPC, and push endpoints for jobs that report in. That breadth is unusual.

Volume. Unlimited monitors and unlimited status pages, because there is no per-check billing when the checks run on your own machine. If you are watching sixty things, this matters a lot.

Your data stays yours. Full history, in your own database, exportable, with no retention tier. For some organisations this is not a preference but a requirement.

It is free. Not free-with-an-upsell. Free.

What it costs, honestly

The software is free. Running it is not.

  • A server. Three to five euros a month for something small, and it needs to be a different server from the one you are watching, or the whole exercise is decorative. See why the monitor must not share fate with the app.
  • Updates. It is a web application with a database, exposed to the internet, holding your notification credentials. It needs patching on the same cadence as anything else in that description.
  • Backups. Kuma keeps its data in a database on that box. If you have not tested restoring it, you do not have backups, you have files.
  • TLS for its own hostname. Another certificate, another renewal, another thing that can quietly lapse.
  • Being on call for your own alerting. When it stops working, nothing tells you. That is the part people underestimate, and it is the reason this comparison is not simply “free versus paid”.

None of this is hard. It is perhaps an hour to set up and a few hours a year to keep. The honest question is not whether you can do it, but whether you want that hour to be yours, repeatedly, forever.

The arithmetic

Run it out over a year, for a small setup:

Self-hosted Kuma Hosted
Software Free €86–348 a year
Server ~€48 a year Included
Your time, setup 1–3 hours 10 minutes
Your time, upkeep 2–5 hours a year None
Survives your app’s server dying Only if it is elsewhere Yes
Fastest interval 20 seconds 5 minutes
Notification channels ~90 Email and Telegram

If your hourly rate is anything above nominal, the money is a rounding error in both directions. This decision is not really about cost. It is about which kind of work you want to own.

How to actually choose

Self-host if you already run a box that is separate from what you want to watch; you need intervals under a minute; you need a channel we do not support; you are watching dozens of things; or you enjoy this and would rather have the control. All five are good reasons and we will not argue with any of them.

Use something hosted if everything you run lives on one machine and adding a second one to watch it feels absurd; you have been burned by maintaining infrastructure whose failure is silent; you are one person and the marginal hour matters more than the marginal euro; or you want the thing that notices to be outside your blast radius by construction rather than by discipline.

Neither, if you are watching one hobby project and would not act on the alert at three in the morning anyway. A cron job that curls the URL and emails you is a legitimate answer, and it is free.

The arrangement we would actually run

For most people reading this, the answer is not one or the other.

Run Uptime Kuma. Put it on a box at a different provider from your application. Use it for the deep work — the twenty-second intervals, the TCP checks, the Discord notifications, the sixty monitors. Then put one external check on Kuma’s own health endpoint, from somewhere that is not your infrastructure at all.

That one check is cheap, it closes the only real hole in a self-hosted setup, and it costs a fraction of what monitoring everything externally would. If it happens to be ours, good. If it is a free tier somewhere else, that is fine too. The important property is that it is not on your machines.

The failure that hurts is not the one your monitoring catches. It is the one where your monitoring was part of the outage and nobody found out until a customer wrote in.