Uptime Kuma
A self-hosted uptime monitor with a public status page, running from a single container.
What it is
Uptime Kuma watches the services you run and tells you — and your users — when something goes down. It polls each target on an interval you set, keeps the response history, and flips a monitor to down the moment the check fails enough times in a row.
It covers HTTP, TCP ports, ping, DNS records, keyword matching on a page body, and push monitors where your own job reports in on a schedule. When something breaks it can alert through more than ninety channels, from email and Telegram to Slack, ntfy, PagerDuty and plain webhooks.
The other half of the tool is the status page: a public, branded page that shows which services are up and the incident history behind them. That combination — private monitoring plus a customer-facing page — is normally two paid products.
Why we recommend it
It replaces two subscriptions at once
Most hosted monitors charge separately for checks and for the public status page. Uptime Kuma bundles both, and the only recurring cost is the server you already rent. At a few dollars a month per service elsewhere, that pays for itself quickly.
The interface is built for people, not for SREs
Adding a monitor is a form: name, URL, interval, notification channel. There is no config file to learn and no query language. If you can use a web dashboard, you can run this.
Alert routing is granular
Each monitor notifies a specific set of channels rather than blasting everything everywhere. A database blip can page you while a marketing site outage only posts to a chat room, which keeps alerts meaningful.
The data stays yours
Response times, incident notes and subscriber email addresses live in a local SQLite or Postgres database. Nothing about your infrastructure uptime is handed to a third party.
How it scores
These are our editorial ratings, not benchmark results. We score on how the project behaves in practice — how long it takes to get running, how good the documentation is, how responsive the maintainers are, and how well it holds up over time. The licence and star count above are read from GitHub and are a snapshot.
Pros and cons
Strengths
- A broad spread of monitor types — HTTP, TCP, ping, DNS, keyword and push
- Public status pages with custom domains and incident history
- Over ninety notification integrations, including plain webhooks
- Single container to run, with a one-click update button in the UI
- MIT licensed, so no restrictions on commercial use
Trade-offs
- Monitors run from wherever you host it — a network problem on that box makes everything look down
- Built as a single-instance tool, so there is no clustering if you need checks from several regions
- Adding hundreds of monitors to one SQLite instance will eventually strain it; Postgres is the escape hatch
How to get it
Direct download
Clicking a button downloads the file straight from the project's release — you stay on this page.
One-line install
Prefer the terminal? Copy a command and you are done.
docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1
Source and documentation
At a glance
| Category | DevOps |
|---|---|
| Licence | MIT |
| Written in | JavaScript |
| GitHub stars | 91,203 |
| Repository | louislam/uptime-kuma |
Licence and star count were read from the GitHub API when this page was generated and are a snapshot. Check the repository for the current figure and the authoritative licence text.
Other DevOps tools
We are not affiliated with Uptime Kuma or its maintainers. We list it because it is genuinely useful and genuinely free. If you plan to build a commercial product on top of it, read the licence on the repository first.