Development & infrastructureLouis Lam and open-source contributorsOpen source
Uptime Kuma
Decision matrix
Uptime Kuma app decision matrix
Overview
Uptime Kuma is a free, MIT-licensed, self-hosted monitoring tool that checks HTTP(s), TCP, WebSocket, Ping, DNS and Docker container health every 20 seconds, with notifications through 90+ services and customizable public status pages. Pick it when you want to know whether a service is actually up, self-hosted with no subscription. It confirms availability, not whether a workflow's output is correct.
Other good fits
Getting immediate notifications (Telegram, Discord, Slack and 90+ other services) when something goes down.
+ Pros
Read pros
Uptime Kuma monitors service availability across multiple protocols: HTTP(s), TCP, WebSocket, Ping, DNS records, and Docker containers, checking every 20 seconds by default. It's free and MIT-licensed, self-hosted, with a reactive (live-updating) UI, 2FA support, certificate expiry tracking, proxy compatibility, and customizable public status pages you can share with others. Notifications reach over 90 services including Telegram, Discord and Slack.
Pick it when…
You want to know quickly when a service you run goes down, without paying for a hosted monitoring subscription.
You want a public or internal status page you can point people to instead of manually answering "is it down?" questions.
You're already comfortable self-hosting a small service with Docker or Node.js.
− Cons
Read cons
Availability monitoring tells you a service responded; it doesn't tell you the response was correct. A service that's "up" but returning wrong data, stale content, or a broken feature will still show green in Uptime Kuma, so pair it with application-level checks if correctness matters, not just reachability. It's self-hosted, so you're responsible for its own uptime: if the machine running Uptime Kuma itself goes down, you lose your monitoring along with visibility into everything it was watching.
Pick something else when…
You need to verify actual output correctness, not just availability. Application-level tests or assertions (like Promptfoo for LLM output specifically) check a different, more meaningful thing than "did it respond."
You want a fully managed monitoring service instead of self-hosting. A hosted status/monitoring SaaS removes the self-hosting responsibility, at a subscription cost.
You need container management alongside monitoring.Dockge is a complementary tool for managing the containers Uptime Kuma and other services run in.
Avoid if
You want a fully managed, hosted monitoring service instead of running your own instance.
Workflow
Install via Docker Compose (the quickest route) or Node.js/PM2 for a non-Docker setup → add a monitor for each service you care about, picking the right check type (HTTP, TCP, Ping, DNS, Docker) → configure a notification channel → let it run and watch for a real alert → build a status page if you want to share availability publicly.
Cost
The software is free. You pay for the machine it runs on (a small VM or container is enough for most personal or small-team use) and your own time keeping it updated. Installation is genuinely quick via Docker Compose; the Node.js/PM2 route needs Node 20.4+ and more manual setup.
Restrictions
Being self-hosted, there's no vendor SLA or managed support; you own updates, security patching and backup of your own instance, including its monitoring history if the host itself fails.
First project
Documentation-based suggestion — not run here.
Monitor one real service and confirm the alert actually fires.
Deploy Uptime Kuma with Docker Compose.
Add an HTTP monitor for a site or service you actually care about.
Connect a notification channel (Telegram or Discord are quick to set up).
Deliberately trigger a failure (stop the monitored service briefly, or point it at a URL that returns an error) and confirm you get notified.
Done when you've received a real notification from a deliberately triggered failure, proving the whole chain (check, detect, notify) actually works, not just that the dashboard shows green.
Links & evidence
Documentation-based · not hands-on · Sep 23, 2026
Rests on the Uptime Kuma GitHub repository, checked 23 September 2026. No installation, monitor or notification was set up for this review.
Monitor HTTP, TCP, DNS, container, and push-based service checks.
Publish status pages and send notifications when monitored services change state.
Track response history while separating uptime from output correctness.
Louis Lam and open-source contributors · free · self-host
Container image: louislam/uptime-kuma:2
uptime checks
notifications
status pages
response-time history
monitor
operate
self-host
View sourced imageOfficial Uptime Kuma repository dashboard screenshot, showing the publisher's example monitors.
Uptime Kuma official product documentation
Owner-requested editorial use of public official interface screenshots, 15 September 2026. Copyright retained by the original publisher; attribution preserved. No open licence or hands-on course execution is asserted. Source asset: https://user-images.githubusercontent.com/1336778/212262296-e6205815-ad62-488c-83ec-a5b0d0689f7c.jpg. PNG conversion preserves the complete frame. Converted on 15 October 2026 to a WebP (quality 80) for faster page loads; the original image remains in the media library.