Skip to content

Self-host Uptime Kuma

updated Aug 2026prices checked · Jul 2026Install verified on Ubuntu 26.04 · Aug 2026 · how we test
We earn commissions when you shop through the links below. Full disclosure →

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

CategoryMonitoring
LicenseMIT
StackJavaScript, Node.js
Min RAM512 MB
Official imageyes
Measured idle RAM104 MB
Difficulty
Our recommendation

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
Where to host itaffiliate disclosure
Hetzner Cloudrun it on
From $23.59/mo · 2 vCPU / 4 GB / 80 GB · EU + US
Get Hetzner Cloud (opens in new tab)
Kamaterafree trial
From $4/mo · 1 vCPU / 1 GB / 20 GB · US + EU + Asia
Start free on Kamatera → (opens in new tab)
DigitalOceanalso works on
From $6/mo · 1 vCPU / 1 GB / 25 GB · US + EU + Asia
Deploy on DigitalOcean → (opens in new tab)

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:3001

What you take on

Uptime Kuma is simple to run; the one thing to get right is which major version you are on:

non-negotiableThe 2.x line is current (2.5.5 at the time of writing) and both the README and the install wiki now use louislam/uptime-kuma:2. Our snippet pins :1 — that is the 1.x line. Moving 1.x → 2.x is a real migration: change the tag, let the automatic database migration run (it "could take some time"), and the wiki's instruction is to back up the data directory first and never interrupt the migration.
non-negotiable2.0 dropped features 1.x users may rely on: the built-in backup/restore, install.sh, the Alpine-based image and Node.js 14, 16 and 18 support (the minimum is now 20.4) are all listed as breaking changes. Back up by copying the data volume instead.
non-negotiable2.0 added MariaDB support, but the migration wiki says a direct SQLite → MariaDB conversion "CANNOT be done directly" and is unsupported — choose your database when you install, not later.
non-negotiableNon-Docker installs need Node.js >= 20.4, Git and pm2; the Docker image is the far simpler path. Reverse-proxy setups need the wiki's extra configuration.

An alternative to

Head-to-head

More in Monitoring

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.

We use analytics cookies (Google Analytics, PostHog) to see which guides are useful. No ad networks, no cross-site tracking. See our privacy policy.