mrkeyoor.com_
Sat 31 Oct 07:48 UTC
Self-Hostedevaluationupdated 27 Oct 2026

uptime-kuma review

Uptime Kuma is a self-hosted availability monitor with a web dashboard, notifications, and public status pages. Its README lists HTTP, TCP, DNS, push, Docker-container and other checks, plus 20-second intervals. Our recorded source build succeeded; the same run's test command failed on ping-related assertions. We did not test a running monitoring deployment.

+205stars / 7d
Verdict

Uptime Kuma is worth evaluating for small teams that want self-hosted availability checks and public status pages. Its README documents a Docker start and local-storage requirements. In our August 24, 2026 run at commit 34f2b6c, dependency installation took 127 seconds and the build took 27 seconds; tests exited 1 with ping-related assertion failures. The 44 recorded npm audit findings warrant a current dependency review, but establish neither application exploitability nor Docker-image safety. Trial your actual monitors and alert routes before relying on it.

We ran it

Lab card: what happened when we ran uptime-kumaScreenshot of uptime-kuma (uptime.kuma.pet)
Install✓ · 127s2356 packages · 622 MB
Build✓ · 27s
Tests✗ · 71sran, no count parsed
Known vulns443 critical · 23 high · 16 moderate · 2 low (npm audit)
Repo785 files~77,075 lines of source · 8.3 MB · 21 CI workflows · tests dir

Answers from our run

Does uptime-kuma build from source?

Dependencies installed in 127 seconds (2356 packages), and the build succeeded in 27 seconds. We cloned commit 34f2b6c into a clean Debian container with 3 CPUs and no project-specific setup.

Do uptime-kuma's tests pass?

No. The project's own test command exited unsuccessfully after 71 seconds, and its output did not expose an individual test count.

Does uptime-kuma have known vulnerabilities in its dependencies?

npm audit flagged 44 known advisories in the dependency tree, including 3 critical at the time of our run.

Who should not use uptime-kuma?

Deployments that require NFS or similar network filesystems for application data: the README explicitly excludes them.

What are the alternatives to uptime-kuma?

Gatus, Healthchecks. Uptime Kuma is worth evaluating for small teams that want self-hosted availability checks and public status pages.

Setup3/5The README provides Docker and non-Docker starts. Our August 24, 2026 source install and build completed, but we did not execute Docker setup or verify server startup; the test command failed on ping-related assertions.
Docs4/5The supplied README gives concrete setup commands, platform requirements, an NFS warning, and a localhost binding example. Linked advanced-installation and update guides were not inspected.
Community3/5The README identifies GitHub Issues, a subreddit, and contribution routes. Supplied issue threads show user follow-up and workarounds, but do not measure support responsiveness or adoption.
Maturity3/5The README documents varied checks and status pages, and a release page is supplied. Our evidence lacks operational workloads, upgrade validation, exhaustive test reconciliation, and deployment-specific advisory assessment.

Discussed on

  1. hnA fancy open-source self-hosted monitoring tool59 points

Who it’s for

Home-lab operators and small teams evaluating a dashboard for service availability and public status pages.
Administrators willing to manage persistent local storage, network exposure, backups, and notification delivery.
Teams interested in the README's documented 20-second checks and notification integrations, with time to validate their own targets and alert routes.

Who it’s NOT for

Deployments that require NFS or similar network filesystems for application data: the README explicitly excludes them.
Non-Docker installations on FreeBSD, OpenBSD, NetBSD, Replit, or Heroku: the README marks these unsupported.
Readers who need verified production reliability, alert-delivery latency, or workload capacity before choosing a monitor: our recorded run measured none of these.
Organizations requiring a current deployment-specific dependency assessment: the recorded audit concerns one source checkout on August 24, 2026, with unknown coverage.

Setup reality

In our recorded run on August 24, 2026, at commit 34f2b6c, the dependency-install step exited 0 after 127 seconds and the build exited 0 after 27 seconds. The install log says npm added 1,258 packages. Separately, the stored dependency metric is 2,356 with 622 MB of installation storage; it is not a count of packages npm added. The repository metric is 785 files, about 77,075 source lines, and 8.3 MB.

The test command exited 1 after 71 seconds. The raw tail identifies failures in IPv6-bracket handling and ASCII-domain ping tests: assertions expected an address, domain, or accepted network-error format, but received a ping-program execution error. It shows npm run test-backend-20 failing and Node.js v20.20.2. The sandbox was recorded as 3 CPUs, 8 GB memory, image lab-node:22; that image label does not establish the runtime used by every command. We did not establish the underlying ping execution problem or reconcile complete test coverage.

npm audit reported 44 findings: 3 critical, 23 high, 16 moderate, and 2 low. Audit coverage is unknown. These figures do not establish exploitable application vulnerabilities or describe the published Docker image.

The README documents Docker Compose with docker compose up -d, or a container with persistent /app/data storage. Its examples publish port 3001 on all interfaces and show a localhost-only binding as an alternative. NFS is unsupported. Non-Docker requirements include Node.js 20.4 or newer and Git; PM2 is the documented background-process option, with log rotation and startup commands. We did not run the Docker path, start the server, verify an installed executable, or exercise monitors and notifications.

Availability checks with public status pages

Uptime Kuma brings availability checks and public status pages into one self-hosted application. For a small team, the decision is whether its documented checks fit the services you operate and whether you can maintain the monitor itself. Our source-build results help assess the checkout, but do not establish how reliably it detects or reports outages.

The README lists HTTP(s), TCP, keyword and JSON-query checks, WebSockets, ping, DNS records, push signals, Steam game servers, and Docker containers. It also lists 20-second intervals, multiple status pages, domain mapping, certificate information, proxy support, and two-factor authentication. Notifications include Telegram, Discord, Gotify, Slack, Pushover, email, and a stated 90+ notification services. These are documented capabilities, not integrations we exercised.

The documented deployment path

The README provides a Compose setup ending in docker compose up -d, plus a single-container example using persistent /app/data storage. We did not execute either Docker setup, so their presence does not establish installation time, resource use, or image security.

The examples publish port 3001 on all network interfaces. The README also shows binding to 127.0.0.1 to limit exposure to localhost. Choose the binding for your intended access path, and include the persistent data in your backup plan. NFS and similar filesystems are explicitly unsupported; use a local directory or volume.

For a non-Docker installation, the README lists major Linux distributions and Windows 10 x64 or Windows Server 2012 R2 x64 or higher. It marks FreeBSD, OpenBSD, NetBSD, Replit, and Heroku unsupported. Requirements include Node.js 20.4 or newer and Git. PM2 is the documented background-process option, with separate log-rotation and startup commands.

What our recorded run establishes

Our stored run is dated August 24, 2026, at commit 34f2b6c (full SHA 34f2b6c6dd0a1039799fdb37a9735feb3a517d71). The recorded sandbox had 3 CPUs, 8 GB memory, and image label lab-node:22. The test tail identifies Node.js v20.20.2; the image label alone does not identify the runtime of every step.

Dependency installation exited 0 in 127 seconds (127,466 ms). The raw npm output says it added 1,258 packages. The separately stored dependency metric is 2,356, with 622 MB of installation storage. Those values describe different recorded quantities and should not be presented as interchangeable package counts. Repository metrics were 785 files, approximately 77,075 lines of source, and 8.3 MB.

The build exited 0 in 27 seconds (26,509 ms). This establishes that the recorded build command completed. It does not establish that the application started, that a CLI was installed, or that any monitoring workload succeeded.

The test command exited 1 in 71 seconds (71,408 ms), without timing out. The raw tail identifies assertions in test/backend-test/test-util-server.js for stripping brackets from IPv6 addresses and handling standard ASCII domains. Both received an error about executing the ping program instead of the expected error content. The tail then reports failure of npm run test-backend-20. It also includes a passing ConditionExpressionGroup.fromMonitor check; that passing check does not explain away the named failures.

The log does not establish whether the ping-program execution error came from a missing executable, permissions, or another cause. It therefore supports a failed sandbox test command, not a conclusion that deployed Uptime Kuma monitoring is broken. We have no reconciled exhaustive test count and performed no new execution for this correction.

npm audit reported 44 findings: 3 critical, 23 high, 16 moderate, and 2 low. Coverage is unknown; neither the dependency metric nor a package count in the log establishes audit coverage. The supplied record does not show advisory reachability, production-only exposure, or the contents of a published Docker image. Review current advisories against the deployment you intend to run.

Read upgrade reports at their actual scope

The supplied 2.5.3 release page lists a fix for a wrong version number and directs readers to the 2.5.1 changelog. That extract does not support a broader list of maintenance fixes.

Issue #7547 describes group monitors remaining pending after migration from 1.x to 2.4.0. The reporter later said the heartbeat table had lost its primary-key autoincrement, posted their repair, and closed the issue as completed on August 31, 2026. This is a resolved individual report in the supplied extract, not an outstanding confirmed defect across current deployments or proof of a general upstream fix.

Issue #7493 concerns Teams notification previews displaying a generic card message instead of useful service details. Commenters described workarounds, and the reporter said one restored the preview. The supplied extract shows an open feature request about notification presentation; it does not establish that all Teams alerts fail to arrive.

Before upgrading, back up persistent data and check the release notes for your versions. Afterward, verify your important monitor states and notification previews as well as delivery. These are recommended checks, not results from our run.

Which option to evaluate

Uptime Kuma fits an evaluation centered on its documented availability checks and multiple public status pages. Healthchecks addresses a more specific need: scheduled jobs send HTTP or email pings, and missing pings trigger alerts. Gatus describes itself as an automated developer-oriented status page with alerting and incident support. The supplied Gatus extract does not verify the earlier claim that its monitors should be managed in version-controlled YAML.

There is no comparative workload or installation measurement here, so these roles do not establish a winner. Start with the tool whose documented role matches your checks, then test it against your own failure and recovery cases.

How to read the ratings

These are editorial evidence ratings, not benchmark results. Across each category, 1 means substantial documented obstacles, 2 means material gaps, 3 means a usable basis for evaluation with important unknowns, 4 means strong support with limited gaps, and 5 requires broad corroborated evidence. Setup considers installation guidance and observed command completion; docs considers the supplied guidance's clarity and limits; community considers visible support and contribution routes; maturity considers documented capability and operational evidence. Unknown adoption, response times, and compatibility do not earn a high score.

The practical next step is a limited deployment with local persistent storage and deliberate network exposure. Configure representative checks, trigger a controlled failure and recovery, verify notifications, and test restoring your backup. Our recorded source run does not replace those deployment checks.

Alternatives

ProjectWhat it isPick it when
GatusAn automated developer-oriented status page with alerting and incident support, according to its repository description.Evaluate it when a developer-oriented status page with alerting and incident support matches your brief. The supplied extract does not establish its configuration workflow or comparative setup effort.
HealthchecksA cron-job monitoring service that alerts when expected HTTP or email pings do not arrive.Choose it for scheduled jobs that can send completion pings and need alerts when those pings are late or missing.

What people are saying

  1. [github-trending] louislam/uptime-kuma

Sources

  1. Uptime Kuma README
  2. Uptime Kuma 2.5.3 release
  3. Group monitors pending after 1.x migration
  4. Teams webhook notification report

More self-hosted reviews

honk · aivpn · Free-GST-Billing-Software · AiSOC · billd-desk · ha-mcp · the whole board →