Healthchecks
Monitor for cron jobs and scheduled tasks that alerts you when an expected ping is missing.
- Replaces
-
Paid cron job monitoring services, such as Cronitor.
All open-source alternatives to Cronitor
- Difficulty
-
Difficulty: Medium
2 services (1 database or broker: postgres), 1 volume mount, 3 env values to set, no elevated host access. Heuristic score 3 of 11: medium. A source checkout is needed, and the first start builds images from source, so the rating is at least medium.
- Stack
Python (language), PostgreSQL (database)
- Deployment
docker_compose
- Requirements
Not stated.
- License
-
BSD-3-Clause(OSI-approved open source)Read from github.com/healthchecks/healthchecks/blob/f09c439/LICENSE
- Business model
-
Unknown
The README at the pinned commit does not state a business model, so it stays unknown.
Source: github.com/healthchecks/healthchecks/blob/f09c439/README.md, read on .
- Repository
GitHub stats
- Stars
- 10,440
- Forks
- 1,028
- Open issues and pull requests
- 55
- Last push
- 2026-10-22
- Latest release
- v5.0.1
- Released
- 2026-10-22
From the GitHub API on . These numbers are a snapshot, not live. GitHub detected the license as BSD-3-Clause.
Compose file
volumes:
db-data:
services:
db:
image: postgres:16
volumes:
- db-data:/var/lib/postgresql/data
environment:
- POSTGRES_DB=$DB_NAME
- POSTGRES_PASSWORD=$DB_PASSWORD
web:
build:
context: ..
dockerfile: docker/Dockerfile
# To use a pre-built image, remove the above "build" section
# and uncomment the following line:
# image: healthchecks/healthchecks:latest
env_file:
- .env
ports:
- "8000:8000"
# To enable SMTP on port 2525, set SMTPD_PORT=2525 in .env
# and uncomment the following line:
# - "2525:2525"
depends_on:
- db
command: bash -c 'while !</dev/tcp/db/5432; do sleep 1; done; /opt/healthchecks/run.sh'
From the app's own repository: github.com/healthchecks/healthchecks/blob/f09c439/docker/docker-compose.yml.
Compose file from healthchecks/healthchecks, used inside a checkout of that repository (documented setup B).
Install
- Docker with the Compose plugin and git (github.com/healthchecks/healthchecks/blob/f09c439/docker/README.md)
A host with Docker, the Docker Compose plugin and git. This entry needs a checkout of the project repository.
- Get the source at commit f09c439 (github.com/healthchecks/healthchecks/blob/f09c439/docker/README.md)
git init healthchecks cd healthchecks git remote add origin https://github.com/healthchecks/healthchecks.git git fetch --depth 1 origin f09c4397430d3e70090a0494bc1b8e732396c1cb git checkout FETCH_HEAD - Go to the folder the docs use (github.com/healthchecks/healthchecks/blob/f09c439/docker/README.md)
cd docker - The compose file in the checkout: docker/docker-compose.yml (shown here for reading) (github.com/healthchecks/healthchecks/blob/f09c439/docker/docker-compose.yml)
Use the compose file shown above.
- Copy .env.example to .env (github.com/healthchecks/healthchecks/blob/f09c439/docker/README.md)
cp .env.example .env - What the compose file check ran with (github.com/healthchecks/healthchecks/blob/f09c439/docker/README.md)
The compose file check ran in a checkout of healthchecks/healthchecks at f09c4397430d3e70090a0494bc1b8e732396c1cb (a sparse checkout: the top-level files and the folder docker), in the folder docker, after .env.example was copied to .env. The Docker guide of the repository tells the reader to copy docker/.env.example to docker/.env, fill in the settings and run docker compose up in the docker folder.
- Start it (github.com/healthchecks/healthchecks/blob/f09c439/docker/README.md)
docker compose up -d - Open the app (github.com/healthchecks/healthchecks/blob/f09c439/docker/docker-compose.yml)
Open http://localhost:8000. The compose file publishes host port 8000 for the web service. The guide says to open this address and log in with the superuser that the createsuperuser command makes.
Compose file check: config_ok on 2026-10-22.
Gotchas and maintenance
Gotchas
- Some services build from source. These services have a build section and no image: web. They need the project source next to the compose file. (github.com/healthchecks/healthchecks/blob/f09c439/docker/docker-compose.yml, checked 2026-10-22)
- The compose file publishes host ports. Host ports: 8000 (web). A port without a host address listens on all host network interfaces. (github.com/healthchecks/healthchecks/blob/f09c439/docker/docker-compose.yml, checked 2026-10-22)
- The first start builds images from source. The compose file has a build section. The first docker compose up builds the image from the checkout, which needs time, disk space and network access. (github.com/healthchecks/healthchecks/blob/f09c439/docker/docker-compose.yml, checked 2026-10-22)
Signals
- Open issues and pull requests: 55
- Last push: 2026-10-22 (0 days before this page was built)
- Latest release: v5.0.1 on 2026-10-22 (0 days before this page was built)