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¶
-
Open https://status.rafaelgonzalezalbes.com and complete the Kuma admin account.
-
Quick seed (no API password) — on the VPS:
ssh bioscan-vps
cd /opt/devops
bash scripts/seed-kuma-monitors.sh
- 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.
Notifications (recommended)¶
In the Kuma UI → Settings → Notifications:
- Add Email, Discord, Telegram, or Webhook
- Attach the notification to all platform monitors
- 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¶
- Deploy the app and DNS (
{app}-api.{domain}per Architecture overview) - Add an entry under
Applicationsinuptime-kuma/monitors.manifest.json - 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