Healthchecks is an open-source monitoring service designed to track the health of cron jobs, scheduled scripts, and background tasks. It listens for HTTP pings or email messages from your jobs and sends alerts when they fail to arrive on time. Built with Python and Django, it provides a self-hosted alternative to commercial monitoring tools, giving teams full control over their infrastructure monitoring. The system is ideal for DevOps engineers, sysadmins, and developers who need reliable alerting without vendor lock-in. With support for WebAuthn 2FA, team management, and SMTP-based pings, it’s a robust solution for ensuring critical jobs run as expected.
Healthchecks includes a web dashboard with real-time status updates, configurable alert thresholds via period and grace time settings, cron expression parsing, public status badges for dashboards, and extensive integration options. It can be deployed via Docker or installed manually with PostgreSQL/MySQL/MariaDB, making it flexible for both small-scale scripts and enterprise-grade deployments.
What You Get
- Cron Job Monitoring - Healthchecks listens for HTTP pings or email messages from cron jobs and scheduled tasks. You define expected intervals (Period) and grace periods before alerts trigger, ensuring you’re notified only when a job is truly late or failed.
- Cron Expression Support - Instead of fixed intervals, you can define complex schedules using standard cron expressions (e.g., ‘0 2 * * *’) via the cronsim library, enabling precise scheduling for daily, weekly, or custom jobs.
- Status Badges - Generate public, hard-to-guess status badges (PNG/SVG) for each check to embed in READMEs, dashboards, or status pages—ideal for showing job health to stakeholders without exposing internal details.
- 25+ Notification Integrations - Receive alerts via email, Slack, PagerDuty, Discord, Microsoft Teams, Pushover, SMS (via Twilio), and more—configurable per check or globally.
- Team Management & Projects - Organize checks into projects and assign team members with read-only or full access, enabling collaboration across DevOps and development teams.
- WebAuthn 2FA Support - Enforce two-factor authentication using the WebAuthn standard (FIDO2), enhancing security for admin and user accounts without relying on TOTP apps.
- SMTP-based Pinging - Ping checks by sending emails to unique email addresses (e.g., UUID@your-domain.com), allowing monitoring of jobs that can only send mail, not make HTTP calls.
- Self-Hosted with Docker Support - Deploy using pre-built Docker images or manually install via Python/Django, with full control over configuration via environment variables and local_settings.py.
- Django Admin Panel - Access full administrative control to manage users, passwords, rate limits, and database records via Django’s built-in admin interface.
- Monthly/Weekly Reports - Automatically send summary reports on job health via email, helping teams track reliability trends over time.
Common Use Cases
- Building a production cron job monitoring system - A sysadmin running 50+ nightly data processing jobs on a Linux server uses Healthchecks to monitor each job via curl pings. When a job fails, alerts are sent to Slack and email, reducing mean time to detect (MTTD) from hours to seconds.
- Creating a multi-tenant SaaS dashboard with job status badges - A SaaS provider embeds Healthchecks status badges in their customer portal to show real-time job health for data syncs, backups, and report generation—improving transparency and trust.
- Problem: Missing alerts from failed backups → Solution: Healthchecks with email pings - A team’s backup script only supports sending emails. They configure Healthchecks’ SMTP listener to receive pings from the backup script’s notification email, triggering alerts if no ping arrives for 24 hours.
- DevOps teams managing microservices across multiple cloud providers - DevOps engineers deploy Healthchecks internally to monitor health checks from services in AWS, GCP, and on-premises. They use team projects to separate environments (dev/staging/prod) and assign owners per check.
Under The Hood
The project is a robust open-source service monitoring solution designed to track uptime and provide flexible alerting mechanisms. It emphasizes practicality and ease of use while supporting a wide range of notification channels and deployment options.
Architecture
This project follows a monolithic architecture aligned with Django’s MVC-like structure, ensuring clear separation of concerns across modules.
- Modular organization with distinct components for user management, API handling, and administrative tools
- Custom middleware and admin classes that enhance functionality and user experience
- Use of management commands for background task automation and system maintenance
Tech Stack
Built primarily with Python and Django, the project leverages a mature ecosystem to deliver its monitoring capabilities.
- Reliance on Django and its ecosystem for web development, ORM, and authentication
- Integration of Django REST Framework and third-party libraries for API and task handling
- Adoption of Docker for containerization and streamlined deployment workflows
- Utilization of Django’s native testing tools alongside custom automation scripts
Code Quality
Code quality is moderate, reflecting a balance between functionality and structural consistency.
- Functional completeness with some evidence of accumulated technical debt
- Standard Python and Django conventions are followed, though with occasional inconsistency
- Limited test coverage and minimal automated validation across the codebase
- Type annotations are present, offering some clarity but not comprehensive documentation
What Makes It Unique
This project distinguishes itself through a thoughtful blend of simplicity and extensibility in service monitoring.
- Designed for minimal configuration to begin monitoring services, prioritizing ease of adoption
- Offers built-in support for various notification channels and extensible webhook integrations
- Implements intelligent handling of flapping checks and grace periods to reduce alert noise
- Focuses on developer experience with clear documentation, Docker support, and well-defined testing practices