Skip to main content

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

  UptimepageUptime KumaOpenStatusOneUptimeGatusKener
fastest check interval 10s1s30s60sseconds60s
check breadth HTTP·TCP·DNS·TLS·domain·ping·heartbeat·flow31 typesHTTP·TCP·DNS25+ types11 protocols9 types
ping / ICMP yesyesnoyesyesyes
TLS + domain expiry yesyesstubyesyesSSL only
push / heartbeat monitor yesyesnoyesyesyes
branded status page yesbasicyesyesdashboardyes
status-page subscribers email + webhookRSS onlyemail + webhookemail·SMS·Slacknoemail + RSS
alert channels 1494139414
auto-incidents from checks yesnoyesyesnoyes
multi-region probes yesadd-on28 regionsyesnono
config-as-code Terraform · REST · MCPsocket APITerraform · REST · MCPTerraform · CLIYAMLREST API
MCP server yesnoyesyesnono
teams / RBAC orgs + rolessingle userworkspacesprojects + SSObasic authroles
tech stack RustNode.jsTypeScript + GoTypeScriptGoSvelteKit
deploy footprint 1 binary + 2 DBs1 containermulti-service6-14 services1 tiny binaryNode + Redis
license AGPL-3.0MITAGPL-3.0Apache-2.0Apache-2.0MIT

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.

  1. 01Sign in with GitHub or Google. No card, no sales call.
  2. 02Paste a URL. The first check runs before you have finished reading this.
  3. 03Publish the status page, or export it to Terraform and keep it in Git.
acme cloud status.acme.dev subscribe

all systems operational checked 12s ago

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

An example page. The monitors, the percentages and the incident are made up.

FAQ

Which of these is the most lightweight to run?
Gatus (a tiny static binary, optionally zero-database) and Uptime Kuma (one container) are the lightest. OneUptime is the heaviest, needing Postgres, ClickHouse, Redis and many services. Uptimepage sits in between: one binary with Postgres and ClickHouse.
Which support monitoring as code?
Uptimepage, OpenStatus and OneUptime all offer a Terraform provider plus an MCP server. Gatus is declarative YAML by nature but has no Terraform provider, and Uptime Kuma is driven over a socket API with no REST or Terraform.
Do they all have status-page subscribers?
Uptimepage, OpenStatus, OneUptime and Kener let visitors subscribe (email, and webhook or more). Uptime Kuma offers an RSS feed only, and Gatus is a health dashboard with no subscriber feature.
Can I self-host Uptimepage?
Yes. Same one-binary deploy the table describes: compose up, migrations on boot, AGPL. The hosted tier exists for when you would rather not run it.

Links

Start in under 5 minutes.

Start free

features · pricing · notes