Skip to content

Latest commit

 

History

102 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Uptime Zero

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.

Live Demo

Try the hosted demo at uptime-zero-demo.anyranges.workers.dev.

Email: admin@gmail.com
Password: AdminPass24!

Preview

Uptime Zero admin overview dashboard

✨ Features

  • 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

🚀 Deploy

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 deploy

After deploy, open /setup on your Worker URL and create the first admin account.

🛠️ Local Development

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 dev

The 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.

🧱 Stack

  • Cloudflare Workers
  • Cloudflare D1
  • Void
  • React 19
  • TanStack Start (SSR, server functions, server routes)
  • TanStack Query
  • Drizzle ORM
  • Zod
  • Better Auth
  • shadcn/ui

Releases

Contributors

Languages