- Add tests/integration/test_docker_image_versions.py that checks all
roles/web-*/config/main.yml for outdated semver-compatible Docker image
versions against Docker Hub
- Non-Docker-Hub images (ghcr.io etc.) are listed as unchecked with their
current version
- Suppress individual checks with # nocheck: docker-version above version:
- GitHub Actions ::warning:: annotations are emitted in CI
- Add .github/workflows/test-docker-image-versions.yml as standalone workflow
- Integrate workflow into ci-orchestrator.yml
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ldap:create-empty-config overwrites previously set config values with
empty defaults, including ldapConfigurationActive. This caused Nextcloud
to show "No LDAP user backend found!" after OIDC login when trying to
provision the user via LDAP. Explicitly set ldapConfigurationActive=1
via ldap:set-config after backend creation to ensure the backend is active.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The script is 4 levels deep under scripts/administration/tls/trust/,
so reaching the repo root requires ../../../../ instead of ../../.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Support docker.io/ prefix by stripping it and querying Docker Hub
- Add ghcr.io support via anonymous Bearer token flow (no secrets needed)
- Depth-aware version comparison: version: "15" compares only x tags,
version: "8.3" only x.x tags, version: "2.12.0" only x.x.x tags
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add tests/integration/test_docker_image_versions.py that checks all
roles/web-*/config/main.yml for outdated semver-compatible Docker image
versions against Docker Hub
- Non-Docker-Hub images (ghcr.io etc.) are listed as unchecked with their
current version
- Suppress individual checks with # nocheck: docker-version above version:
- GitHub Actions ::warning:: annotations are emitted in CI
- Add .github/workflows/test-docker-image-versions.yml as standalone workflow
- Integrate workflow into ci-orchestrator.yml
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The script sourced common.sh relative to its own directory (setup/),
but the file lives one level up in dns/. Fixes CI failure.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add upload-artifact step to test-deploy-server.yml
- Copy reports from infinito container to runner in dedicated_distro.sh cleanup before volume prune
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
DNS setup now encapsulates both platform-specific steps internally.
dev-environment-bootstrap no longer needs to know about WSL2 DNS.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The guard is already handled inside wsl.sh via IS_WSL2 from runtime.sh.
Inline check in the Makefile was inconsistent with all other wsl2 targets.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add IS_WSL2 export to runtime.sh and replace all inline
grep-based WSL2 guards in administration scripts with a
source + variable check for consistency.
Affected scripts:
- scripts/administration/systemd/enable/wsl2.sh
- scripts/administration/tls/trust/wsl2.sh
- scripts/administration/network/dns/setup/wsl.sh
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
More precise naming — these scripts target WSL2 specifically,
not Windows natively. Update all README and Makefile references.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Reorganize for consistency: action before platform in the path.
- scripts/administration/systemd/windows/enable.sh
→ scripts/administration/systemd/enable/windows.sh
Update README files and Makefile reference accordingly.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>