Uptime Kuma vs Healthchecks
These two monitor opposite directions. Uptime Kuma reaches out and probes a URL every 20 seconds or more. Healthchecks sits still and waits for your cron job to ping it, alerting when the ping is late. Both are free to self-host; the hosted Healthchecks.io plan is $20/mo for 100 jobs. Here is when each one is the right shape.
Uptime Kuma vs Healthchecks: The Verdict
Uptime Kuma is an outside-in monitor: it probes HTTP, TCP, DNS and ping targets on a schedule and publishes a status page. Healthchecks is inside-out: each cron job, backup script or queue worker pings a unique URL when it finishes, and Healthchecks alerts when the ping is late by more than the grace time. Take Healthchecks if the thing you fear is a nightly backup that silently stops running. Take Uptime Kuma if the thing you fear is a website or API going down, or if you want a public status page. Uptime Kuma also has a push monitor that covers the simple heartbeat case, so for a handful of cron jobs one app is enough. Run either one on a server that is not the one being watched.
Last updated: 2026-09-18Quick Comparison
| Feature | Healthchecks | Uptime Kuma |
|---|---|---|
| Direction | Your jobs ping Healthchecks; it alerts when a ping is late | Uptime Kuma probes your endpoints; it alerts when one fails |
| Best For | Cron jobs, backups, scheduled tasks, queue workers | Websites, APIs, TCP services, DNS, status pages |
| Schedule Model | Period + Grace Time, or a cron / systemd OnCalendar expression | Fixed check interval, down to 20 seconds |
| Heartbeat / Dead-Man Checks | Yes - the core feature | Yes - Push monitor type |
| Active Probes (HTTP, TCP, DNS, ping) | No | Yes, plus keyword, JSON query, WebSocket, Docker, Steam |
| Public Status Page | Read-only badges and a status-badge endpoint | Multiple pages, each mappable to its own domain |
| Notifications | 25+ integrations | 90+ notification services |
| Log of Each Run | Yes - pings with timing and optional captured output | Heartbeat list per monitor |
| Team Features | Projects, team members, read-only access, 2FA | Single admin login with optional 2FA |
| Hosted Option | Healthchecks.io: $0 for 20 jobs, $20/mo for 100, $80/mo for 1,000 | None official - self-host or use a pod |
| Built With | Python 3.12+, Django 6.1, PostgreSQL / MySQL / MariaDB (v4.4) | Node.js and Vue, SQLite built in (2.5.5) |
| License | BSD-3-Clause | MIT |
| 1-Click on InstaPods | No - install Django app plus a database yourself | Yes - $3/mo, launches ready to use |
What Is Harder With Healthchecks?
Trade-offs to weigh before committing.
It Cannot Check a Website
Healthchecks never reaches out. It only knows a job exists because the job pinged it. If your API is down but nothing was scheduled to ping, Healthchecks stays green. Outside-in probing is what Uptime Kuma is for.
Self-Hosting Means a Django App and a Database
The project ships a Dockerfile and images, but you still run Python 3.12+, Django 6.1 and PostgreSQL, MySQL or MariaDB, plus SMTP if you want email pings and reports. It is a real deployment, not a single binary. Uptime Kuma is one Node process with SQLite built in.
Status Pages Are Badges, Not Pages
Healthchecks exposes per-check and per-project status badges you can embed. There is no branded public status page with incident history and a custom domain, which is a headline feature of Uptime Kuma.
The Hosted Tier Caps Jobs
Healthchecks.io is free for 20 jobs and $20/mo for 100 (billed monthly; $192/yr annually). Past 100 you jump to $80/mo. Self-hosting removes the cap but brings back the deployment work above.
Why Pick Uptime Kuma Instead?
What you get when you pick this stack.
It Watches the Things Users Actually Hit
Websites, APIs, TCP ports, DNS records, WebSocket endpoints, Docker containers. Uptime Kuma probes them on an interval down to 20 seconds and alerts on failure, keyword mismatch or a wrong JSON value. Healthchecks has no probe at all.
Push Monitors Cover the Cron Case Too
A Push monitor gives you a unique URL; your job curls it when it finishes, and Uptime Kuma alerts if the ping stops. It is not as rich as Healthchecks (no cron expression schedule, no captured output), but for a few backups and scripts it means one app instead of two.
A Real Status Page
Multiple status pages, each mappable to its own domain, with grouped monitors, branding and incident posts. If customers or teammates need somewhere to look during an outage, this is the feature.
One Process, Nothing to Configure
Uptime Kuma runs as a single Node application with its own SQLite database and 90+ notification services in the UI. No separate database, no SMTP requirement, no Django settings.
Real Cost Comparison
Monitoring 20 endpoints plus 30 cron jobs for a year with a public status page.
- Healthchecks.io Business: $20/mo for up to 100 jobs (30 cron jobs fit; 20 endpoints cannot be probed)
- Or self-host Healthchecks (BSD-3) on your own server with PostgreSQL and SMTP
- Still need a separate uptime monitor for the 20 endpoints
- No branded status page either way
- InstaPods Launch plan: $3/mo (1 vCPU, 512MB RAM, 10GB)
- Uptime Kuma: free and open source (MIT)
- 20 HTTP/TCP/DNS monitors plus 30 Push monitors for the cron jobs
- Status page, HTTPS and a domain included
Frequently Asked Questions
What is the difference between Uptime Kuma and Healthchecks?
Direction. Uptime Kuma probes your endpoints from the outside and alerts when a probe fails. Healthchecks waits for your cron jobs to ping it and alerts when a ping is late. One watches things that serve traffic; the other watches things that are supposed to run on a schedule.
Can Uptime Kuma monitor cron jobs?
Yes, with the Push monitor type. Uptime Kuma gives you a unique URL, your job requests it on completion, and Uptime Kuma alerts if the request stops arriving within the interval. Healthchecks goes further: cron and OnCalendar schedules, grace time, and a log of each ping with optional output.
Can Healthchecks monitor a website?
No. Healthchecks has no active probes; it only receives pings. To be alerted when a site goes down you need an outside-in monitor such as Uptime Kuma.
Is Healthchecks free to self-host?
Yes. The code is BSD-3-Clause licensed on GitHub with a Dockerfile and pre-built images. You need Python 3.12+, Django 6.1 and PostgreSQL, MySQL or MariaDB. The hosted Healthchecks.io service is $0 for 20 jobs, $20/mo for 100 and $80/mo for 1,000 (prices checked 2026-09-18).
Which one has a status page?
Uptime Kuma. It ships multiple status pages, each mappable to its own domain, with incident posts. Healthchecks provides embeddable status badges and a badge endpoint, not a full page.
Should I run both?
If you have many scheduled jobs and care about their run history, yes: Healthchecks for the jobs, Uptime Kuma for the endpoints and the status page. If you have a few cron jobs and mostly need uptime checks, Uptime Kuma alone covers it.
Can I run Healthchecks on InstaPods?
Not as a 1-Click app. A pod is a real Linux server with SSH, so you can deploy the Django app and a PostgreSQL service yourself. Uptime Kuma is the one-click option.
Need the Outside-In Monitor? Deploy It in 60 Seconds
Healthchecks is the right tool for a fleet of cron jobs. For websites, APIs and a public status page, Uptime Kuma launches on InstaPods for $3/mo, off the box you are watching, with HTTPS and a domain already wired up.
Deploy Uptime Kuma