Healthchecks
Cron job and scheduled task monitoring
https://git.9wd.eu/apps/cloudron-healthchecks/raw/branch/release/CloudronVersions.json
Description
Healthchecks monitors cron jobs, backups and any other scheduled task that is supposed to run on a schedule. Each job gets a unique ping URL and calls it when it finishes. When a ping does not arrive on time, Healthchecks alerts you - it watches for the job that silently stopped running, which no error report will ever tell you about.
Schedules are defined as a simple period plus a grace time, or as a cron or systemd OnCalendar expression. Jobs can also report when they start and whether they failed, so the interface shows run durations, exit codes and captured output next to each check.
Notifications go out over 25+ integrations, among them email, Signal, Telegram, Slack, Discord, Matrix, ntfy, Gotify, Pushover, PagerDuty, Opsgenie, webhooks and Apprise. A REST API, Prometheus metrics and signed status badges are built in, as are projects, team members, read-only access and WebAuthn two-factor authentication.
On Cloudron this package runs the web interface, the alerting daemon and the report sender in one container, with checks, pings and notifications stored in the app's PostgreSQL database. Cloudron accounts can be used to log in, while ping URLs, the API and status badges stay reachable without a session, so scripts and monitoring dashboards keep working.
Healthchecks is BSD 3-Clause licensed.
Packaging source: https://git.9wd.eu/apps/cloudron-healthchecks
Recent Changes
Bake in optional branding: a custom logo in the static files and a brand prefix on the Apprise notification title. Point SITE_LOGO_URL at the baked logo (or any absolute URL) and set SITE_NAME / MASTER_BADGE_LABEL in env.sh to use them; env.sh gains commented examples for these and the Matrix integration.
Support alias domains (manifest multiDomain). Pings, the API and badges then work on every domain assigned to the app, not just the primary one; each alias is added to ALLOWED_HOSTS so Django accepts its Host header. SITE_ROOT stays the primary domain, so generated ping URLs and emails are unchanged.



