Cœur de l'offre maison-obnl (OBNL/coops). Surface de config posée (BD via resoudre_base, Redis, OIDC Keycloak, Collabora WOPI, exposé cloud.<domaine>, sauvegarde Tier 1). tasks/main.yml VOLONTAIREMENT absent : attend le spike empirique (éprouver l'outil avant le rôle) — déployer + prouver OIDC/WOPI/ fichiers sur un vrai nœud avant de codifier. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
25 lines
1.5 KiB
Markdown
25 lines
1.5 KiB
Markdown
# 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.<domaine>` 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`.
|