Consolidate the operator console and the observability / captured-mail
UIs behind a single Basic Auth gate, so one password (the admin-console
account, dev: gm/gm-dev-password) unlocks all three, with links in the
console nav:
- Caddyfile.dev: a single basic_auth on /_gm/* fronts nested routes —
/_gm/grafana/ -> Grafana, /_gm/mailpit/ -> Mailpit, catch-all -> the
gateway/backend console. Caddy forwards the same Authorization header,
which the backend console also accepts, so there is one prompt. The
former top-level /grafana/ and /mailpit/ routes are removed.
- Grafana: served under /_gm/grafana/ (sub-path) as anonymous Admin with
the login form and basic auth disabled, so it relies solely on the
/_gm gate and ignores the forwarded credentials.
- Mailpit: MP_WEBROOT=/_gm/mailpit (and the healthcheck path) so its UI
lives under the gate.
- Operator console: add Grafana and Mailpit links to the nav.