# Healthchecks — Cron Job Monitoring with Smart Alerts > Healthchecks is a self-hosted cron job and scheduled task monitor that alerts you when your periodic jobs fail to run on time. ## Install Save as a script file and run: # Healthchecks — Cron Job Monitoring with Smart Alerts ## Quick Use ```bash docker run -d --name healthchecks -p 8000:8000 -v /path/to/data:/data -e SECRET_KEY=your-secret-key -e ALLOWED_HOSTS=* healthchecks/healthchecks:latest # Add to cron: curl -fsS -m 10 --retry 5 http://localhost:8000/ping/ ``` ## Introduction Healthchecks is a cron job monitoring service that listens for HTTP pings from your scheduled tasks and alerts you when pings are overdue. Each check gets a unique URL that your cron jobs hit upon completion. If a ping does not arrive within the expected interval, Healthchecks sends alerts through email, Slack, PagerDuty, or 25+ other integrations. ## What Healthchecks Does - Monitors cron jobs and scheduled tasks by tracking periodic HTTP or email pings - Sends alerts via email, Slack, Telegram, PagerDuty, Opsgenie, and 25+ channels - Supports cron expression schedules with grace periods for flexible timing - Provides a dashboard showing check status with uptime history and response times - Measures job execution duration when start and success pings are both sent ## Architecture Overview Healthchecks is a Django application with a PostgreSQL or MySQL database backend. A background worker process monitors check deadlines and dispatches alert notifications. The ping endpoint is optimized for high throughput with minimal overhead. The web dashboard uses server-side rendering with progressive JavaScript enhancements for real-time status updates. ## Self-Hosting & Configuration - Deploy via Docker with environment variables for SECRET_KEY and database connection - Configure SMTP settings for email alerts and add integration webhooks in the UI - Set ALLOWED_HOSTS and SITE_ROOT for proper URL generation behind a reverse proxy - Use PostgreSQL for production or SQLite for small deployments - Enable Prometheus metrics endpoint for monitoring Healthchecks itself ## Key Features - 25+ notification channels including Slack, Telegram, Discord, PagerDuty, and webhooks - Cron expression and interval-based scheduling with configurable grace periods - Job duration measurement by tracking start and completion pings - Badge API for embedding status indicators in README files and dashboards - Team management with projects and read-only access for stakeholders ## Comparison with Similar Tools - **Uptime Kuma** — Monitors service availability; Healthchecks monitors job execution schedules - **Cronitor** — Commercial SaaS; Healthchecks is fully open source and self-hostable - **Dead Man's Snitch** — SaaS cron monitor; Healthchecks offers the same model for free self-hosted - **Grafana Alerting** — Metric-based alerts; Healthchecks uses a simpler ping-based dead man's switch - **Gatus** — HTTP endpoint monitoring; Healthchecks focuses on periodic job completion tracking ## FAQ **Q: How do I integrate with an existing cron job?** A: Append a curl command to your cron entry: `&& curl -fsS http://hc-host/ping/uuid`. The check turns red if the ping stops arriving. **Q: Can it monitor jobs that run on different servers?** A: Yes. Each check has a unique ping URL accessible from anywhere. Jobs on any server can ping the same Healthchecks instance. **Q: Does it support measuring how long a job takes?** A: Yes. Send a start ping before the job and a success ping after. Healthchecks calculates and displays the duration. **Q: What happens during Healthchecks downtime?** A: Missed pings are not recorded. When Healthchecks comes back, overdue checks will trigger alerts based on their last known ping time. ## Sources - https://github.com/healthchecks/healthchecks - https://healthchecks.io/docs/ --- Source: https://tokrepo.com/en/workflows/58bfd180-39f2-11f1-9bc6-00163e2b0d79 Author: Script Depot