ISPConfig ne recopie le certificat dans le répertoire ssl/ du site que
lorsqu'il le crée ou le recrée : un renouvellement par le cron certbot
passe inaperçu et le vhost continue de servir l'ancien jusqu'à son
expiration. Re-sauvegarder le site dans l'interface ne déclenche pas la
copie. static.alpinux.org et portail.alpinux.org ont ainsi servi un
certificat expiré à partir du 1er août 2026.
Le script audite en lecture seule par défaut et resynchronise avec --fix.
Il ne retient que les certificats réellement référencés par un vhost
activé ou un service : de nombreux répertoires ssl/ conservent des
certificats périmés dont plus personne ne se sert.
Déployé en /usr/local/sbin/owni-certs-sync.sh et lancé chaque jour à
04:20 par /etc/cron.d/owni-certs-sync, en complément du hook certbot
ispconfig-cert.sh généralisé à tous les sites.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Chaque site (wiki, home, dynamic, admin, static, portail, feedback)
a désormais son propre dossier autonome avec ses scripts de déploiement.
Ajoute README.md racine expliquant la structure et la convention git/Claude.
Met à jour .gitignore pour les nouveaux chemins (wiki/docs/assets/).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Remplace portail.alpinux.org.admin.conf (snippet incorrectement formaté)
par scripts/admin.alpinux.org.vhost.conf : VirtualHost complet HTTP+HTTPS,
reverse proxy Gunicorn port 5002, même structure que les autres vhosts.
admin/app.py : supprime x_prefix=1 du ProxyFix (plus de sous-chemin /admin/)
admin/.env.example : client Keycloak renommé admin-alpinux
scripts/alpinux-admin.service : description mise à jour
redirect_uri Keycloak attendu : https://admin.alpinux.org/auth/callback
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
overrides/partials/logo.html : remplace l'URL static.alpinux.org par
{{ base_url }}/assets/alpinux-logo.png — le logo est inclus dans le
build MkDocs, pas servi depuis le CDN.
scripts/build-assets.py : sépare les deux destinations :
- docs/assets/alpinux-logo.png (200×200, pour le wiki)
- /tmp/alpinux-static-assets/ (512px + favicons → static.alpinux.org/logo/)
Plus d'argument --out ; les chemins sont fixes et documentés.
docs/technique/deploiement-wiki.md :
- schéma mis à jour (SVG → build-assets.py → PNG → mkdocs build)
- ajout de l'étape 3 "Générer le logo" dans la procédure manuelle
- script deploy-wiki.sh inclut python3 scripts/build-assets.py
- tableau résumé mis à jour
- prérequis : ajout pillow et chromium
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
install-party.md : marque l'Install Party du 28 mars comme terminée,
annonce une présentation en septembre 2026 (date à confirmer).
SEO & métadonnées (home/index.html, overrides/main.html) :
- Open Graph, Twitter Card, structured data Schema.org (Organization / WebSite)
- canonical, rel="me" Mastodon, aria-label nav, dimensions logo explicites
Wiki (docs/) :
- meta description sur index.md et alpinux/index.md
- boutons MkDocs Material sur alpinux/index.md, liens corrigés
Infra :
- robots.txt pour alpinux.org et wiki.alpinux.org
- sitemap.xml home
- configs vhost Apache alpinux.org et wiki.alpinux.org
- suppression alpinux-logo.png (binaire servi depuis static.alpinux.org)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>