my own status page

status#

super simple cf worker based uptime / status dashboard running infra.dunkirk.sh.

The canonical repo for this is hosted on tangled over at dunkirk.sh/status

API#

GET /api/status#

Overall summary with all machines and services.

{
  "ok": true,
  "status": "up",
  "last_check": 1741900245,
  "machines": [{
    "name": "orion",
    "hostname": "orion",
    "type": "server",
    "online": true,
    "status": "up",
    "services": [{
      "id": "l4",
      "status": "up",
      "latency_ms": 42,
      "uptime_90d": 99.84
    }]
  }]
}

GET /api/status/overall#

Lightweight overall summary.

{
  "ok": true,
  "status": "up",
  "uptime_90d": 99.84,
  "services_total": 20,
  "services_monitored": 16,
  "machines_total": 4
}

GET /api/status/service/:id#

Single service status.

{
  "id": "l4",
  "status": "up",
  "latency_ms": 42,
  "uptime_90d": 99.84
}

GET /api/status/machine/:name#

Machine and all its services.

{
  "name": "orion",
  "hostname": "orion",
  "type": "server",
  "online": true,
  "status": "up",
  "services": [{
    "id": "l4",
    "status": "up",
    "latency_ms": 42,
    "uptime_90d": 99.84
  }]
}

GET /api/uptime/:service_id#

Hourly uptime buckets for a service. Optional ?window=<days> param (default: 90).

{
  "service_id": "l4",
  "window_hours": 2160,
  "buckets": [{
    "timestamp": 1741896000,
    "status": "up"
  }]
}

Status values: up · degraded · down · partial · timeout · misconfigured · unknown

Badges#

/badge                        # overall infra status
/badge/overall                # same as above
/badge/service/:id            # single service
/badge/machine/:name          # machine status

Query params:

Param Description Example
style flat (default) or for-the-badge ?style=for-the-badge
colorA Label background (hex) ?colorA=363a4f
colorB Value background (hex) ?colorB=b7bdf8
label Override label text ?label=my+service

Setup#

bun install
wrangler d1 create status-db
wrangler kv namespace create KV
# update wrangler.toml with the IDs
bun run db:migrate:local
wrangler secret put TAILSCALE_API_KEY
bun run dev

Deploy#

bun run deploy
bun run db:migrate

© 2026-present Kieran Klukas