OpenSourcePicks

Open source alternatives to popular software, with live GitHub data

GitHub stats refreshed every day

Uptime Kuma

Self-hosted uptime monitor with dozens of check types, 90+ alert channels and status pages

Open source alternative to

Visit Uptime KumaGitHubDocumentation

Main features

  • HTTP(s), keyword, JSON query, TCP, ping, DNS, WebSocket and gRPC checks
  • Database checks for PostgreSQL, MySQL/MariaDB, SQL Server, MongoDB, Oracle and Redis
  • Docker, SNMP, MQTT, RabbitMQ, Kafka, SMTP and NTP checks
  • Push monitors for cron jobs and other scheduled tasks
  • Real-browser checks with Chromium
  • Check intervals down to 20 seconds
  • Alerts through 90+ services, including email, Slack, Discord and Telegram
  • Multiple status pages with custom domains
  • Maintenance windows
  • Certificate details, response-time charts and status badges
  • Two-factor authentication
  • Prometheus metrics endpoint

What Uptime Kuma does

Uptime Kuma checks whether your services respond and tells you when they stop. You add monitors in a web interface, choose how often each one runs (as often as every 20 seconds), and pick where alerts go. Its author started it because he wanted a self-hosted equivalent of hosted uptime services such as Uptime Robot.

The range of checks is wide for a tool this small. Besides HTTP(s) requests, with optional keyword or JSON-query assertions, it can test TCP ports, ping hosts, resolve DNS records, open WebSocket and gRPC connections, and log in to PostgreSQL, MySQL/MariaDB, SQL Server, MongoDB, Oracle and Redis. It also covers Docker containers, SNMP devices, MQTT, RabbitMQ, Kafka, SMTP, NTP, RADIUS and game servers. A real-browser monitor loads pages in Chromium, and push monitors flip the model around: a cron job or backup script calls a URL, and Uptime Kuma alerts you if the call stops arriving.

Alerts and status pages

Notifications are one of its strongest points. The repository ships integrations for more than 90 services, from email, Slack, Discord, Microsoft Teams and Telegram to Pushover, Gotify, ntfy and SMS gateways. Maintenance windows silence alerts during planned work.

You can publish several public status pages, each listing a chosen set of monitors, and map each one to its own domain. Badges show uptime or response time on other sites, and a /metrics endpoint, protected by an API key, exposes data to Prometheus.

Self-hosting Uptime Kuma

The usual install is a single Docker container (louislam/uptime-kuma:2) or the supplied Docker Compose file. It also runs directly on Linux or Windows with Node.js 20.4 or later, using PM2 to keep it in the background. FreeBSD, Replit and Heroku are not supported.

Data is stored in SQLite by default. Version 2 added MariaDB, either an external server or an embedded instance enabled with an environment variable, but converting an existing SQLite database to MariaDB is not officially supported. The data directory has to sit on a filesystem with POSIX file locks; the project warns that NFS can corrupt the database. Backing up that directory is the only supported backup method, since the old JSON export was removed in v2.

If you still run v1, read the migration guide first. The upgrade rewrites the heartbeat history, which the author says can take hours on slow hardware with a large database, and it must not be interrupted. The latest Docker tag is deprecated and still points to v1.

Hosted version

There is no official hosted service. The website offers a temporary demo whose data is deleted after ten minutes. The project is funded through Open Collective and GitHub Sponsors.

Limitations

Every check runs from the machine Uptime Kuma is installed on. It cannot tell you whether a site is reachable from other countries, and if its own host or network goes down, alerts stop too, so many people run it on a separate server or provider from the services it watches. It does not collect server metrics, logs or application traces, so it is not a replacement for an observability platform. Support comes from GitHub Issues and the community subreddit; the author asks people not to email him for help.

Who it suits

Uptime Kuma fits home labs, small companies and agencies that want uptime checks, alerts and a status page without a subscription, and that can run a container. Teams that need checks from many regions should look at Gatus on several hosts or a hosted option such as OpenStatus; teams that need metrics and traces should combine it with a tool from the monitoring guide.

Technical details

Self-hosting needs

  • SQLite or MariaDB

Built with

  • Node.js
  • Vue
  • Socket.IO

GitHub topics

  • docker
  • monitor
  • monitoring
  • responsive
  • self-hosted
  • selfhosted
  • single-page-app
  • socket-io
  • uptime
  • uptime-monitoring
  • webapp
  • websocket

Reviewed by the OpenSourcePicks editors from the project's repository and documentation. Something out of date? Tell us.