status page

tower

tower tells you when a service stops answering. It checks from outside, shows a public status page, mails once when something goes down and once when it comes back, and runs on Cloudflare, so there is no server to keep.
WHY · YOU HEAR WHEN A SERVICE STOPS ANSWERING; THE PUBLIC SEES ONLY NAMES AND STATUS ACTORS OUTSIDE TOWER · ON YOUR CLOUDFLARE ACCOUNT 1 2 3 4 5 6 7 deploys checks records posts asks over RPC mails serves one JSON config from outside beats, incidents hands over, reads status with the reason names, status only operator jobs, alert sources visitors page Worker prober D1 watched services inbox you the public serves the page and /api/status cron checks the prober no D1, no secrets cron each minute holds hosts, reasons the only one on D1 history daily digest POST /beat POST /relay/incident http · tcp · dns · tls via send_email DOWN · UP FIRING · RESOLVED WHY · YOU HEAR WHEN A SERVICE STOPS ANSWERING; THE PUBLIC SEES ONLY NAMES AND STATUS ACTORS OUTSIDE TOWER 1 2 3 4 5 6 7 deploys checks records posts asks over RPC mails serves one JSON config from outside beats, incidents hands over, reads status with the reason names, status only operator visitors jobs, alerts page Worker prober D1 watched services inbox you the public serves the page and /api/status cron checks the prober · no D1, no secrets cron each minute · holds hosts, reasons the only one on D1 history daily digest POST /beat /relay/incident http · tcp · dns · tls via send_email DOWN · UP FIRING · RESOLVED

The operator deploys one config file to Cloudflare. The public sees names only; failure detail goes to the inbox.

1 · check

Checks from outside

Each minute the prober tests whatever is due: a web address, a port, a DNS name, a certificate, or a job that reports in. Every check runs from Cloudflare, outside your own network.

2 · mail

One mail per change

An http, tcp, dns or tls check goes down only after it fails a set number of runs in a row. A heartbeat goes down at its first missed deadline. tower mails once, and once more on recovery.

3 · watch

Watches itself

tower mails when a check stops producing results or probing stalls. A daily digest covers the day both Workers are down: a missing digest is the alarm.

A probed check changes state only after several runs in a row agree, and each change queues one mail that is retried on each run.

fail limit pass limit DOWN UP STATE up runs pass STILL UP failing runs fail until down_after STATE down DOWN mail STILL DOWN passing runs pass until up_after STATE up again UP mail OUTBOX one mail per change retried each run fail limit pass limit DOWN UP STATE up runs pass STILL UP failing runs fail until down_after STATE down DOWN mail STILL DOWN passing runs pass until up_after STATE up again UP mail OUTBOX one mail per change retried each run
PROBER holds it all checks, results CROSSES names, status uptime, times PUBLIC page and API /api/status STAYS BEHIND addresses urls, hosts, ports failure reasons PRIVATE mail and log reasons go here PROBER holds it all checks, results CROSSES names, status uptime, times PUBLIC page and API /api/status STAYS BEHIND addresses urls, hosts, ports failure reasons PRIVATE mail and log reasons go here

The public page shows names only: each public check with its status, how long it has held it, uptime and response times. Addresses, ports and failure reasons stay in the prober, and a reason reaches only the alert mail and the log. A check that has not run recently reads as unknown, so a stopped timer cannot leave a green page.

Architecture

Each mechanism in figures, from a check's life to what happens when tower itself fails.

Install

The commands to deploy tower and set up alerts, heartbeats and relays.

Source

Shared as-is: no roadmap, no support promise.