OpenLogs

All tools

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

healthchecks/healthchecks

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

Config check passed docker compose config exited 0 on this exact file on 2026-10-22.
docker-compose.yml Version 1
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

  1. 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.

  2. 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
  3. Go to the folder the docs use (github.com/healthchecks/healthchecks/blob/f09c439/docker/README.md)
    cd docker
  4. 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.

  5. Copy .env.example to .env (github.com/healthchecks/healthchecks/blob/f09c439/docker/README.md)
    cp .env.example .env
  6. 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.

  7. Start it (github.com/healthchecks/healthchecks/blob/f09c439/docker/README.md)
    docker compose up -d
  8. 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

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)