L'ancien câblage ne pouvait pas marcher : client_id littéral "gitea"
(impossible, Zitadel génère les client_id) et oneshot qui échouait à chaque
boot sur --enabled (flag inexistant en Gitea 1.27.x), avalé par `|| true`.
- App Zitadel "Gitea" (projet marcpartensky) : appId 396570385799184684,
clientId 396570385799250220, type Web, redirect
https://git.marcpartensky.com/user/oauth2/zitadel/callback
- oneshot gitea-oidc-init : add-or-update (id de login_source via psql),
secret lu depuis sops à chaque exécution, idempotent même en dérive
- [openid] d'app.ini : OpenID 2.0 legacy, désactivé (sans rapport avec OIDC,
échouait en "rel=openid2.provider not found" avec une URL Zitadel)
- [oauth2_client] : ENABLE_AUTO_REGISTRATION, USERNAME=email,
ACCOUNT_LINKING=login (page de liaison unique pour le compte local marc)
- ressource Pangolin : auth.sso-enabled=false (auth Gitea seule, une seule
couche, clients git/API à token non bloqués par un redirect SSO)
- secrets/gitea-oidc.yml : vrai oidc_client_secret (chiffré, clé tower)