Set-OPS-Public/roles/serveur_nextcloud
Daniel Allaire 26dc0469be get_url : garder les artefacts epingles a une version
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>
2026-08-09 14:01:12 -04:00
..
defaults rotation : les comptes de secours peuvent enfin changer de mot de passe 2026-08-07 21:10:47 -04:00
files serveur_nextcloud : rôle codifié depuis le spike (13 gotchas encodés) 2026-07-05 15:00:39 -04:00
handlers serveur_nextcloud : rôle codifié depuis le spike (13 gotchas encodés) 2026-07-05 15:00:39 -04:00
meta empreintes muettes, courses de premier demarrage, collision de noms 2026-08-07 16:22:38 -04:00
tasks get_url : garder les artefacts epingles a une version 2026-08-09 14:01:12 -04:00
templates serveur_nextcloud : rôle codifié depuis le spike (13 gotchas encodés) 2026-07-05 15:00:39 -04:00
README.md serveur_nextcloud : rôle codifié depuis le spike (13 gotchas encodés) 2026-07-05 15:00:39 -04:00

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

  1. Paquets PHP-FPM 8.4 + extensions, nginx, redis (imagick tire ses deps — pas libmagickcore-6, absent de Debian 13) ;
  2. tuning PHP 512M + opcache, et env[PGSSLMODE]/PGSSLROOTCERT dans le pool php-fpm (PDO pgsql lit libpq) ;
  3. tarball épinglé/var/www/nextcloud + occ maintenance:install sur PG en verify-full TLS ;
  4. vhost nginx local avec MIME .mjs = text/javascript (sinon modules ES bloqués → pages blanches) ;
  5. 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 ;
  6. SSO user_oidc (Keycloak) ; richdocuments (WOPI : wopi_url local + public_wopi_url edge, posé après activate-config) ;
  7. 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 (consommateur serveur_nextcloud) dans bases-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_collabora actif (le serveur WOPI) + son exposition bureau.<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_pki pour 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).