TopGit
GitHub Repo Review

Uptime Kuma: Self-Hosted Uptime Monitoring Tool

louislam/uptime-kuma
UTopGit review image for louislam/uptime-kuma
Review by Topgit.dev for louislam/uptime-kuma, with GitHub repository stats and README context.
Quick verdict

Uptime Kuma is a self-hosted monitoring app you run on your own server to watch sites, APIs, and Docker containers, then get alerted when one goes down. It checks every 20 seconds by default and notifies through 90+ services, including Telegram, Discord, and SMTP email. Reach for it if you run infrastructure already and want one dashboard for uptime and alerts, no SaaS fee; skip it if you'd rather not host the monitoring tool too.

Stars
★ 91.6k
Forks
⑂ 8.4k
Language
JavaScript
License
MIT
Topic
Backend
Updated
Sep 2026
Homepage
GitHub

Understanding Uptime Kuma

Uptime Kuma is a self-hosted monitoring tool built with Vue 3 and Socket.IO that runs as a single web app on your own server. It checks endpoints over HTTP(s), TCP, DNS, ping, WebSocket, and Docker container status, then shows results on a status page you control. The interface updates live over WebSocket rather than polling a REST API, a design choice the README calls out directly as one of the project's original goals.

The Motivation Behind Uptime Kuma

Louis Lam built Uptime Kuma because he wanted a self-hosted stand-in for Uptime Robot and couldn't find one that held up. The closest option he found, Statping, had stopped being maintained and wasn't stable enough to rely on, according to the motivation section of the README. Uptime Kuma also doubled as a personal project: learning Vue 3 and vite.js, trying out Bootstrap 5, and building a WebSocket-driven single-page app instead of a typical REST API. Those choices still show up in how Uptime Kuma behaves today, not just in its origin story.

Key Monitoring Features

  • Monitors HTTP(s), TCP, HTTP(s) Keyword, HTTP(s) JSON Query, WebSocket, Ping, DNS records, Push, Steam Game Server, and Docker container targets, per the README's feature list.
  • Checks run on a 20-second interval by default.
  • Notification integrations include Telegram, Discord, Gotify, Slack, Pushover, and SMTP email, among 90+ services documented in the source tree.
  • Supports multiple independent status pages, and a status page can be mapped to its own domain.
  • Built-in ping charts and TLS certificate info for each monitor.
  • Proxy support for checks that need to route through one.
  • Two-factor authentication (2FA) on the admin login.
  • Ships with multi-language support maintained through a Weblate-based translation process, per the README.
How this repository's GitHub stars have grown over time. Source: star-history.com.View the star history

Installation Options

The README documents three install paths. Docker Compose is the one it leads with: create a folder, download the project's compose.yaml, and run `docker compose up -d`; Uptime Kuma then listens on port 3001 on all network interfaces. A plain `docker run` command works too, using the `louislam/uptime-kuma:2` image with a named volume for data, and you can bind it to 127.0.0.1 instead of exposing it externally. NFS-backed volumes don't work with either Docker path. The README calls NFS unsupported and says to map to a local directory instead. For a non-Docker install, the README lists Node.js 20.4 or newer, Git, and pm2 as requirements, then has you `git clone` the repo, run `npm run setup`, and start the server either directly with `node server/server.js` or, as the recommended path, under pm2 with `pm2 start server/server.js --name uptime-kuma`. Supported platforms are major Linux distros (Debian, Ubuntu, Fedora, Arch) and Windows 10 x64 or Windows Server 2012 R2 x64 and up; FreeBSD, OpenBSD, NetBSD, Replit, and Heroku are explicitly listed as unsupported. Reverse-proxy setup and update steps live in a separate wiki page the README links to, not inline.

Typical Monitoring Scenarios

  • Homelab or small-team operators who want an uptime dashboard for self-hosted services without sending data to a third-party SaaS.
  • Watching a Docker Compose stack's container health alongside its HTTP endpoints on the same dashboard.
  • Running a status page for a project or service, mapped to its own subdomain.
  • Catching TLS certificate expiry early using the built-in certificate info per monitor.
  • Monitoring a Steam Game Server or another non-web service where a plain ping or TCP check is what you actually need.

Strengths

  • Notification coverage includes Telegram, Discord, Gotify, Slack, Pushover, and SMTP email, among 90+ services listed in the source tree.
  • Monitor types go past simple HTTP pings: DNS records, Docker container status, Steam Game Server, and push-based heartbeats are all supported.
  • Docker Compose install is three commands and it's listening on port 3001.
  • MIT license, so there's no ambiguity about using it commercially or modifying it.
  • 2FA and per-monitor TLS certificate info are built in rather than left to a plugin.

Known Limitations

  • The README doesn't state a minimum RAM or CPU footprint, or give scaling guidance for monitoring hundreds of endpoints, so capacity planning is on you.
  • NFS-backed volumes are explicitly unsupported for the Docker install, which rules out a common shared-storage setup.
  • Non-Docker installs are limited to major Linux distros and Windows; the README lists FreeBSD, OpenBSD, NetBSD, Replit, and Heroku as unsupported.
  • It's self-hosted only. The README doesn't describe a hosted or managed option, so you run and maintain the server it lives on.
  • The README mentions a backlog of pull requests the maintainer doesn't have time to test alone, which is worth weighing before you count on a fast merge.
  • Non-Docker installs need Node.js 20.4 or newer plus pm2 to run persistently, which is more setup than a single binary.

Alternatives to Uptime Kuma

Uptime Robot — the hosted monitoring service the Uptime Kuma README says its author was trying to replace with something self-hosted.Statping — the closest self-hosted option the maintainer found before building Uptime Kuma; the README calls it unstable and no longer maintained.Gatus — another self-hosted status and monitoring tool, configured through a YAML file rather than Uptime Kuma's web UI.Healthchecks.io — a cron and heartbeat-style monitoring service, useful when what you need to watch is scheduled jobs rather than endpoints.Zabbix — a longer-established open-source monitoring platform if you need infrastructure metrics beyond simple uptime checks.

Frequently Asked Questions

What types of services can Uptime Kuma monitor?

Uptime Kuma can monitor HTTP(s) endpoints, TCP ports, HTTP(s) with keyword or JSON-query checks, WebSocket connections, ping, DNS records, push-based heartbeats, Steam Game Servers, and Docker container status, per its feature list.

How can I install Uptime Kuma on my server?

Uptime Kuma installs through Docker Compose, a single `docker run` command using the louislam/uptime-kuma image, or a non-Docker setup with Node.js 20.4+, Git, and pm2 to keep it running in the background.

What notification options are available in Uptime Kuma?

Uptime Kuma sends alerts through Telegram, Discord, Gotify, Slack, Pushover, and SMTP email, among more than 90 notification services documented in its source tree.

Is Uptime Kuma free for commercial use?

Uptime Kuma is released under the MIT license, which permits commercial use, modification, and redistribution without a license fee.

Can Uptime Kuma be run without Docker?

Uptime Kuma can run without Docker: the README documents a manual setup with Node.js 20.4+, Git, and pm2, using `npm run setup` and then starting the server directly or under pm2.

Does Uptime Kuma support multiple languages?

Uptime Kuma ships with multi-language support, and the README links to a Weblate-based process for translating it into more languages.

Who should try it — and who should skip

Try Uptime Kuma if you already run a home server or a handful of VPS instances and want one dashboard that pings you the moment an HTTP endpoint, a Docker container, or a DNS record stops behaving, without paying a monthly fee for it. Skip it if you don't want another service to patch and back up yourself, or if what you actually need is deep infrastructure metrics rather than up-down and certificate checks; that's more a job for something like Zabbix or a Prometheus-and-Grafana stack.

Related repositories

Source & attribution

Facts and quotes sourced from the louislam/uptime-kuma GitHub repository and its README.

GitHub data · last synced Aug 14, 2026Reviewed by Henry
Back to TopGit

Want a second opinion on uptime-kuma?

Ask an AI that can read this page — one click and you get its take on uptime-kuma.

GitHub