- Add OAuth2 Proxy in front of Taiga (port 16491) as access guard
- Add OIDC login via Keycloak→LDAP using taiga-contrib-oidc-auth (default on)
- Custom multi-stage Docker build compiles CoffeeScript/Gulp frontend plugin
- Build context fixed to docker_repository_path (not directories.instance)
- pip install via git+https:// (not PyPI, package not published there)
- Settings rendered as Python literals in config.append.py (not os.getenv)
- urls.py uses re_path() (Django 4+ compatible, url() was removed)
- Add LDAP direct login via taiga-contrib-ldap-auth-ext (default off)
- LDAP_SERVER strips port via regex_replace (host-only required by plugin)
- LDAP_MAP_USERNAME_TO_UID = None (prevents plugin crash)
- Both plugins append to config.py at container startup via cat >>
- Remove broken robrotheram image variants and dead TAIGA_SETTING_FILES loop
- Remove broken oidc/local.py.j2 (local.py is not imported by taiga-back)
- Add conf.json template for taiga-front (loginFormType / contribPlugins)
- Add oauth2_proxy_cookie_secret to schema
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>