~/tools/healthchecks
Healthchecks
tool

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 sendalerts process: 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.