What to build
hal0-api currently runs as root on 0.0.0.0:8080 with no in-app gate. Decision (audit Q3.2): run the service as the existing non-root hal0 nologin system user, keep the 0.0.0.0 bind (zero-config LAN dashboard), and document loudly that any non-loopback/internet exposure requires a reverse proxy in front (Traefik / nginx / Cloudflare Tunnel), matching ADR-0012.
Pointers: installer/install.sh:160,640,643. Audit Q3.2.
Acceptance criteria
Blocked by
None - can start immediately
What to build
hal0-api currently runs as root on 0.0.0.0:8080 with no in-app gate. Decision (audit Q3.2): run the service as the existing non-root
hal0nologin system user, keep the 0.0.0.0 bind (zero-config LAN dashboard), and document loudly that any non-loopback/internet exposure requires a reverse proxy in front (Traefik / nginx / Cloudflare Tunnel), matching ADR-0012.Pointers:
installer/install.sh:160,640,643. Audit Q3.2.Acceptance criteria
hal0user, not roothal0user can read config/stateBlocked by
None - can start immediately