Tiny Uptime-Kuma-style demo for exercising SudoOps: three services — frontend, backend, db.
Add a URL, the backend polls it on an interval, and the UI shows up/down + latency history.
| Service | Role | Port |
|---|---|---|
frontend |
React UI (nginx in Docker) | 8080 |
backend |
Express API + HTTP checker loop | 4000 |
db |
Postgres 16 | 5432 |
Without DATABASE_URL, the backend uses a local JSON file store (data.json) so you can develop without Postgres. Compose / Railway still use the real db Postgres service.
cd backend && npm install && npm run dev
# other terminal
cd frontend && npm install && npm run devdocker compose up --buildGET /api/healthGET /api/monitorsPOST /api/monitors{ "name", "url", "interval_sec" }DELETE /api/monitors/:idGET /api/monitors/:id/checks
Deploy as three services:
- Postgres plugin / database service
- backend from
./backendwithDATABASE_URL - frontend from
./frontend— either proxy/apito backend, or setVITE_API_BASEto the backend public URL at build time