Move scripts/administration/wsl2/enable-systemd.sh to
scripts/administration/systemd/windows/enable.sh for a more consistent
and platform-neutral directory structure.
Add README.md for both systemd/ and systemd/windows/ and update
Makefile reference accordingly.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Move CA trust scripts into a dedicated subdirectory for better structure:
- scripts/administration/trust_ca.sh → scripts/administration/tls/trust/linux.sh
- scripts/administration/wsl2/trust-ca-windows.sh → scripts/administration/tls/trust/windows.sh
Update Makefile references and add README.md for both tls/ and tls/trust/.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Move platform-specific DNS setup scripts into a dedicated subdirectory
for better structure and discoverability:
- scripts/administration/wsl2/setup-dns.sh → scripts/administration/network/dns/setup/wsl.sh
- scripts/administration/network/dns/setup.sh → scripts/administration/network/dns/setup/linux.sh
Update Makefile references accordingly and add README.md documenting
the purpose of each script.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Introduces standardized, form-based issue templates for bug reports and feature requests. This improves the quality and consistency of incoming issues.
- 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>
- Increase global test timeout from 60s to 300s; the OIDC login flow
alone can consume the full 60s budget, causing timeouts in subsequent
wait steps (waitForVisibleCandidate at line 171 in the CI logs)
- Replace non-existent NC 30+ selectors verified against the actual
nextcloud:production-fpm-alpine image:
- remove [aria-controls="header-menu-user-menu"] (not in NC 30+)
- remove settingsMenuButton role "Settings menu" (not confirmed)
- replace #content-vue / #appmenu with #header-start__appmenu
(layout.user.php uses <nav id="header-start__appmenu">)
- remove #logout (no such ID in layout.user.php)
- Dismiss the firstrunwizard modal before clicking the user menu:
firstrunwizard-activate.mjs opens a NcModal after DOMContentLoaded
on first login; its .modal-mask intercepts all clicks and would
cause the user-menu click to fail silently on first login
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Without publishing the relay port range (default 50000-59999), coturn
inside the Talk container could not establish TURN relay connections
through Docker's network, causing calls with more than 4 participants
to fail silently.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Use 'python -I' (isolated mode) to check for 'packaging' library.
- This ensures the check fails if the library is missing in the strict environment used by Ansible modules, even if present in user site-packages.
- Fixes pip module failures on CentOS.
Introduces standardized, form-based issue templates for bug reports and feature requests. This improves the quality and consistency of incoming issues.