Ctrl K
ComunidadGuías…

README.md

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Uptime Zero

**Simple self-hostable uptime monitoring, built to run on Cloudflare.**

Uptime Zero is heavily inspired by [Uptime Kuma](https://github.com/louislam/uptime-kuma) and [OpenStatus](https://github.com/openstatusHQ/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](https://uptime-zero-demo.anyranges.workers.dev/).

```txt
Email: admin@gmail.com
Password: AdminPass24!
```

## Preview

![Uptime Zero admin overview dashboard](docs/assets/admin-overview.png)

## ✨ 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](docs/deployment.md). The code layout and its rules are in [docs/architecture.md](docs/architecture.md).

For the short version, install dependencies, set the auth secrets, and deploy with [Void](https://void.cloud):

```sh
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:

```sh
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