Automation and scraping · Edition No. 15 · 9 Sep 2026

healthchecks/healthchecks

Gives every scheduled job a URL to call when it finishes, and alerts you when the call does not arrive.

← Automation and scrapingRead the whole edition →

10.1k stars · BSD-3-Clause · v4.4 (2026-08-31), read from /releases/latest · Track this in Scout

Gives every scheduled job a URL to call when it finishes, and alerts you when the call does not arrive.

▶Repo detailsthe review · specs · pros & cons · install

What it is

Healthchecks waits for a signal instead of watching a machine. Each job gets a web address and an expected schedule. Silence is the alarm.

What it is good for. This is the most concrete item on the list, because the failure it catches is a silent one. A scheduled job can stop finishing and nobody notices for weeks. A backup is worse. Restic (Edition 8 #11) has no way to tell you it stopped running, so you would learn about it on the day the disk dies. One extra line at the end of the command closes that hole for good.

Stars10.1k
LicenceBSD-3-Clause
Latestv4.4 (2026-08-31), read from /releases/latest
Good
  • Two minutes per job. You add && curl -fsS https://hc-ping.com/your-id to the end of the command and you are done.
  • The hosted version is free for twenty jobs. For most people that is enough, and it means nothing new to run or update.
  • It can alert by email, Telegram, Slack, and ntfy (Edition 7 #4), which you may already have on your phone.
Watch for
  • It only knows what you tell it. A job that finishes normally but writes a broken file still reports success. Make the script check its own output.
  • It overlaps Uptime Kuma (Edition 7 #1), which also has this kind of check built in. If Uptime Kuma is already running, use that and skip this.
  • Running it yourself is a Django application with Postgres. Use the free hosted version unless you have a firm reason not to.
Install
# Nothing to install for the hosted version. Sign up at healthchecks.io,
# create a check, copy its address, then edit your crontab:
0 3 * * * /usr/local/bin/backup.sh && curl -fsS -m 10 --retry 3 https://hc-ping.com/YOUR-ID
# If you would rather run it yourself:
sudo docker run -d --name healthchecks -p 8000:8000 \
  -e SECRET_KEY=a-long-random-string \
  -e SITE_ROOT=https://checks.yourdomain.com \
  -v $HOME/healthchecks:/data \
  healthchecks/healthchecks
Screenshots
healthchecks/healthchecks: GitHub preview cardhealthchecks/healthchecks: Screenshot 1healthchecks/healthchecks: Screenshot 2healthchecks/healthchecks: Screenshot 3healthchecks/healthchecks: Screenshot 4

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.