cronbeat

Docs

From an empty dashboard to a monitored cron job in under two minutes.

Quick start

Create a check in the dashboard, then append one curl to the job:

0 2 * * * /usr/local/bin/backup.sh \
  && curl -fsS http://localhost:8113/ping/YOUR_SLUG

The ping is a plain GET (HEAD works too). If it does not arrive within period + grace, the check goes DOWN and alerts fire.

Fail pings

Jobs that know they failed should say so immediately instead of waiting out the schedule:

cmd || curl -fsS http://localhost:8113/ping/YOUR_SLUG/fail

A fail ping alerts right away and marks the log entry red.

Schedules and grace

Fixed intervals work for simple jobs (every 86400s). Pro unlocks cron-expression awareness (*/15 * * * *), which handles daylight saving, short months, and skipped runs correctly. Grace absorbs normal jitter; five minutes is a sensible default.

API

# create a check
curl -s -X POST http://localhost:8113/api/checks \
  -H "Content-Type: application/json" \
  -d '{"email":"ops@co.dev","name":"nightly-backup","period_seconds":86400,"grace_seconds":3600}'

# list checks + status
curl -s "http://localhost:8113/api/checks?email=ops@co.dev"

# ping log for one check
curl -s http://localhost:8113/api/checks/CHECK_ID/log -H "Authorization: Bearer TOKEN"

Plan limits

Free Pro $9/mo Team $29/mo
Checks550200
Log retention1 day90 days90 days
Alert channelsemailemail + webhooksemail + webhooks