A small, self-hosted uptime monitor and public status page for Cloudflare Workers. Uppa checks up to 40 HTTP/HTTPS endpoints once per minute and stores uptime, latency history, and incidents in D1.
You need a Cloudflare account and Bun 1.3 or later.
git clone https://github.com/jewei/uppa.git
cd uppa
bun install
bun run setupThe interactive setup command:
- authenticates Wrangler;
- creates or reuses the
edge-uptimeD1 database; - asks for the public site name and description;
- applies the database migrations;
- deploys the Worker, static status page, and minute schedule;
- optionally configures a webhook and the first monitor.
Each remote change requires confirmation. You can run bun run setup again if
you stop before it finishes.
Add a monitor to the deployed database:
bun run monitor -- add --remoteList monitors with private URLs redacted:
bun run monitor -- list --remoteView all monitor commands:
bun run monitor -- --helpUppa has no browser administration or authentication system. A trusted operator uses this local CLI to manage monitors. Remote and destructive commands require confirmation.
- Each enabled monitor receives one fixed GET request per minute.
- Two consecutive failures confirm an outage.
- One successful check confirms recovery.
- The public page shows status, uptime, latency history, and recent incidents.
- An optional generic webhook reports confirmed status changes.
- Monitor URLs and webhook values never appear in public responses.
See SPEC.md for the complete product contract and CONTEXT.md for domain terminology.