Uptime Kuma
A self hosted status monitor that tells you when a service goes down
Uptime Kuma checks your websites, ports, containers and DNS records on a schedule and alerts you when something stops answering. It is MIT licensed, runs as one container, and supports a long list of notification channels including Telegram.
Best for when
- you run several services and want to know when one stops
- you want alerts on Telegram or Discord rather than email
- you want a simple public status page
Watch out for
- running it on the same machine it monitors means it goes silent when that machine is down
- the admin interface should stay private, since it reveals what you run and where
- large numbers of monitors with short intervals make the database grow quickly
Install
Run with Docker
docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:2Know before your users do
Once you run more than two services, you stop noticing when one of them dies. Uptime Kuma checks each one every minute or so over HTTP, TCP, ping, DNS or the Docker socket, keeps a history of response times, and can publish a status page.
Notifications are where it earns its place: Telegram, Discord, email, ntfy and many more. A common setup is Docker Compose bound to 127.0.0.1 and shared with your devices through Tailscale serve, with a Telegram alert whenever one of your services stops answering.
What it costs to run
It is light: one container, a small database and a modest amount of RAM. The data folder holds your monitors and history, and it is the one thing to back up.
The catch is where it lives. A monitor on the same machine as your services cannot tell you that the machine itself is down. For that you need a second check from outside, even a free external ping, so treat a single instance as a monitor for services rather than for the server.