--- # COLLABORA ONLINE, EN NATIF — plus de conteneur. # # Ce rôle lançait `collabora/code` dans Docker, ce qui contredisait le principe fondateur # du dépôt : logiciel libre **en natif**, systemd + paquets + nginx, zéro conteneur. C'était # la seule exception de la flotte, et elle traînait une dépendance entière # (`community.docker`) qui n'était même pas déclarée dans `requirements.yml`. # # CE QUI A ÉTÉ ÉPROUVÉ AVANT D'ÉCRIRE CE RÔLE (2026-08-24), sur une Debian 13.6 réelle, # sans rien installer : # # apt-get install --simulate coolwsd -> résout jusqu'à « Conf coolwsd (26.04.3.1-1) » # libgcc1 (exigé) -> fourni par libgcc-s1 sur trixie # le dépôt CODE-deb est PLAT -> Packages et Release à la racine, pas de dists/ # # Le paquet livre aussi `/etc/nginx/snippets/coolwsd.conf` et un profil AppArmor — deux # choses que cette flotte sait déjà exploiter, contrairement à une image opaque. serveur_collabora_paquets: - coolwsd serveur_collabora_service: "coolwsd" serveur_collabora_port: 9980 # --- LE DÉPÔT AMONT ---------------------------------------------------------- # # Dépôt PLAT : `Suites: ./` et pas de composant. Une source classique (`deb … stable # main`) ne le trouverait pas. serveur_collabora_depot_uri: "{{ serveur_collabora_depot_schema }}://www.collaboraoffice.com/repos/CollaboraOnline/CODE-deb" serveur_collabora_depot_cle_url: "{{ serveur_collabora_depot_schema }}://www.collaboraoffice.com/downloads/gpg/collaboraonline-release-keyring.gpg" serveur_collabora_depot_cle_fichier: "/etc/apt/keyrings/collaboraonline.gpg" # --- CONFIGURATION : PAR SURCHARGE, PAS PAR RÉÉCRITURE ----------------------- # # Le `coolwsd.xml` livré fait 439 lignes richement commentées. Le remplacer par un gabarit # maison, ce serait s'engager à suivre son évolution à chaque version amont — et perdre # les commentaires qui expliquent chaque réglage. # # `coolwsd` accepte des surcharges `--o:=` sur sa ligne de commande. On pose # donc un fragment systemd : la configuration de Set-OPS tient en un seul fichier lisible, # le fichier du paquet reste intact, et `apt purge` rend la machine à son état d'origine. serveur_collabora_fragment: "/etc/systemd/system/coolwsd.service.d/setops.conf" # TLS TERMINÉ À L'EDGE, comme tout le reste de la flotte : `serveur_nginx` présente le # certificat step-ca, Collabora écoute en clair derrière lui. serveur_collabora_ssl_enable: false serveur_collabora_ssl_termination: true # Nom externe, tel que le navigateur l'atteint. Vide = déduit de la requête, ce qui échoue # derrière un mandataire inverse — d'où la valeur explicite. serveur_collabora_server_name: "bureau.{{ domaine_interne }}" # Hôtes WOPI autorisés — qui a le droit de faire éditer un document. # # Les défauts du paquet couvrent déjà les plages privées (10/8, 172.16/12, 192.168/16, # loopback), donc l'adressage dérivé de Set-OPS. On ajoute le FQDN de Nextcloud pour que # l'autorisation soit LISIBLE dans le plan plutôt que déduite d'un masque. serveur_collabora_domaine_nextcloud: "cloud.{{ domaine_interne }}" # --- CONSOLE D'ADMINISTRATION : FERMÉE PAR DÉFAUT ---------------------------- # # Elle sert à surveiller les sessions et les documents ouverts. Personne n'en a besoin au # quotidien, et elle expose un formulaire identifiant/mot de passe de plus — hors de tout # SSO, avec un secret à créer, à faire tourner et à surveiller. # # Même raisonnement que `serveur_forgejo_connexion_locale` : une porte ouverte en # permanence contourne la politique centrale et ne se révoque nulle part. On la ferme, et # l'on garde l'accès par SSH à l'hôte — le mécanisme de secours retenu par ce dépôt. # # L'ouvrir exige alors un secret en voûte, et de l'ajouter au gabarit de l'instance. # LE MOT DE PASSE N'EST PAS TIRE D'UNE CLE DE VOUTE PAR DEFAUT, ET C'EST VOULU. # # `scripts/voute.py` exige de la voute TOUTE reference `vault_*` trouvee dans un role # actif — c'est ce qui garantit qu'aucun secret n'est oublie. Mais une porte FERMEE ne # doit pas reclamer de clef : nommer ici `vault_collabora_admin` obligerait chaque # ecosysteme installant Collabora a inventer, chiffrer et faire tourner un secret pour # une console que personne n'ouvre. # # Qui veut la console la declare chez lui : # # # group_vars/serveur_collabora.yml de l'instance # serveur_collabora_admin_actif: true # serveur_collabora_admin_mot_de_passe: "{{ vault_collabora_admin }}" # # et ajoute `vault_collabora_admin` a son gabarit de voute — ou P18 le lui rappellera. serveur_collabora_admin_actif: false serveur_collabora_admin_utilisateur: "collabora-admin" serveur_collabora_admin_mot_de_passe: "" # --- SCHEMA DU DEPOT TIERS (2026-09-10) ------------------------------------------------ # Meme derivation que les six autres roles a depot tiers : `http` des qu'un cache est dans # le chemin, `https` sinon. Voir `serveur_artefacts_remaps` pour la moitie qui relaie. serveur_collabora_depot_schema: >- {{ 'http' if (artefacts_amorcage | default('') | string | length > 0) else 'https' }}