Home / Uptime Kuma

Uptime Kuma: the watcher that tells me when something goes down

Uptime Kuma is the self-hosted monitoring tool I use to know whether my websites, my APIs and the rest of the workshop are up. If something stops responding, my phone tells me before a client notices.

34 monitors · checks every 60 s · alerts via ntfy, Telegram, WhatsApp and KumaPulse · running on my own server

What Uptime Kuma is

It is a self-hosted uptime monitor: it runs on your own server, keeps its data on your own disk and doesn't depend on any third-party company. From its web UI you decide what to monitor, how often, and who gets the alert when something fails. It goes up with Docker in a couple of minutes.

What it can monitor
Websites and APIs over HTTP/HTTPS (including keyword and JSON query checks), TCP ports, ping, DNS records, websockets, game servers and Docker containers.
How often
From 20 seconds. In my case everything runs at 60 seconds: plenty to react before the client notices, and it doesn't fill the disk with records.
How it alerts
90+ notification services: Telegram, ntfy, email (SMTP), Slack, Discord, WhatsApp, webhooks and many more. You can chain several channels per monitor.
What else it brings
Heartbeat and latency history, per-monitor charts, TLS certificate expiry warnings, maintenance windows, public status pages and 2FA on login.
Licence and price
Free software (MIT licence), created by Louis Lam. The software costs nothing; the only thing you pay for is the server you run it on. The code lives at github.com/louislam/uptime-kuma.

Who it makes sense for

And who it doesn't, which is just as important to say.

You run a homelab
Several services in containers, a reverse proxy, a VPN. With this you hear about an outage before you SSH in to look.
You make a living from your sites and apps
If your site stops responding at 3 in the morning, the alert reaches your phone within the same minute. The difference between "I found out" and "the client told me".
You don't want another paid SaaS
Data, alerts and status pages stay on your own infrastructure. No per-monitor fees and no client data travelling to a third party.
You need to justify the service
History, latency and uptime to show a client that the platform stayed up all month.
Who it is not for
If you don't want to administer anything, a paid external monitor or the one bundled with your hosting is more convenient. Uptime Kuma is for people who already have a server (or want one).

How I use it

My specific setup, with numbers, so you can see what it means in practice.

How much I monitor
More than 30 monitors: this website itself, client sites, APIs, email and several corners of the workshop. If franastor.com goes down, I find out before you notice.
What kind of checks
32 HTTP/HTTPS checks, one over SMTP (email responds) and one Docker container. All organised with my own tags: Infra, Servicios, VPN, Fail2Ban, SMTP and Xufas.
How often
Every 60 seconds. When a service doesn't respond, the alert carries the monitor name and what happened, not just a vague "something is wrong".
How it reaches me
Four channels in parallel: self-hosted ntfy, Telegram, WhatsApp and KumaPulse Push. If one of them misses it, the other three make noise.
Where it runs
In Docker on the same server it monitors, behind the reverse proxy with HTTPS and closed to login-only access. Its database goes into the daily backup, so the history survives a disaster.
In my pocket
To check status without opening a browser I use KumaPulse, the app I built for exactly this. I also set it up for clients who want fast phone alerts.

The blind spot worth knowing about

If the server running Uptime Kuma goes down entirely, the watcher goes down with it. You cover that with a check from the outside: another server, an external monitor or a "no heartbeat" alert. It's the one real limitation of self-hosted monitoring, and it's worth deciding before you set it up, not after. When I set this up, I leave it covered.

Frequently asked questions

How much does Uptime Kuma cost?

The software is free (MIT licence) and costs nothing. The only thing you pay for is the server you run it on: a small VPS or any machine at home.

Do I need to know how to code to set it up?

No. It installs with Docker in a couple of minutes and everything else is configured from its own web UI: adding monitors, choosing the interval and connecting notifications.

Is it only for monitoring websites?

No. Besides HTTP and HTTPS (including keyword and JSON query checks) it monitors TCP ports, ping, DNS records, game servers, push services and Docker containers.

Does it alert my phone when something goes down?

Yes. It supports 90+ notification services: Telegram, ntfy, email (SMTP), Slack, Discord, WhatsApp, webhooks and many more. With the KumaPulse app you can also check status from your phone.

Can it replace a paid monitoring service?

For most cases, yes: history, latency, alerts and status pages. The one blind spot of self-hosted monitoring is that if the server it runs on goes down, the watcher goes down too; you cover that with an external check.

Can I show the status to my clients?

Yes. It has public status pages, on your own domain if you want, showing the status of whichever services you decide to publish.

Want this running on your project?

I install Uptime Kuma, leave it watching what matters, set up the phone alerts and show you how to read it. Maintenance included if you prefer.

Request a quote