Module Collaboration : squelette serveur_nextcloud (defaults/meta/README)
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>
This commit is contained in:
parent
5f3af67322
commit
04d807c78d
3 changed files with 73 additions and 0 deletions
25
roles/serveur_nextcloud/README.md
Normal file
25
roles/serveur_nextcloud/README.md
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
# 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`.
|
||||
42
roles/serveur_nextcloud/defaults/main.yml
Normal file
42
roles/serveur_nextcloud/defaults/main.yml
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
---
|
||||
# =========================================================================
|
||||
# serveur_nextcloud — SQUELETTE (surface de config). Les tâches attendent le
|
||||
# SPIKE empirique (déployer + prouver OIDC/WOPI/fichiers avant de codifier).
|
||||
# Motifs Set-OPS réutilisés : BD via resoudre_base, SSO via Keycloak, TLS via
|
||||
# cert-sync + edge, exposition dérivée, secrets en voûte.
|
||||
# =========================================================================
|
||||
serveur_nextcloud_groupe: "serveur_nextcloud"
|
||||
serveur_nextcloud_utilisateur: "www-data"
|
||||
|
||||
# --- Base de données (dérivée par resoudre_base, comme keycloak/forgejo) ---
|
||||
# Le plan déclare une base 'nextcloud' avec consommateur serveur_nextcloud.
|
||||
serveur_nextcloud_db_host: "" # dérivé (FQDN) par resoudre_base
|
||||
serveur_nextcloud_db_port: 5432
|
||||
|
||||
# --- Cache Redis (verrous + sessions) ---
|
||||
serveur_nextcloud_redis_host: "localhost"
|
||||
serveur_nextcloud_redis_port: 6379
|
||||
|
||||
# --- SSO OIDC (Keycloak, realm de l'instance) — app 'user_oidc' de Nextcloud ---
|
||||
serveur_nextcloud_oidc_actif: true
|
||||
serveur_nextcloud_oidc_client_id: "nextcloud"
|
||||
serveur_nextcloud_oidc_client_secret: "{{ vault_nextcloud_oidc | default('') }}"
|
||||
serveur_nextcloud_oidc_realm: "{{ identite_realm | default('chezlepro') }}"
|
||||
serveur_nextcloud_oidc_base: "https://keycloak.{{ domaine_interne }}/realms/{{ serveur_nextcloud_oidc_realm }}/protocol/openid-connect"
|
||||
|
||||
# --- Exposition (derrière l'edge nginx, TLS terminé à l'edge) ---
|
||||
serveur_nextcloud_hostname: "cloud.{{ domaine_interne }}"
|
||||
serveur_nextcloud_http_addr: "127.0.0.1"
|
||||
serveur_nextcloud_http_port: 8081
|
||||
|
||||
# --- Collabora Online (édition de documents, protocole WOPI) ---
|
||||
serveur_nextcloud_collabora_url: "https://bureau.{{ domaine_interne }}"
|
||||
|
||||
# --- Données + admin ---
|
||||
serveur_nextcloud_data_dir: "/var/lib/nextcloud/data"
|
||||
serveur_nextcloud_admin_user: "admin"
|
||||
serveur_nextcloud_admin_password: "{{ vault_nextcloud_admin | default('') }}" # voûte
|
||||
|
||||
# Domaines de confiance (trusted_domains) : le hostname exposé + localhost.
|
||||
serveur_nextcloud_trusted_domains:
|
||||
- "{{ serveur_nextcloud_hostname }}"
|
||||
6
roles/serveur_nextcloud/meta/empreinte.yml
Normal file
6
roles/serveur_nextcloud/meta/empreinte.yml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
# Empreinte de dimensionnement du logiciel (propriété du rôle). Additionnée au socle SE
|
||||
# par scripts/inventory_rules.py. Nextcloud + PHP-FPM : mémoire modérée, disque data croissant.
|
||||
coeurs: 2
|
||||
memoire_mo: 2048
|
||||
disque_go: 20
|
||||
Loading…
Reference in a new issue