infra/.claude/reference
Viktor Barzin 73cb0aab8b t3code: per-user isolation via Authentik + nginx username dispatcher
t3 is single-owner (no in-app multi-user), so each person runs their own
`t3 serve` on the DevVM as their own OS user: wizard→:3773 (t3-serve.service),
emo→:3774 (t3-serve-emo.service). An in-cluster nginx `t3-dispatch` maps the
Authentik-injected X-authentik-username to the right instance; unmapped
identities get 403 (no shared fallback). Flipped the ingress auth app→required
(Authentik forward-auth) — the same-origin self-served UI works behind it (WS
carries the Authentik cookie) and t3's own pairing/bearer stays the inner gate.
Mirrors the terminal stack's per-user model.

Verified: dispatcher routes vbarzin→:3773, emil.barzin→:3774, unmapped→403;
t3.viktorbarzin.me now 302s to Authentik. Cross-origin native app / app.t3.codes
intentionally unsupported here — deferred until the native app is published.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-01 21:38:06 +00:00
..
authentik-state.md authentik: zero-endpoints alert + upgrade-validation checklist 2026-05-10 16:54:48 +00:00
github-api.md [ci skip] Sunset Drone CI: remove all artifacts, DNS, configs, and references 2026-02-23 19:38:55 +00:00
known-issues.md add infrastructure agent team: 8 specialized agents + 14 diagnostic scripts 2026-03-15 02:01:07 +00:00
patterns.md anubis: per-site PoW reverse proxy on blog + kms + travel-blog 2026-05-10 00:06:21 +00:00
proxmox-inventory.md gpu: schedule off NFD label, not k8s-node1 hostname 2026-04-22 13:43:07 +00:00
service-catalog.md t3code: per-user isolation via Authentik + nginx username dispatcher 2026-06-01 21:38:06 +00:00
upgrade-config.json chore: add untracked stacks, scripts, and agent configs 2026-04-15 09:33:06 +00:00