Reference forge dashboard service

The forge dashboard runs as forge-dashboard.service on Console (the dev VM). It listens on port 8099 and is reverse-proxied to dashboard.justinsforge.com.

Script: scripts/forge_dashboard_serve.sh — initial render, spawns a 30-second regen loop as a background child, then execs python3 -m http.server 8099 so systemd tracks the HTTP server as main PID. Regen loop dies with the service via cgroup KillMode.

Unit: /etc/systemd/system/forge-dashboard.service — modeled on forge-mkdocs.service (Type=simple, Restart=on-failure, same User/Group, hardening flags). Enabled and started.

Access: Cloudflare Access app "Forge Dashboard" (id b929e82e-763a-4980-b9ef-ba4c4cea00a1) on dashboard.justinsforge.com using the Justin Secure Only reusable policy. Every other *.justinsforge.com subdomain is also gated — maintain parity.

History: Prior to 2026-04-28 the dashboard had a manual serve.sh (PID-file based, not systemd-friendly) that was not under persistent supervision and had died. Fixed by creating the proper systemd unit.

[Claude Code]

[auto-memory session e0097de0-7e40-40e5-8991-c9d652aef72a, confidence 0.85, mode direct]