Recensement apres l'echec du passage d'idempotence : 9 get_url sans aucune garde, 1 avec. Les quatre artefacts epingles (forgejo, keycloak, nextcloud, oauth2-proxy) sont immuables PAR CONSTRUCTION — leur chemin de destination porte la version. Les retelecharger n'a aucun sens, les recontacter encore moins. Gardes par une verification d'existence. Restent cinq cles de signature apt et un trousseau .deb, recuperes a chaque passage : cinq serveurs externes x quatorze hotes = 70 allers-retours par deploiement. Les garder supprimerait la dependance au prix de ne plus detecter une rotation ; une cle tournee casse apt bruyamment, donc l'oubli se voit. Arbitrage a rendre — pas a moi. Sur une plateforme souveraine la question merite d'etre posee : combien de serveurs tiers doivent etre joignables pour redeployer ce qu'on possede deja ? Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| defaults | ||
| files | ||
| handlers | ||
| meta | ||
| tasks | ||
| templates | ||
| README.md | ||
serveur_nextcloud
Maison numérique souveraine : fichiers + collaboration (Nextcloud + Collabora), SSO Keycloak, base PostgreSQL chiffrée. Codifié depuis le spike empirique du 2026-07-05 (collab-01) — chaque réglage encode un gotcha prouvé sur du vrai. Cœur de l'offre maison-obnl (OBNL/coops) et cabinet (PME de professionnels).
Ce que le rôle fait
- Paquets PHP-FPM 8.4 + extensions, nginx, redis (imagick tire ses deps — pas
libmagickcore-6, absent de Debian 13) ; - tuning PHP 512M + opcache, et
env[PGSSLMODE]/PGSSLROOTCERTdans le pool php-fpm (PDO pgsql lit libpq) ; - tarball épinglé →
/var/www/nextcloud+occ maintenance:installsur PG en verify-full TLS ; - vhost nginx local avec MIME
.mjs= text/javascript (sinon modules ES bloqués → pages blanches) ; overwrite*+trusted_proxies(edge) + Redis +allow_local_remote_servers(anti-SSRF, IP privées) + import du root step-ca dans le bundle CA propre de Nextcloud ;- SSO user_oidc (Keycloak) ; richdocuments (WOPI :
wopi_urllocal +public_wopi_urledge, posé après activate-config) ; - identité Alliance Boréale (theming + thème « ciel étoilé ») + whitelist anti-force-brute du sous-réseau d'admin.
Dépendances (à fournir avant déploiement)
- Registre BD : une base
nextcloud(consommateurserveur_nextcloud) dansbases-donnees.yml; - Voûte :
vault_nextcloud_admin,vault_nextcloud_oidc(secret du client Keycloak) ; - Keycloak : un client
nextcloud(redirect…/apps/user_oidc/code) dans le realm de l'instance ; serveur_collaboraactif (le serveur WOPI) + son expositionbureau.<domaine>;- Exposition edge :
cloud.<domaine>→ ce nœud:80, avec le FQDN dans les SAN du cert edge ; - Plancher : le nœud doit résoudre
bureau.<domaine>(→ edge) ;client_pkipour le root_ca.
Robustesse (hygiène Nextcloud)
- Version épinglée (
serveur_nextcloud_version) — pas de mise à jour surprise ; - upgrades en escale (staging → prod), sauvegarde d'abord (restic), surveillance Icinga ;
- l'app riche en config → traiter avec soin (le spike a documenté les pièges, on n'improvise pas).
Validation
ansible-lint : profil production (0 échec, 0 avertissement). --syntax-check : OK.
Éprouvé bout-en-bout sur collab-01 (SSO, édition .odt, apps, identité visuelle).