4 Commits

Author SHA1 Message Date
ryan 7fe2dee03c Note the home page among Xenia's duties
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-15 14:05:22 +02:00
ryan 6fef7c1dc7 Let a home deployment hold its own Authentik session
A home site forwarded every identity route to auth_base_url, so it never knew
who was visiting and could only ever offer "Sign in". It now runs the OIDC
flow itself and shows "My Account" and, for admins, "Admin" -- both pointing
at the deployment that owns those pages.

There is no user table on a home deployment, so the session cookie carries the
claims we need (username, email, admin flag) rather than a row id. It is
HMAC-signed, so it is tamper-evident, and holds nothing secret. The admin test
mirrors upsert_oidc_user: app_admin_emails or an admin group in the claims.

Also decouples oidc_issuer from auth_base_url. They are different hosts --
Authentik on one, the accounts app on another -- and deriving one from the
other only worked when they happened to coincide. OIDC_ISSUER is now its own
variable, required unless APP_ROLE=home.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-15 14:05:22 +02:00
ryan 60f98756c4 Point auth references at charon.sticknife.com
auth.sticknife.com moved to charon.sticknife.com. Rather than swapping the
hostname in each place, derive the OIDC issuer and the logout fallback from
AUTH_BASE_URL so the auth host is configured in one place.

Backend routes using charon.potternet.lan are unchanged; that internal name
remains the preferred route.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-15 13:29:07 +02:00
ryan b05c7310a6 initial commit 2026-08-15 11:15:31 +02:00