Simple self-hostable uptime monitoring, built to run on Cloudflare.
Uptime Zero is heavily inspired by Uptime Kuma and OpenStatus, but built for people who want a simple monitor dashboard, public status pages, and webhook alerts without keeping a separate server around.
Warning
Uptime Zero is still early-stage software. Expect breaking changes, rough edges, and missing pieces while the project is actively taking shape.
Try the hosted demo at uptime-zero-demo.anyranges.workers.dev.
Email: admin@gmail.com
Password: AdminPass24!- HTTP and DNS uptime monitors
- Public status pages for sharing service health
- Incident history from monitor state changes
- Webhook alerts when monitors change state
- Configurable retention for monitor checks and incidents
- Cloudflare-native runtime with Workers, D1, and cron triggers, deployed with Void
The full deployment guide is in docs/deployment.md. The code layout and its rules are in docs/architecture.md.
For the short version, install dependencies, set the auth secrets, and deploy with Void:
pnpm install
pnpm void secret put BETTER_AUTH_SECRET
pnpm void secret put BETTER_AUTH_URL
pnpm run deployAfter deploy, open /setup on your Worker URL and create the first admin account.
Put local secrets in .env (see env.ts), for example BETTER_AUTH_SECRET= with a random value, then:
pnpm install
pnpm run db:migrate
pnpm run devThe app runs in the local Workers runtime on http://localhost:5173. Crons don't fire locally; the dev server prints a curl command that triggers them through /__void/scheduled.
void db commands use the local database the dev server last started with. E2E runs (pnpm e2e) use their own database in .void/e2e-state, so start pnpm run dev once before running pnpm run db:migrate again afterwards.
- Cloudflare Workers
- Cloudflare D1
- Void
- React 19
- TanStack Start (SSR, server functions, server routes)
- TanStack Query
- Drizzle ORM
- Zod
- Better Auth
- shadcn/ui
