Dotfiles/setup/modules/FreeipaAnsible
Amir Alexander Abdelbaki be757fda5a feat(ansipa): nginx gateway — reverse proxy + portal start-page
Add an nginx service that fronts all three web UIs on a single hostname/port
and serves a portal landing page, designed to sit behind the operator's own
TLS-terminating reverse proxy.

- Each backend is proxied at the path it already serves natively — FreeIPA
  /ipa, CheckMK /cmk, Keycloak under a configured /auth relative path — so no
  fragile path rewriting is needed and one upstream proxy line exposes
  everything. FreeIPA's strict Host/Referer anti-CSRF checks are satisfied by
  pinning Host to the IPA hostname and rewriting Referer.
- Honors incoming X-Forwarded-Proto/For so it works behind a second reverse
  proxy (double-proxy verified: portal, FreeIPA, CheckMK and Keycloak all
  reachable through two layers, and a CheckMK login POST completes to an
  authenticated session through the gateway).
- Keycloak: KC_HTTP_RELATIVE_PATH=/auth + KC_PROXY_HEADERS=xforwarded so it
  builds correct URLs behind the gateway; deliberately not forwarding
  X-Forwarded-Port (this gateway is :80 internally; the public port is the
  upstream proxy's) to avoid https://host:80 redirects.
- .env.example documents ANSIPA_HTTP_PORT and gives the exact upstream
  reverse-proxy snippet (nginx location block + Caddy one-liner).

Portal is a static cyberqueer-themed page linking to /ipa/ui/, /cmk/, /auth/.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MUhrcFU8J1Hnf7vNqNxZNi
2026-07-02 12:36:28 +02:00
..
ansible fix(ansipa): hostname-binary-free FQDN + push-mode orchestration (NAT path) 2026-07-02 12:25:03 +02:00
autofs-pkgbuild fix(ansipa): FreeIPA enrollment for Arch/Fedora/RHEL + autofs AUR workaround 2026-07-02 11:27:46 +02:00
image feat(ansipa): nginx gateway — reverse proxy + portal start-page 2026-07-02 12:36:28 +02:00
auto-enroll-ansible.sh Update setup/modules/FreeipaAnsible/auto-enroll-ansible.sh 2026-04-27 16:38:02 +02:00
copilot-explains.txt Update setup/modules/FreeipaAnsible/copilot-explains.txt 2026-04-27 17:00:37 +02:00
freeipa-client-answerfile.json setup: add FreeIPA server module and generic client script 2026-05-18 11:12:31 +02:00
freeipa-client.sh fix(ansipa): FreeIPA enrollment for Arch/Fedora/RHEL + autofs AUR workaround 2026-07-02 11:27:46 +02:00
freeipa-enroll.sh fix(ansipa): FreeIPA enrollment for Arch/Fedora/RHEL + autofs AUR workaround 2026-07-02 11:27:46 +02:00