Uptime Guard
Uptime monitor for websites, ports, DNS, certificates and cron jobs, with Telegram alerts and public status pages
Uptime Guard dashboard for a Production project with one service down, one warning and the recent checks of each service
Uptime Guard is a single Cloudflare Worker that runs its checks from a one-minute cron trigger and keeps the results in D1. The same Worker serves a React dashboard that asks for a password and an authenticator code at login. A Deploy to Cloudflare button sets it up, and the app creates its database tables on the first request.
HTTP monitors check the status code and can also require a keyword or a JSON field value in the response. TCP monitors open a socket to a host and port. DNS monitors query Cloudflare's DNS-over-HTTPS resolver and can expect a specific record value. By default, certificate monitors warn 14 days before expiry and domain monitors 30 days before. Domain dates come from RDAP lookups through rdap.org. A heartbeat monitor gives a cron job or backup script its own /ping URL and goes down when no ping arrives within the grace window. Script monitors handle flows that need more than one request, such as logging in and then reading an authenticated endpoint. A script chains up to 10 requests in a declarative line format, passes captured values like a token to later steps and asserts on status, response time, body text or JSON fields. The first failed assertion marks the monitor down and names the step. The dashboard offers check intervals of 1, 5 or 15 minutes or once a day. A failed check is retried twice, three seconds apart, before the monitor counts as down. Telegram receives the down alert, reminders at widening gaps of 5, 10, 20 and 40 minutes and then hourly, and a recovery message with the total downtime. Web Push delivers the down and recovery alerts to subscribed browsers, and the dashboard can be installed as a PWA. Each monitor shows uptime over 24 hours and over 7, 30 and 90 days, plus incident history and mean time to recovery. Raw check history is pruned after 60 days by default, while daily totals rolled up at 03:00 UTC keep the 90-day figures. Each project can publish a read-only status page at a random address that lists each monitor's name, status and 90-day uptime, and the same data is available as JSON. The live demo linked from the README holds read-only sample data.
Built for: Solo developers and homelab owners who want uptime, certificate and cron-job alerts from their own Cloudflare account, managed through one owner login.
What you can use it for
- Get a Telegram alert when a website, API or database port stops responding
- Catch an expiring TLS certificate or domain registration before it lapses
- Find out when a backup script or cron job stops checking in
- Run a login-then-fetch check against an authenticated API every few minutes
- Share a public status page for a side project's services
Deploy
One-click
Branch main
The button's build creates the D1 database and builds the dashboard before deploying the Worker. If the setup screen shows npx wrangler deploy as the deploy command, the README says to change it to npm run deploy, which prints the dashboard URL at the end of the build log.
The Deploy button asks for no secrets. On the first visit, a wizard sets an owner password and pairs an authenticator app. Telegram alerts are set up later in Settings with a bot token and chat ID. Web Push needs a VAPID key pair added as the VAPID_PUBLIC and VAPID_PRIVATE secrets.
What it needs to run
- D1 databasesuptime-guard
Also uses
- Telegram Bot API (optional): Sends down, reminder and recovery alerts through a Telegram bot
Good to know
Uptime Guard has a single owner account, with no extra users or teams. The README notes that checks pause if Cloudflare itself has an outage. Alerts go only to Telegram and Web Push; the README lists email, Slack, Discord and maintenance windows as roadmap items. Certificate monitors cannot read certificates from hosts behind Cloudflare's proxy, because a Worker cannot open a raw socket to Cloudflare's edge. Those hosts show a CF Protected state instead of an expiry date. Certificate monitors also need the server to accept TLS 1.2. The README's fix for a lost authenticator is deleting the totp_secret row from D1 with Wrangler. The repository was created on August 3, 2026 and has one contributor. Its three releases, the latest v1.0.0-beta.3 from September 25, 2026, are all betas. The release notes say interfaces and the data model may still change, and they ask users to back up D1 before upgrading.
Cost on Cloudflare
Depends on usage
The README says Uptime Guard fits Workers Free for a typical fleet. It uses two of the five Cron Triggers that plan allows per account. Each check writes at least three D1 rows, so one monitor on a one-minute interval writes at least 4,300 rows a day against D1 Free's limit of 100,000. While the dashboard is open in a visible tab, it refreshes every 30 seconds and recounts each monitor's last 24 hours of checks, which reads far more rows than the checks write. D1 Free allows 5 million rows read a day. Past either daily limit, queries fail until midnight UTC.
The estimate is based on Cloudflare’s documented limits and the app’s configuration. What you pay depends on your usage and plan.
Where this comes from
- Repositoryhttps://github.com/CalmRay-Solutions/uptime-guard
- App websitehttps://vigil-demo.calmray.team
An alternative to Better Stack, Cronitor, Dead Man's Snitch, Freshping, Healthchecks.io, HetrixTools, Hyperping, NodePing, Oh Dear, Pingdom, Site24x7, StatusCake, updown.io, Uptime.com, UptimeRobot.
Listing history
- Oct 6, 2026 · Uptime Guard listed
Similar apps
All Uptime & Monitoring apps
Serverless uptime monitor and status page with HTTP, TCP and keyword checks, deployed through GitHub Actions
- Deploy
- Manual
- License
- Apache-2.0
- GitHub stars
- 3.9k stars
- Last commit

Server monitoring with a reporting agent on each machine, a live dashboard, seven-day history and offline alerts
- Deploy
- One-click
- License
- MIT
- GitHub stars
- 2.4k stars
- Last commit

Uptime monitor and status page with HTTP and TCP checks, incidents and webhook alerts, on Workers, Pages and D1
- Deploy
- Manual
- License
- MIT
- GitHub stars
- 481 stars
- Last commit