monitor · Cloudflare Worker · cron */5 · D1
All good
Checks the server and the websites every five minutes and pings me on Telegram when something goes down, fills up or falls behind on patches.
Checks simulation
- VPS heartbeat2 min ago
- hacercervezacasera.com200 · 180 ms
- DomainsRDAP · ok
- Disk38 %
- Backups9 h ago
- Patchesup to date
The watchdog does not live on the server: if the VPS dies, the Worker stops receiving heartbeats and raises the alarm itself.
How it is built
A systemd timer sends disk, memory, load, containers, services and backup age every 5 min. Once a day, the version inventory.
Cron every 5 min: checks the public websites, heartbeat age and domains; matches versions against OSV.dev and endoflife.date; stores incidents.
Critical and review alerts, reminders, a weekly summary on Mondays and commands to ask questions.
What is inside
- The watchdog lives outside the server, in a Worker with D1: if the server dies, the alert still goes out.
- A Python agent sends a heartbeat with disk, memory, containers and backup status.
- Checks installed versions against OSV.dev and endoflife.date.
- A Telegram bot with a weekly summary, and an SEO dashboard fed by Search Console.
Built with
- Cloudflare Workers
- D1
- TypeScript
- Python
- systemd
- Telegram
It is for personal use and sits behind Cloudflare Access: there is no public link. The mock-ups on this page use sample data.