Uptime Kuma: Self-Hosted Uptime Monitoring
Uptime Kuma watches your services and tells you when they stop responding. It is the self-hosted answer to UptimeRobot and Pingdom, and it became the default recommendation almost immediately on release.
What it monitors
HTTP and HTTPS with keyword and status code matching, TCP ports, DNS records, ping, Docker containers, and push monitors where a job checks in on a schedule rather than being polled. That last mode covers cron jobs and backups, which are exactly the things that fail silently.
Certificate expiry monitoring is included, which quietly prevents one of the more embarrassing outages.
Notifications
More than ninety notification providers are supported, including ntfy, Gotify, Telegram, Discord, Slack, email, and generic webhooks. Configuring at least two, on different transports, is worth the extra minute: a single notification channel that itself depends on the network you are monitoring is not really monitoring.
Status pages
Public or password-protected status pages can be published from the same instance, grouping monitors and showing history. For anyone running services other people depend on, this replaces answering “is it down for you too” individually.
Where to run it
Deliberately not on the machine you are most worried about. A monitor sharing a host with the services it watches goes down with them and reports nothing. A cheap VPS elsewhere, or at minimum a different machine, is the right placement.
Alternatives
Gatus is configuration-file driven and appeals to people who want monitoring in version control. Healthchecks specializes in cron job monitoring. Netdata covers per-second system metrics rather than availability.
License
Uptime Kuma is released under the MIT License.