gitea: add optional "Sign in with Authelia" (OIDC) to the login page
Gitea has its own built-in login, so it was never wired into the forward_auth/Caddy pattern the rest of this repo uses to gate apps with no auth of their own — that's still correct and unchanged. But Gitea also supports adding an OAuth2/OpenID Connect authentication source natively, and Authelia can act as an OIDC provider — a genuinely different, additive integration: an extra "Sign in with Authelia" button on Gitea's own login page, alongside local login, not a Caddy-level gate. Refactored services/authelia.sh's _authelia_add_oidc_client() to split out its non-interactive core as _authelia_provision_oidc_client() — same behavior for the existing ActualBudget/Vaultwarden/Immich/custom-app menu flow, but now callable directly by other services with explicit args instead of walking a human through the menu, returning the plaintext secret and Authelia's domain via out-params. services/gitea.sh's new _gitea_offer_authelia_sso() uses that to fully automate both sides when accepted: registers Gitea as an OIDC client in Authelia, then runs `gitea admin auth add-oauth` itself to add Authelia as an authentication source — no manual web-UI copy-paste on either side, matching how this installer already avoids manual wizards for the admin account/token. Falls back to printing the values for a manual add if the Gitea-side CLI call fails. Offered on fresh installs and on Update reruns (default no, so a plain Update stays silent), so it can be added later without a full reinstall. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YEQNc4NfBST1m9NtCZVYa8
This commit is contained in:
@@ -369,7 +369,26 @@ collision.)
|
||||
**Has built-in auth — no Authelia needed:**
|
||||
`emby`, `jellyfin`, `audiobookshelf`, `immich`, `mealie`, `actualbudget`,
|
||||
`homeassistant`, `portainer`, `meshcentral`, `traccar`, `uptimekuma`,
|
||||
`filebrowser`, `wg-easy`, `ntfy` (configurable)
|
||||
`filebrowser`, `wg-easy`, `ntfy` (configurable), `gitea`
|
||||
|
||||
**Native OIDC login as an addition, not a Caddy gate — `gitea`'s pattern.**
|
||||
Some apps with their own built-in login *also* have their own "add an
|
||||
OAuth2/OIDC provider" setting — a genuinely different integration from
|
||||
both the forward_auth gate above and the "Enable OpenID" client-registration
|
||||
flow below. `services/gitea.sh`'s `_gitea_offer_authelia_sso()` is the
|
||||
reference: if Authelia is installed, offers to register Gitea as an OIDC
|
||||
client (via `services/authelia.sh`'s `_authelia_provision_oidc_client()` —
|
||||
the same non-interactive, out-param-returning core that
|
||||
`_authelia_add_oidc_client()`'s menu flow uses) and then runs `gitea admin
|
||||
auth add-oauth` itself to add Authelia as an authentication source — no
|
||||
manual web-UI copy-paste on either side, matching this repo's "no manual
|
||||
wizard" philosophy elsewhere in gitea.sh (admin account/token creation).
|
||||
Local login keeps working unchanged; this only adds an extra button on the
|
||||
existing login page. Reuse `_authelia_provision_oidc_client()` (guarded by
|
||||
`declare -F`, same convention as chaining into another service's
|
||||
`install_<name>()`) for any future service with its own native OIDC field,
|
||||
instead of duplicating Authelia's client-secret-generation/config-patching
|
||||
logic again.
|
||||
|
||||
**No built-in auth — should be protected:**
|
||||
`magicmirror`, `wolf-pair`, `js99er`, `drum-rhythm-game`, `iopaint`,
|
||||
|
||||
Reference in New Issue
Block a user