comparing self-hosted
Uptimepage vs the self-hosted monitoring tools
The modern self-hosted crowd, compared honestly. Uptime Kuma and Gatus check the most protocols and run the lightest; OpenStatus and OneUptime match Uptimepage on config-as-code and multi-region; Kener has the prettiest status page. Uptimepage sits where monitoring, a real subscriber status page and Terraform, REST and MCP meet in one binary. Start free on the hosted tier or self-host under AGPL, no card.
The table below is the whole comparison, unedited. Read it first if you like, it is the same one we would send you.
AGPL-3.0 · one binary · free tier · no card required
How they compare
| Uptimepage | Uptime Kuma | OpenStatus | OneUptime | Gatus | Kener | |
|---|---|---|---|---|---|---|
| fastest check interval | 10s | 1s | 30s | 60s | seconds | 60s |
| check breadth | HTTP·TCP·DNS·TLS·domain·ping·heartbeat·flow | 31 types | HTTP·TCP·DNS | 25+ types | 11 protocols | 9 types |
| ping / ICMP | yes | yes | no | yes | yes | yes |
| TLS + domain expiry | yes | yes | stub | yes | yes | SSL only |
| push / heartbeat monitor | yes | yes | no | yes | yes | yes |
| branded status page | yes | basic | yes | yes | dashboard | yes |
| status-page subscribers | email + webhook | RSS only | email + webhook | email·SMS·Slack | no | email + RSS |
| alert channels | 14 | 94 | 13 | 9 | 41 | 4 |
| auto-incidents from checks | yes | no | yes | yes | no | yes |
| multi-region probes | yes | add-on | 28 regions | yes | no | no |
| config-as-code | Terraform · REST · MCP | socket API | Terraform · REST · MCP | Terraform · CLI | YAML | REST API |
| MCP server | yes | no | yes | yes | no | no |
| teams / RBAC | orgs + roles | single user | workspaces | projects + SSO | basic auth | roles |
| tech stack | Rust | Node.js | TypeScript + Go | TypeScript | Go | SvelteKit |
| deploy footprint | 1 binary + 2 DBs | 1 container | multi-service | 6-14 services | 1 tiny binary | Node + Redis |
| license | AGPL-3.0 | MIT | AGPL-3.0 | Apache-2.0 | Apache-2.0 | MIT |
Fastest interval each tool can reach; hosted free tiers are usually slower. Uptimepage's self-hosted floor is 10s, and hosted plans run at 60s on the free founding plan (with 50 monitors) or 30s on Team.
OpenStatus lists ICMP, UDP and SSL-certificate monitors in its config, but its open-source Go checker implements only HTTP, TCP and DNS.
Uptime Kuma has 31 monitor types and 94 alert integrations, but it is single-user, is configured over a socket API rather than REST or Terraform, and its status pages offer RSS, not email or webhook subscribers.
Gatus is a health dashboard with badges rather than a subscriber status page, and its multi-region support is an experimental status-federation feature, not distributed probes.
Alert-channel counts mix first-class and niche providers: Uptime Kuma's total includes the Apprise meta-provider and dozens of SMS gateways, and Gatus's includes automation bridges like Zapier, IFTTT and n8n. Uptimepage's fourteen are native integrations.
Facts verified against each project's source in July 2026 (Uptime Kuma 2.4.0, OpenStatus, OneUptime 11.0.12, Gatus 5.36.0, Kener 4.1.1). Open-source projects move quickly, so check their current source before you decide.
Uptime Kuma: the broadest checks, the lightest footprint
Uptime Kuma is the community favourite for good reason: 31 monitor types in the 2.x line (databases, gRPC, MQTT, SNMP, Steam, real-browser, push heartbeats), 94 alert integrations, intervals as tight as one second, and a single container to run. Its weak side is teams and status pages. It is single-user with no roles, it is driven entirely over a socket API with no REST or Terraform, its status pages take an RSS feed rather than email or webhook subscribers, and incidents are posted by hand, not opened from a failing check. Uptimepage trades some of that protocol breadth for a subscriber status page, organizations with roles, auto-opened incidents and config-as-code.
OpenStatus and OneUptime: the dev-first platforms
These are the closest to Uptimepage in philosophy. OpenStatus is monitoring-as-code done well: a Terraform provider, a CLI, an MCP server, auto-resolving incidents, email and webhook subscribers, and probes across twenty-eight regions with sub-minute checks. Its trade-offs are a heavier stack (Turso plus Tinybird plus hosted queues) and an open-source checker that implements only HTTP, TCP and DNS, with ICMP, UDP and SSL-certificate monitors declared in config but not built. OneUptime does everything Uptimepage does and then adds on-call scheduling, escalation, logs, tracing and APM, but that reach costs you a Postgres, ClickHouse, Redis and many-service deployment to operate. Uptimepage aims at the same developer surface, Terraform, REST and MCP, but as one binary you can actually run. It matches those sub-minute checks too: 30 seconds on Team and 10 seconds self-hosted, while the free founding plan already carries fifty monitors at sixty seconds.
Gatus: the protocol-rich checker
Gatus is a joy if you want declarative checks in version control. Eleven endpoint protocols including gRPC, SSH, WebSocket, STARTTLS and UDP, a rich condition language with JSONPath body assertions and certificate-expiry checks, alpha support for multi-step suites, and a tiny static binary with an optional zero-database mode. What it is not is a status page. It ships a health dashboard with badges, not a branded page with subscribers, it has no incident timeline, and it is single-tenant behind one basic-auth or OIDC boundary. Uptimepage covers the everyday HTTP, TCP, DNS, TLS, domain, ping, heartbeat and browser-flow checks and pairs them with the public status page, subscribers and multi-tenant teams Gatus leaves out.
Kener: the polished status page
Kener is the best-looking status page of the group: separate light and dark palettes, custom CSS and footer HTML, twenty-four locales, embeddable widgets, four badge styles and custom RBAC roles. It checks real services too, including gRPC, SQL and heartbeats. The gaps are on the monitoring platform side: no multi-region probing, four alert channels (email, webhook, Slack, Discord), email-and-RSS subscribers only, a single tenant, and a hard Redis dependency. Uptimepage gives up a little status-page theming for multi-region probes, more alert channels and config-as-code.
Where Uptimepage fits
Uptimepage is not the very fastest interval or the widest protocol list here, and it is honest about that. What it does is put the two halves together: real HTTP, TCP, DNS, TLS-certificate, domain-expiry, ping, cron-heartbeat and browser-flow monitoring, and a branded public status page with confirmed email and webhook subscribers, auto-opened incidents and scheduled maintenance. All of it is driven from code with a Terraform provider, a full REST API and an MCP server, isolated per organization with roles, and checked from probes you can run in any region. It runs as one binary with Postgres and ClickHouse, hosted for free or self-hosted under AGPL.
- 01Sign in with GitHub or Google. No card, no sales call.
- 02Paste a URL. The first check runs before you have finished reading this.
- 03Publish the status page, or export it to Terraform and keep it in Git.
api99.98%
p95 142ms · one incident in 45 days
dashboard99.91%
p95 318ms · two degraded days
webhooks99.99%
p95 88ms · no incidents
RESOLVED14 min
Elevated latency on the dashboard API
14:22 resolved, latency back under 300ms
14:08 opened automatically by the dashboard check
up degraded down 45 days · email & webhook subscribers