comparing self-hosted
Uptimepage vs Upptime, Cachet and Statping
Three popular self-hosted status tools, one honest table. Upptime and Statping run their own checks; Cachet is a status page that has only recently, and partially, added checks of its own. Here is where each fits, and where Uptimepage does both jobs in one product. Start free on the hosted tier or self-host under AGPL, no card.
what you get
- Built-in checks HTTP, TCP, DNS, TLS, ping
- Check interval every 60s
- Status page branded, subscribers
- As code Terraform + REST + MCP
- Run it hosted free, or self-host AGPL
- Price to start free, no card
how they compare
| Uptimepage | Upptime | Cachet | Statping | |
|---|---|---|---|---|
| uptime checks built in | yes | yes | basic HTTP | yes |
| check types | HTTP · TCP · DNS · TLS · ping | HTTP · TCP · ICMP | HTTP GET | HTTP · TCP · UDP · ICMP · gRPC |
| fastest check interval | 60s | 5 min | your cron | ~30s |
| multi-region probes | yes | bolt-on | no | no |
| status page | branded | static | yes | yes |
| visitor subscribers | email + webhook | no | webhook, email wip | no |
| auto incidents from checks | yes | GitHub issues | status only | yes |
| config-as-code | Terraform · API · MCP | YAML | API | YAML · API |
| official Terraform provider | yes | no | community | no |
| tech stack | Rust | JavaScript | PHP / Laravel | Go |
| how you run it | hosted or self-host | Actions + Pages | PHP/Laravel + DB | Go binary |
| license | AGPL-3.0 | MIT | source-available | GPL-3.0 |
| maintained in 2026 | active | low velocity | active, v3 dev | ~yearly |
Statping here is the maintained community fork, statping-ng; the original Statping has not shipped a release since 2020.
Upptime runs checks as GitHub Actions cron jobs, which cannot fire more than once every five minutes and can drift later under load. Reaching other regions needs the third-party Globalping add-on.
Cachet's actively developed v3 (the cachethq/core source) added basic HTTP component checks and subscriber management in mid-2026, but it is still 3.x-dev with no stable release: checks are HTTP GET only on a cron you add yourself, incident email to subscribers is not wired up yet, and the code ships under a custom source-available license.
Competitor facts were verified against each project's repository and docs in July 2026. Open-source projects move quickly, so check their current docs before you decide.
Upptime: monitoring inside your GitHub repo
Upptime is a neat idea. It runs checks as scheduled GitHub Actions, records history as commits in your repo, files incidents as GitHub Issues, and serves a static page from GitHub Pages. That design is also its ceiling. Actions cron will not run more than once every five minutes and can slip later under load, so detection is measured in minutes. There are no visitor subscriptions, checks run from a single region unless you add the third-party Globalping service, and there is no DNS-record or TLS-expiry check. Uptimepage runs its own checks every 60 seconds across HTTP, TCP, DNS, TLS and ping from several regions, and lets visitors subscribe by email or webhook.
Cachet: a status page catching up on monitoring
Cachet began as a pure communication tool: you set components up or down by hand or over its API. Its actively developed v3, in the cachethq/core repo, is moving fast and, as of mid-2026, added basic HTTP component checks and subscriber management. The checks are real but young: HTTP GET only, no TCP, DNS or TLS, and you schedule the check command yourself rather than getting a built-in interval. It is still 3.x-dev with no stable release, incident email to subscribers is not wired up yet, it is a PHP and Laravel app with a database, queue and cron to operate, and it ships under a custom source-available license rather than an OSI open-source one. Uptimepage runs HTTP, TCP, DNS, TLS and ping checks every 60 seconds from multiple regions out of the box, opens incidents automatically, and is one binary to run.
Statping: close in shape, thin on upkeep
Statping is the nearest match here. It is a single Go binary that runs its own HTTP, TCP, UDP, ICMP and gRPC checks, draws response-time graphs, and shows incidents and maintenance on a themeable page. The catch is upkeep. The original project stopped in 2020, and the community statping-ng fork carries it now at roughly one release a year, the most recent in mid-2025. It has no visitor subscriptions, no multi-region checks, and no Terraform provider. Uptimepage covers the same ground and adds config-as-code with Terraform, REST and MCP, team roles, subscriber pages and regional probes, hosted for free or self-hosted under AGPL.
One product, hosted or self-hosted
The pattern is simple. Upptime and Statping monitor but leave out subscribers and multi-region; Cachet publishes but does not monitor. Uptimepage does both in one binary. Run docker compose up with Postgres and ClickHouse on your own boxes, or start free on the hosted tier with no card. The REST API and Terraform provider work the same against both, so you can change your mind later.