# Healthchecks

Monitor for cron jobs and scheduled tasks that alerts you when an expected ping is missing.

- Replaces: [Cronitor](https://openlogs.fyi/alternatives/cronitor)
- Summary: Paid cron job monitoring services, such as Cronitor.
- Stack: Python (language), PostgreSQL (database)
- Deployment: docker_compose
- License: BSD-3-Clause (osi) [source](https://github.com/healthchecks/healthchecks/blob/f09c4397430d3e70090a0494bc1b8e732396c1cb/LICENSE)
- Business model: unknown. The README at the pinned commit does not state a business model, so it stays unknown. ([source](https://github.com/healthchecks/healthchecks/blob/f09c4397430d3e70090a0494bc1b8e732396c1cb/README.md), read 2026-10-22)
- 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.
- Requirements: not stated
- Repository: [healthchecks/healthchecks](https://github.com/healthchecks/healthchecks)

## Install

1. Docker with the Compose plugin and git ([source](https://github.com/healthchecks/healthchecks/blob/f09c4397430d3e70090a0494bc1b8e732396c1cb/docker/README.md))

   ```text
   A host with Docker, the Docker Compose plugin and git. This entry needs a checkout of the project repository.
   ```

2. Get the source at commit f09c439 ([source](https://github.com/healthchecks/healthchecks/blob/f09c4397430d3e70090a0494bc1b8e732396c1cb/docker/README.md))

   ```bash
   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
   ```

3. Go to the folder the docs use ([source](https://github.com/healthchecks/healthchecks/blob/f09c4397430d3e70090a0494bc1b8e732396c1cb/docker/README.md))

   ```bash
   cd docker
   ```

4. The compose file in the checkout: docker/docker-compose.yml (shown here for reading) ([source](https://github.com/healthchecks/healthchecks/blob/f09c4397430d3e70090a0494bc1b8e732396c1cb/docker/docker-compose.yml))

   ```yaml
   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'
   ```

5. Copy .env.example to .env ([source](https://github.com/healthchecks/healthchecks/blob/f09c4397430d3e70090a0494bc1b8e732396c1cb/docker/README.md))

   ```bash
   cp .env.example .env
   ```

6. What the compose file check ran with ([source](https://github.com/healthchecks/healthchecks/blob/f09c4397430d3e70090a0494bc1b8e732396c1cb/docker/README.md))

   ```text
   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.
   ```

7. Start it ([source](https://github.com/healthchecks/healthchecks/blob/f09c4397430d3e70090a0494bc1b8e732396c1cb/docker/README.md))

   ```bash
   docker compose up -d
   ```

8. Open the app ([source](https://github.com/healthchecks/healthchecks/blob/f09c4397430d3e70090a0494bc1b8e732396c1cb/docker/docker-compose.yml))

   ```text
   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. ([source](https://github.com/healthchecks/healthchecks/blob/f09c4397430d3e70090a0494bc1b8e732396c1cb/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. ([source](https://github.com/healthchecks/healthchecks/blob/f09c4397430d3e70090a0494bc1b8e732396c1cb/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. ([source](https://github.com/healthchecks/healthchecks/blob/f09c4397430d3e70090a0494bc1b8e732396c1cb/docker/docker-compose.yml), checked 2026-10-22)

### Signals

Computed from a GitHub snapshot taken 2026-10-22.

- Open issues and pull requests: 55
- Stars: 10440, forks: 1028
- Last push: 2026-10-22 (0 days ago)
- Latest release: v5.0.1 on 2026-10-22 (0 days ago)

## Sources

- [Repository: https://github.com/healthchecks/healthchecks](https://github.com/healthchecks/healthchecks)
- [License: https://github.com/healthchecks/healthchecks/blob/f09c4397430d3e70090a0494bc1b8e732396c1cb/LICENSE](https://github.com/healthchecks/healthchecks/blob/f09c4397430d3e70090a0494bc1b8e732396c1cb/LICENSE)
- [Business model: https://github.com/healthchecks/healthchecks/blob/f09c4397430d3e70090a0494bc1b8e732396c1cb/README.md](https://github.com/healthchecks/healthchecks/blob/f09c4397430d3e70090a0494bc1b8e732396c1cb/README.md)
- [Compose file: https://github.com/healthchecks/healthchecks/blob/f09c4397430d3e70090a0494bc1b8e732396c1cb/docker/docker-compose.yml](https://github.com/healthchecks/healthchecks/blob/f09c4397430d3e70090a0494bc1b8e732396c1cb/docker/docker-compose.yml)
- [Install step: https://github.com/healthchecks/healthchecks/blob/f09c4397430d3e70090a0494bc1b8e732396c1cb/docker/README.md](https://github.com/healthchecks/healthchecks/blob/f09c4397430d3e70090a0494bc1b8e732396c1cb/docker/README.md)

---
Canonical: https://openlogs.fyi/tools/healthchecks  
Last updated: 2026-10-22
