Files in directory scripts/probe from the latest check-in
quarry-probe
Cloudflare Worker that watches the forge from outside the host. Cron every minute:
GET https://zeitforge.app/api/v1/version (10 s timeout; healthy = 200 and ready:true), and when
healthy GET /r/quarry/timeline.
- Down: alert after 2 consecutive unhealthy checks, once per incident, then a recovery mail with the outage length.
- Up but broken: timeline answers 5xx twice in a row with a healthy version endpoint. A 503 within 3 minutes of a version change (a deploy restart) is ignored.
GETon the Worker URL returns its current state as JSON (no secrets).
Alerts go out as text plus an HTML card in quarry's email design (src/card.js, the application variant: the Q logo from zeitforge.app and the word QUARRY as text, whose alt text carries the name when the forge is down).
Logic lives in src/logic.js as pure functions; npm test runs node --test with no network.
Deploy
cd scripts/probe && npm installnpx wrangler kv namespace create PROBE_STATE, paste the id intowrangler.toml.- Confirm craftdesign.group is enabled for Email Sending:
npx wrangler email sending list. Do not enable Email Routing; it rewrites MX records. ALERT_TOandALERT_FROMinwrangler.tomlare already set (ALERT_FROMmust be on the onboarded domain); thesend_emailbinding has nodestination_address.npx wrangler deploy- Open the
workers.devURL and confirm the JSON state updates each minute.