Deploy Cron Sentinel: Healthchecks [Oct '26]
Pinned Healthchecks plus private Postgres. No required variables.
Just deployed
/var/lib/postgresql/data
healthchecks
Just deployed
Deploy and Host Cron Sentinel on Railway
Cron Sentinel is a self-hosted monitor for cron jobs and backups. A job pings a URL when it finishes. If the ping is late or fails, you get an alert.
It runs the Healthchecks image, pinned to v4.4, with PostgreSQL. This template is not affiliated with the Healthchecks project.
About Hosting Cron Sentinel
- Healthchecks listens on the public Railway domain. The database has no public port.
- PostgreSQL 18 keeps check history on a volume.
PGDATAis a subdirectory of that volume, so the first boot can initialize the database. - Signup is closed. The first boot creates one admin. The email is
admin@cron-sentinel.localunless you changeADMIN_EMAIL. The password is the generatedADMIN_PASSWORDon the Healthchecks service. SECRET_KEYandADMIN_PASSWORDare generated for each new deploy.- Apprise is on, so Telegram, Discord, Slack, ntfy, and webhooks work without SMTP.
Why Deploy Cron Sentinel
Use this when you want cron monitoring without filling in required fields, without a public database, and without open registration. Pinning v4.4 keeps the start command and health check on a known image.
Common Use Cases
- Nightly backups, billing jobs, and other scheduled tasks
- A ping URL at the end of a script, plus
/failwhen the script errors - Alerts to Telegram, Discord, Slack, ntfy, or a webhook
Do not use it as a website uptime monitor. It watches schedules, not homepages.
Dependencies for Cron Sentinel
No required variables. Optional pieces:
- SMTP (
EMAIL_HOST,EMAIL_HOST_USER,EMAIL_HOST_PASSWORD,EMAIL_PORT) if you want email alerts. Many hosts block port 25. Port 587 is the usual choice. - A Telegram bot token (
TELEGRAM_TOKENandTELEGRAM_BOT_NAME) if you want the built-in Telegram integration. Other chat apps can use an Apprise URL from the dashboard instead.
Deployment Dependencies
After deploy:
- Open the Healthchecks URL.
- Sign in with
ADMIN_EMAILandADMIN_PASSWORDfrom the Healthchecks service variables. - Open My First Check and copy its ping URL.
- Call that URL at the end of the job:
curl -fsS -m 10 --retry 5 -o /dev/null https://YOUR-DOMAIN/ping/YOUR-CHECK-UUID
Use /start before the job and /fail on the error path when you also want runtime and failure pings.
Changing SECRET_KEY later signs everyone out. The database stays private on purpose.
Docs for checks and integrations: https://healthchecks.io/docs/
Template Content
healthchecks
healthchecks/healthchecks:v4.4
