Skip to content

Deployment verification

Checks to run after any installation or upgrade. All commands are real.

Service health

docker compose ps          # all services Up; db/backend report (healthy)
curl -s http://localhost:3000/api/health
# {"status": "ok"|"degraded", ...} — checks database and Redis connectivity

Inside the stack: docker logs umbryx_backend --tail 50 should show migrations applied and Uvicorn started, with no tracebacks.

First login

  1. Open http://<host>:3000 — the login screen loads (the SPA is served by the nginx container).
  2. First run: create the administrator account (or log in with the ADMIN_* credentials you set).
  3. GET /api/auth/status before setup returns {"initialized": false} — a quick way to script the check.

Functional smoke test

After logging in:

  1. Create a project (sidebar → New project) — you become its owner.
  2. Add a scope entry (Scope tab).
  3. Infra → Connections → add an attacker SSH target (a reachable box with nmap installed).
  4. Recon → Scans → Nmap → target a host in scope → Run.
  5. Jobs shows the job running with live output; when done, Hosts contains the discovered host and ports.

Edition check

curl -s -H "Authorization: Bearer <token>" http://localhost:3000/api/system/edition
# {"edition": "ce" | "ee", ...}

In EE also check GET /api/system/license/state — the tier, features and lifecycle stage (active) are reported there.

What "healthy" looks like

Check Expected
docker compose ps 5 services Up, db/backend (healthy)
/api/health {"status": "ok"}
Login 200, session cookie set
Scan job progresses queued → running → done (requires an attacker target)
WebSocket live updates arrive (badges, presence) — see Troubleshooting if behind a proxy