Compared on 1 September 2026

Pingtower vs Uptime Kuma

Uptime Kuma is a self-hosted prober with a status page. Pingtower is an alerting pipeline with a pager, with hosted checks and status pages of its own. They start from different questions, and plenty of teams run both.

1.0The short version

Pick the one built for your problem.

Pick Uptime Kuma if

  • You want Docker, Steam and keyword monitors and ninety-plus notification channels out of the box.
  • “Is it up” is the whole question, and a Slack or Telegram message is the whole answer.
  • You want an MIT-licensed project you can read and patch.

Pick Pingtower if

  • Your application’s own errors should page someone, not just an unreachable URL.
  • You need escalation: renotify until acked, then the next person, then the schedule.
  • A phone has to ring through Silent mode, and one swipe has to stop the ladder.
  • You want outside-in checks and inside-the-box sensors from one signed agent.
  • Your status page should show an outage once it’s acknowledged or has lasted 15 minutes, not every blip.

2.0Side by side

A prober with a status page, next to an alerting pipeline with a pager.

PingtowerUptime Kuma
Outside-in checks (HTTP, TCP, DNS, ping, TLS expiry)Hosted from multiple regions, plus gRPC, WebSocket, domain expiry, multi-step API and Playwright browser checks. The addons agent adds SSH, traceroute and patch checks from your own boxes, and UDP and mail checks in its next releaseBuilt in, from the Kuma host: HTTP(s), keyword, JSON query, TCP, ping, DNS, push, Docker, Steam, WebSocket
Alerts from your application's log linesPOST /v1/ingest from anything that can make a request; repeats collapse by message shape into one alert with a countPush monitors accept a heartbeat, not an event stream
Rules with conditions and thresholdsMatch on level, source, tag, shape; compare keys; fire after N in M minutes from distinct sourcesRetries and intervals per monitor; keyword and JSON assertions on the response
Renotify until acknowledged, escalation laddersPer rule: renotify cadence, up to ten rungs naming schedules or people, auto-resolve on quietOne notification on down, one on up
On-call schedulesLayered rotations, timezone restrictions, overrides. In the web app, the iOS app and the APINot a feature; teams add a paging product on top
Phone appNative iOS app in open TestFlight beta; critical alerts sound through Silent mode; swipe to ack. Android beta as a direct APK downloadNo first-party app; notifications reach a phone through the channel you connect
Public status pagePublic or members-only, on ptwr.net or your own domain: 90-day uptime, incidents, maintenance, badges and an embeddable bannerMultiple, customisable, live
Notification channelsPush, signed webhooks, Slack, Telegram, Discord. Runbook actions call any HTTP endpointNinety-plus channels, including Slack, Telegram, Discord, PagerDuty and Opsgenie
Inside-the-box sensorsFirewall changes, auth activity, file integrity, listeners, service state, ingress, stall pressure — continuous, from the same agent
Self-hostingOne static Go binary on PostgreSQL or SQLite, signed releases. Paging the App Store app from your box goes through pingtower.com’s relayNode.js 20.4+ or Docker; SQLite, or MariaDB in 2.0
LicenseSigned binaries, free to self-host. Source is not publishedMIT
PriceHosted: free during preview, no card. Self-hosted: freeFree

Compared on 1 September 2026 against Uptime Kuma's public documentation. If something here is out of date, tell us and it gets fixed in the same day.

What Uptime Kuma is for

Uptime Kuma asks “is it up” on a schedule and shows you the answer, to you on a dashboard and to your customers on a status page. It does that well, it is MIT-licensed, and it runs on a Raspberry Pi. If a service going unreachable is the only failure you need to know about, and a message in a channel is how you want to know, it is the right tool and this page should not talk you out of it.

What Pingtower is for

Pingtower starts from the other end: the failures your services already know about. Your application POSTs a line when a payment gateway times out; the tower recovers the message’s shape, folds the next forty identical lines into the same alert with a count, evaluates your rules, and pages whoever is on call until a human acks. A phone rings through Silent mode. One swipe stops the ladder.

Outside-in checks are part of that. Pingtower runs HTTP, TCP, DNS, ping, certificate, gRPC, WebSocket and domain-expiry checks from its own servers in multiple regions, plus multi-step API checks and Playwright browser checks of a sign-in or a checkout. The addons agent runs the rest from a box you choose, and since 0.2.0 it watches from inside the box too: firewall changes, failed logins, a listener that appeared, a service that restarted into a different binary.

And when something is down, Pingtower can tell your customers: a status page built from the same checks, which shows an outage once someone has acknowledged it or after 15 minutes, and keeps a blip that cleared in a minute off the page.

Where the line actually is

Kuma tells you a URL stopped answering. Pingtower tells you the checkout started failing for Stripe customers seven minutes before the URL stopped answering, told the on-call engineer, and told their backup when they did not ack. Those are different products with an overlap in the middle, and the overlap is smaller than the feature lists suggest.

Two honest gaps on this side. Its notification list is five entries long, not ninety; if you need Gotify or Matrix today, a signed webhook to a relay is the path. And the source is not published, which for some self-hosters is the whole decision.

Running both

The common setup is not either-or. Keep Kuma for the Docker containers, game servers and dashboards it watches inside your network; add a webhook notification pointing at a Pingtower ingest token. A Kuma down becomes a Pingtower event, which becomes an alert with a rule behind it: renotify every ten minutes, escalate at thirty, page the phone. Kuma keeps watching. You get a pager.

# A Kuma webhook notification, as a Pingtower source
curl -s https://api.pingtower.com/v1/projects/probes/sources \
  -H "Authorization: Bearer ptk_…" -d '{"name":"uptime-kuma"}'
# → {"name":"uptime-kuma","token":"pti_…"}   # paste into Kuma's webhook, Authorization: Bearer

The docs cover the rest: rules, escalation, and the agent’s checks.

Keep Kuma. Point it at Pingtower.

A Kuma webhook notification is an event Pingtower can ingest. Its downs become alerts with counts, ladders and a phone that rings, and Kuma keeps watching what it watches.