Healthchecks
Healthchecks is an open source cron job monitoring tool you can self-host — a Cronitor and Dead Man's Snitch alternative that alerts you when a scheduled job, backup, or heartbeat stops checking in on time.
What is Healthchecks?
Healthchecks is an open source tool for monitoring cron jobs and scheduled tasks. It works as a “dead man’s switch”: each job sends an HTTP request (a “ping”) to a unique URL when it runs, and Healthchecks alerts you when an expected ping does not arrive in time — so you learn about a job that silently stopped running, not just one that errored.
What is Healthchecks best for?
Anyone running scheduled work that fails quietly — nightly cron jobs, database backups, batch imports, certificate renewals, or IoT heartbeats. It suits developers and ops teams who want to know the moment a routine job stops firing, and who prefer to self-host the monitor rather than route job telemetry through a third-party SaaS.
What can Healthchecks do?
- Monitor jobs by heartbeat: define a Period (how often a job should run) and Grace Time (how late is still acceptable) before a check flips to Down
- Match real schedules with cron expression support, including timezones
- Track each check through New, Up, Late, and Down states with a live-updating dashboard
- Send alerts through 25+ integrations — email, Slack, Discord, Telegram, Signal, Matrix, PagerDuty, Opsgenie, Pushover, webhooks, SMS/phone calls, and Apprise
- Log ping and notification history, and signal job start/failure so you can also see how long a job ran
- Publish public status badges for READMEs and dashboards
- Organize checks with projects, teams, role-based access, an API, and WebAuthn 2FA
Is Healthchecks free?
Yes — Healthchecks is free and open source under the BSD 3-clause license, and self-hosting costs only your own server. The project also runs a hosted service at healthchecks.io with a free tier (up to 20 checks) and paid plans from about $16/month, if you would rather not run it yourself.
Where does Healthchecks fall short?
- It’s a passive monitor — it only knows a job ran because the job pings it, so you have to add a ping call to every job. It won’t tell you a server is down the way an active uptime checker like Uptime Kuma or Gatus that polls an endpoint would.
- Alert delivery depends on a long-running
sendalertsprocess: if that management command isn’t kept running, checks still change state but notifications never go out. - It’s focused narrowly on schedule monitoring. There are no metrics dashboards, log aggregation, or tracing — pair it with a broader stack like Grafana if you need those.
What does Healthchecks replace?
Healthchecks is a self-hosted alternative to Cronitor and Dead Man’s Snitch. It does the same cron and heartbeat monitoring job, but you run it on your own infrastructure with no per-monitor or per-seat fees, and the hosted healthchecks.io is the same software if you want a managed option.
FAQ
Is Healthchecks open source? Yes. It’s released under the BSD 3-clause license — a permissive, OSI-approved license — and the full source is on GitHub. You can self-host, modify, and use it commercially with attribution.
Can I self-host Healthchecks for free? Yes. Self-hosting is completely free; you only pay for the server it runs on. The hosted healthchecks.io service is the paid, managed option.
Is Healthchecks a good Dead Man’s Snitch or Cronitor alternative? For cron and heartbeat monitoring, yes — it covers the same passive “tell me when a job stops” use case with more notification channels and no per-monitor pricing. Cronitor adds richer SDKs and execution telemetry if you need those.
What do I need to run Healthchecks? A server with Python 3.12+ and a PostgreSQL, MySQL, or MariaDB database, plus SMTP credentials for email alerts. Docker images are available, and you run it behind a reverse proxy with the sendalerts process kept running.