# serveur_nextcloud — SQUELETTE (module Collaboration) > ⚠️ **Rôle en cours de construction.** `defaults` + `meta` + architecture sont posés. > **`tasks/main.yml` attend le SPIKE empirique** — discipline « éprouver l'outil avant le rôle » : > déployer Nextcloud + Collabora à la main sur un vrai nœud, **prouver** SSO OIDC + WOPI + fichiers, > **puis** codifier. Écrire les tâches à l'aveugle = les bugs de 1er déploiement qu'on veut éviter. ## Rôle dans l'offre Cœur de l'offre **maison-obnl** (OBNL/coops) : fichiers, documents, agendas, contacts — le remplaçant souverain de Google Workspace / Microsoft 365. ## Architecture cible (motifs Set-OPS réutilisés) - **BD** PostgreSQL via `resoudre_base` (base `nextcloud`, FQDN, secret en voûte) ; - **Cache** Redis (verrous transactionnels, sessions) ; - **SSO** OIDC via Keycloak (app `user_oidc`, realm de l'instance = `identite_realm`) ; - **Édition documents** Collabora Online (rôle `serveur_collabora`, protocole WOPI) ; - **TLS** cert step-ca + cert-sync, exposé `cloud.` derrière l'edge nginx ; - **Sauvegarde** `client_backup` (données + BD = Tier 1). ## Spike à mener (avant les tâches) 1. Un nœud `collab` (fonction à ajouter au plan + cloner). 2. Nextcloud (source/apt) + PHP-FPM + PostgreSQL + Redis ; `occ` config. 3. `user_oidc` branché sur Keycloak → prouver « Se connecter avec … ». 4. Collabora CODE + WOPI ↔ Nextcloud → prouver l'édition d'un .odt. 5. Sauvegarde/restauration prouvée. → **alors** on écrit `tasks/main.yml`.