Files
computer-playbook/scripts
kevinveenbirkenbachandClaude Opus 4.7 f42a488510 refactor(sys-svc-webserver-core): default_server returns 421 instead of ssl_reject_handshake
Refines the explicit HTTPS default_server introduced in e9df1ae7b:
instead of aborting the TLS handshake (curl→000), complete TLS with
the primary-domain cert and return 421 Misdirected Request (RFC 9110
§15.5.20). When the cert SAN still covers the requested host but no
vhost is configured for it — the exact failure mode that
sys-svc-cln-domains produces between matrix-deploy variants — clients
now see a precise, RFC-correct signal instead of an opaque TLS error.

For hostnames not in any cert SAN (production with per-domain LE
certs and unrelated probes), curl still rejects the cert and reports
000, so the response is naturally dual-mode:

  - SAN match + no vhost  → 421 (deploy-incomplete signal)
  - no SAN match          → 000 (truly unknown host)

Updates scripts/tests/environment/08_deploy_performance.sh: the
matomo-only fresh-purged deploy keeps dashboard.infinito.example in
the shared CI cert's SAN list, so the assertion changes from
`assert_http_status 000` to `assert_http_status 421`. The matomo
assertion in 07_deploy_minimal.sh stays at 000 because matomo is
excluded from the cert SAN in that deploy's CA regen.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 17:34:01 +02:00
..

Script Collection

This directory contains automation scripts used across the project.

  • system/ contains host and system-facing helpers.

  • container/ contains helpers that run inside the local container.

  • github/ contains GitHub workflow helper scripts.

  • For the canonical Make target index, see make.md.

  • 🛠️ Organize operational helpers for development, CI, release, and maintenance

  • 🧭 Separate responsibilities into focused subdirectories with clear scope

  • 📚 Keep script-based workflows discoverable and easier to navigate

The scope of this folder is script organization at the repository level. Detailed responsibilities belong in the README files of the respective subdirectories.