Prerequisites

  • Go 1.24+ for CLI build targets.
  • Node 24.x only when running frontend verification commands.
  • Local shell access with permission to run make and execute ./bin/mel.
  • Port 8080 available for local mel serve.

Day 0 run path

shell — initialize and serve
make build
./bin/mel init --config .tmp/mel.json
chmod 600 .tmp/mel.json
./bin/mel doctor --config .tmp/mel.json
./bin/mel serve --config .tmp/mel.json

Open http://127.0.0.1:8080 and verify status, transport state clarity, and incident queue visibility.

What first success looks like

Verify these before investing further in configuration.

  • mel serve stays running with no crash loop.
  • The embedded console loads on 127.0.0.1:8080.
  • Health endpoints respond: /healthz, /readyz, and /api/v1/status.
  • If no transports are connected yet, state shows as warning/degraded— not “healthy.” This is correct behavior.

Triage when first run fails

shell — fast triage checks
./bin/mel doctor --config .tmp/mel.json
curl -fsS http://127.0.0.1:8080/healthz
curl -fsS http://127.0.0.1:8080/readyz
curl -fsS http://127.0.0.1:8080/api/v1/status
  • Permission errors: confirm config file permissions are locked down (chmod 600).
  • Port conflicts: stop the process already using 8080, then rerun mel serve.
  • Doctor warnings on fresh installs are expected until real transports are connected.

Fixture-backed mode

Use this path when evaluating the UI without active devices. It is simulation data, not live transport proof.

shell — deterministic demo seed
make demo-seed
./bin/mel serve --config demo_sandbox/mel.demo.json

Fastest first-proof command

shell — first proof
make first-proof
./bin/mel serve --config demo_sandbox/mel.first-proof.json

This path writes deterministic evidence artifacts and seeded records so operators can validate incident and control workflows without claiming live RF routing or unsupported ingest surfaces.

Caveats and first-run expectations

  • mel doctor may report warnings on fresh installs with no configured transports.
  • /healthz is liveness only; use readiness and status endpoints for runtime truth.
  • BLE ingest and HTTP ingest are currently unsupported — they should remain labeled unsupported.
  • MEL is not the RF routing stack; do not treat fixture mode as propagation proof.

Next steps