Uptime Kuma
FreeKnow the moment your site goes down, without paying for monitoring
Self-hosted uptime monitoring. It checks websites, APIs, ports, containers and certificate expiry on a schedule, and pushes alerts through more than ninety channels including Telegram, email and webhooks when something breaks. It also generates public status pages. Clean interface, one container to deploy.
Why we picked it
Free tiers of commercial monitoring services typically allow a handful of checks, a five-minute minimum interval, and charge extra for alert channels. Uptime Kuma turns the whole thing into "run one container": 90,166 stars, MIT-licensed, with an interface nicer than many paid products.
It monitors more than the name suggests: HTTP(S) sites and APIs (with keyword and status-code assertions), TCP ports, ping, DNS resolution, database connections, Docker container health — and SSL certificate expiry, which has saved a lot of people, since expired certificates cause an absurd share of outages.
Over ninety notification channels are supported — Telegram, email, Slack, Discord, generic webhooks and many regional services — and configuring one usually means pasting a URL or token.
Public status pages are the other genuinely useful feature: group several checks onto a page anyone can view, so users check for themselves instead of asking whether you are down. Personal blogs, open-source projects and small teams all get value from it.
Deployment is light — the release bundle is around 7 MB, the official Docker image starts with one command, and data goes into SQLite with no other dependencies. A small always-on machine is plenty.
The one thing to think through is where the monitor lives. If it runs on the same machine as the services it watches, a total failure of that machine takes the monitor down too, and nobody tells you. For anything that genuinely matters, put Uptime Kuma on a different machine — ideally on a different network.