Self-host Uptime Kuma
A slick self-hosted uptime monitor and status page — HTTP, TCP, ping, and more, with notifications to nearly anything. One container, zero fuss.
Key facts
Pick Uptime Kuma when you want status monitoring with a UI you will actually enjoy: HTTP(s), TCP, ping, DNS, keyword, JSON-query, push and Docker-container monitors, 90+ notification services (Gotify and ntfy included), and multiple status pages, all from one MIT-licensed container with its data in a single volume. It is the easiest install in the monitoring hub. Its ceiling is that it is one box watching your other boxes — if the box dies, so does the monitoring — so pair it with an external check or a second instance elsewhere.
Follow the Uptime Kuma deploy guide →What you need
- Any VPS with at least 512 MB of RAM
- A domain you control — most self-hosted setups need HTTPS in front of them
- Under an hour if you've used Docker before
Paid link — we earn a commission if you shop through it.
Install
Run these commands on your server:
# Uptime Kuma — single container
docker run -d --name uptime-kuma \
-p 3001:3001 -v uptime-kuma:/app/data \
louislam/uptime-kuma:1
# open http://SERVER_IP:3001What you take on
Uptime Kuma is simple to run; the one thing to get right is which major version you are on:
An alternative to
Head-to-head
Is the URL down, or is the box on fire?
Click to add a monitor, or commit it.
Is my site up? vs. did my job run? — two different failure modes.
More in Monitoring
Beszel
changedetection.io
Checkmate
Gatus
Common questions
How do I get Uptime Kuma alerts on my phone?
Uptime Kuma ships dozens of notification integrations, including the two big self-hosted push servers — Gotify and ntfy. Run one of them next to it and downtime alerts reach your phone with no paid push service in the loop; our Gotify vs ntfy comparison covers which one fits.
Can Uptime Kuma host a public status page?
Yes — status pages are built in. You can publish one or several, each with its own set of monitors, a custom domain, and incident banners you post manually during an outage.