Admin UI & API
Lighthouse ships a web console and a REST API for management, served by lighthouse-mgmtd, plus a
CLI and a Prometheus metrics endpoint on the engine.
Web console
Browse https://lighthouse.local:31074 (or https://127.0.0.1:31074) and sign in. Pages:
| Page | What it does |
|---|---|
| Dashboard | Pool utilization, active leases, NAK/error rates, engine health. |
| Leases | Searchable live lease table; release or clear leases; DNS name + DDNS status; per-device notes and DNS-name overrides. |
| Activity | Durable, paginated lease-event history. |
| Subnets | View subnets, pools, and options. |
| Reservations | Create, edit, and delete host reservations. |
| Logs | Recent engine log lines. |
| Users (admin) | Local accounts and roles. |
| Settings (admin) | Structured config editor — server, lease timings, logging, DDNS, DHCPv6, HA, classes, subnets (plus raw-TOML mode). |
| System (admin) | Start / stop / restart the engine, host static IP, HA peer status, and a factory reset. |
Roles: admin (everything), operator (leases, reservations, logs), viewer (read-only).
REST API
The management API is under /api/v1 on the same host, with cookie-session auth and server-side
RBAC. Key routes:
| Route | Purpose |
|---|---|
POST /api/v1/auth/login · /logout · GET /me | Session. |
GET /api/v1/leases · DELETE /api/v1/leases/{ip} | View / release leases. |
GET/POST /api/v1/reservations · DELETE /{ip} | Manage reservations. |
GET/PUT /api/v1/config · /config/full | Read / write config (raw TOML or structured JSON). |
GET /api/v1/logs · /lease-events | Logs and lease-event history. |
GET /api/v1/engine/status · POST /engine/{start,stop,restart} | Engine control. |
GET /api/v1/dashboard · GET /healthz | Dashboard data, health. |
CLI
The lighthouse CLI talks to the engine's local control API:
lighthouse health # engine health
lighthouse leases # active leases
lighthouse release <ip> # free a lease
Add --url / --token to reach a control API on a non-default address or one protected by a
bearer token.
Metrics
The engine exposes Prometheus metrics when [server] metrics_listen is set (e.g.
127.0.0.1:9100) — scrape GET /metrics. Counters include packets received, parse errors,
DISCOVER/REQUEST/OFFER/ACK/NAK totals, send errors and drops, plus gauges for active leases.