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.

what you get

  • Built-in checks HTTP, TCP, DNS, TLS, ping, domain
  • Check interval every 60s
  • Status page branded, subscribers
  • Probes multi-region, run your own
  • As code Terraform + REST + MCP
  • Run it one binary, hosted or AGPL

how they compare

  UptimepageUptime KumaOpenStatusOneUptimeGatusKener
fastest check interval 10s1s30s60sseconds60s
check breadth HTTP·TCP·DNS·TLS·ping40+ typesHTTP·TCP·DNS25+ types11 protocols9 types
ping / ICMP yesyesnoyesyesyes
TLS + domain expiry yesyesstubyesyesSSL only
push / heartbeat monitor noyesnoyesyesyes
branded status page yesbasicyesyesdashboardyes
status-page subscribers email + webhookRSS onlyemail + webhookemail·SMS·Slacknoemail + RSS
alert channels 14~95139414
auto-incidents from checks yesnoyesyesnoyes
multi-region probes yesadd-on28 regionsyesnono
config-as-code Terraform · REST · MCPsocket APITerraform · CLITerraform · 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 Pro.

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 around forty monitor types and about ninety-five 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: around forty monitor types (databases, gRPC, MQTT, SNMP, Steam, real-browser, push heartbeats), roughly ninety-five alert integrations, 20-second intervals, and a single container to run. Where it stops is the team and status-page side. 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 keeps going into 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 Pro 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, 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 and ping 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, ping and domain-expiry 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.

links

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.

Start in under 5 minutes.

Start free

features · pricing · notes