Skip to content

Uptime monitoring (Uptime Kuma)

Dashboard: https://status.rafaelgonzalezalbes.com

Kuma runs on the VPS as part of the devops Docker stack. Monitor definitions live in git at uptime-kuma/monitors.manifest.json and are applied with scripts/setup-kuma-monitors.sh.

What is monitored

Group Monitor Type Target
Platform Forgejo (Git) HTTP https://git.{domain}
Platform Woodpecker (CI) HTTP https://ci.{domain}
Platform Plane (PM) HTTP https://pm.{domain}
Platform Uptime Kuma (self) HTTP internal :3001
Platform Plane MCP HTTP https://mcp.{domain}/http/mcp
Platform Plane Forge Bridge HTTP https://bridge.{domain}
Platform Platform Docs HTTP https://docs.{domain}
Platform VPS (ping) Ping VPS public IP
Platform VPS HTTPS (TCP 443) TCP VPS :443
Applications BioScanCheck API TCP VPS :3100 (after backend deploy)
External Open Food Facts API HTTP OFF sample product JSON

Edit uptime-kuma/monitors.manifest.json when you add apps or DNS names, then re-run the setup script.

First-time setup

  1. Open https://status.rafaelgonzalezalbes.com and complete the Kuma admin account.

  2. Quick seed (no API password) — on the VPS:

ssh bioscan-vps
cd /opt/devops
bash scripts/seed-kuma-monitors.sh
  1. API-based apply — set credentials in local/.env:
KUMA_USER=rafael.gonzalez.albes
KUMA_PASSWORD=your-kuma-login-password

Then on the VPS after sync-to-server.sh:

KUMA_PASSWORD='...' bash scripts/setup-kuma-monitors.sh

Both scripts are idempotent: existing monitor names are skipped.

In the Kuma UI → Settings → Notifications:

  1. Add Email, Discord, Telegram, or Webhook
  2. Attach the notification to all platform monitors
  3. Set retry / resend intervals per your on-call preference

Public status page (optional — off by default)

Status pages are unpublished after lockdown-platform.sh.

bash scripts/seed-kuma-status-page.sh   # PUBLISH=0 by default

Add a monitor for a new app

  1. Deploy the app and DNS ({app}-api.{domain} per Architecture overview)
  2. Add an entry under Applications in uptime-kuma/monitors.manifest.json
  3. Re-run bash scripts/setup-kuma-monitors.sh

Troubleshooting

Symptom Check
mcp.* down Run bash scripts/bootstrap-plane-platform.sh on VPS
docs.* down Check nginx container; re-run Woodpecker deploy on infra/devops
bridge.* shows 404 Normal for root path — monitor accepts 404
BioScanCheck API down Expected until backend is deployed on :3100
Cannot reach Kuma from PC Run scripts/fix-dns-local.ps1 as Administrator

List current monitors:

bash scripts/kuma-query-monitors.sh   # on VPS, or via infra-ops MCP