Skip to main content

comparing self-hosted

Uptime Kuma vs Cachet: monitor or status page?

This is not really a head-to-head. Uptime Kuma watches your services and tells you. Cachet tells your customers. Teams end up comparing them because they want both jobs done and have not yet noticed that each tool does only one of them.

the facts, side by side

  Uptime KumaCachetUptimepage
license MITv2 BSD-3 · v3 source-availableAGPL-3.0
newest tagged release 2.4.0, May 2026v2.4.1, Nov 2023 · v3 untagged1.0.0
runs its own checks yes, 31 typesbasic HTTP GETyes, 6 types
who schedules the check built in, down to 1sa cron entry you addbuilt in, from 60s
failed check opens an incident no, posted by handno, colours a componentyes, automatic
status page depth basiccomponents · incidents · maintenance · metricsbranded, own subdomain
page subscribers RSS onlyemail + webhook, global scopeemail + webhook
teams & roles single loginadmin + user, no granularityorgs + roles
config as code socket API, no RESTREST, scoped tokens, OpenAPITerraform · REST · MCP
run it yourself one container (Node)PHP + DB + queue + cron, no v3 imageone binary + compose
hosted option nonoyes, free tier
community (GitHub stars) ~89k~15kyoung

Cachet's newest tagged release is v2.4.1 from November 2023. The v3 rewrite ships from the dev branch, has never been tagged, and its own README says it is not yet completely ready for production use.

Cachet v3 added an HTTP GET component check in mid-2026, but nothing schedules it out of the box, it is absent from the components guide, it runs from one location, and a failure colours a component rather than opening an incident or notifying a subscriber.

Cachet's official Docker image repository covers v2 only and last saw a commit in 2021, so self-hosting v3 means a hand-rolled PHP and Laravel deployment with a database, a queue worker and cron.

Cachet 2.x was BSD-3-Clause; the v3 branch carries a custom source-available license and declares itself proprietary in composer.json, while its README still says MIT. Read the license before you build on it.

Verified July 2026 against Uptime Kuma 2.4.0 and the cachethq/core source. Both projects move quickly, so check their current source before you decide.

One watches, the other announces

Uptime Kuma is a monitor with a status page bolted on: real checks, 31 monitor types, 94 notification integrations, and a status page that is fine for a homelab but takes an RSS feed rather than subscribers, with incidents you post by hand. Cachet is the opposite: a purpose-built communication tool with components, component groups, incidents, incident updates and templates, scheduled maintenance and metrics. Its status-page domain model is the most complete of any open project in this list. It simply does not know whether anything is up.

Where Cachet stops: monitoring

Cachet v3 did add a component check in mid-2026, and it is easy to overrate. It is an HTTP GET with a three-second timeout, nothing schedules it out of the box (you add your own cron entry for the check command), it is absent from the components guide in their docs, it runs from one location, and a failure colours a component rather than opening an incident, emailing a subscriber or paging anyone. There is no on-call and no escalation anywhere in the codebase. The intended model is still bring your own monitoring, which is why Cachet ships a first-class integration for importing components and incidents from an external monitoring service.

The release state, before you commit

Read this part carefully, because the project's own sources disagree with each other. Cachet's newest tagged release is v2.4.1 from November 2023. The v3 rewrite has never been tagged: it ships from the dev branch, and its own README says it is not yet completely ready for production use. The official Docker image repository is v2-only and last saw a commit in 2021, so self-hosting v3 means a hand-rolled PHP and Laravel deployment with a database, a queue worker and cron. Development is genuinely busy, effectively by one maintainer. And where 2.x was BSD-3-Clause, the v3 branch carries a custom source-available license and declares itself proprietary in composer.json, while its README still says MIT. Check the license yourself before you build on it.

The two-system setup people actually build

The classic pairing is Kuma (or anything else) doing the checking, pushing component states and incidents into Cachet over its API, which is genuinely good: scoped bearer tokens, an OpenAPI spec, sensible resources. It works. It is also two deployments, two upgrade paths, two sets of credentials, and a piece of glue code you now own, so that a failing check in one system becomes an incident in the other.

Where Uptimepage fits

Uptimepage is that pairing collapsed into one binary. Checks over HTTP, TCP, DNS, TLS, ping and domain expiry run every 60 seconds from multiple regions, a failing check opens an incident by itself, and the incident lands on a branded status page where visitors have subscribed with confirmed email or a signed webhook. No glue code, one deployment, one set of roles. Hosted free with no card, or self-host under AGPL with docker compose.

links

FAQ

Does Cachet monitor my site?
Barely, and not in a way you should lean on. Cachet v3 added an HTTP GET component check in mid-2026, but nothing schedules it out of the box, it is undocumented in the components guide, it runs from one location, and a failure colours a component rather than opening an incident or notifying anyone.
Is Cachet still maintained?
Yes, actively, effectively by one maintainer. But the newest tagged release is still v2.4.1 from November 2023: v3 ships from the dev branch and its own README says it is not yet completely ready for production use.
Is Cachet open source?
Cachet 2.x was BSD-3-Clause. The v3 branch ships a custom source-available license and declares itself proprietary in composer.json, while its README still calls it MIT. The project's own sources contradict each other, so read the license before you build on it.
Do I need both Uptime Kuma and Cachet?
That is the classic pairing: Kuma checks, and pushes states and incidents into Cachet over its API. It works, at the cost of two deployments, two upgrade paths and the glue code between them. Uptimepage does both jobs in one binary, with incidents opened automatically from its own checks.

Start in under 5 minutes.

Start free

features · pricing · notes