L'installateur cherchait la ligne Include des options SSL de Let's
Encrypt pour savoir où poser le ProxyPass. Elle n'existe que dans les
vhosts écrits par certbot : celui qu'ISPConfig génère porte ses propres
directives SSLCertificate*, et le patch échouait sur sites-available.
L'ancrage devient l'ouverture du bloc *:443, que les deux ont. Deux
autres choses au passage : un vhost récalcitrant n'interrompt plus le
script avant le rechargement d'Apache — il est signalé à la fin — et le
fichier est réécrit en place plutôt que remplacé par un `mv`, qui lui
aurait donné des droits neufs et lui aurait retiré son ACL.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CTvii1CYBLjD14uvuD7Kos
La page d'accueil vivait sous home/ dans alpinux.site.2026, sans webhook : elle était
déposée à la main sur le serveur. Le dépôt avait fini par diverger — la version en ligne
portait quatre mois de modifications jamais revenues dans git.
Ce dépôt suit la règle des autres domaines : un domaine, un dépôt. Le site est dans
site/, la chaîne de déploiement dans deploiement/ — clone sur le serveur, service
d'écoute du webhook, relais Apache, et l'ACL qui donne le droit d'écrire dans le
DocumentRoot. installer.sh pose l'ensemble en une fois, et se relance sans rien casser.
Le rsync est sans --delete, volontairement : le DocumentRoot contient aussi le .htaccess
qui relaie /public-calendars vers Nextcloud et les pages d'erreur d'ISPConfig.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ae3qPEPRrNkEY5LwcTTKc1