Set-OPS-Public/roles/serveur_collabora
Daniel Allaire a60b69f072 un fichier vide existe, et une sonde pour les correctifs
LA GARDE FICHIER ENTIER, en deux corrections. Un telechargement
interrompu laisse un fichier de zero octet QUI EXISTE, et toutes les gardes
demandaient seulement s il etait la. infra-mail-01 a garde une cle
smallstep de 0 octet apres l epreuve hors ligne.

La premiere correction n a pas suffi. Ajouter le controle de taille faisait
bien s executer la tache - et le fichier faisait toujours 0 octet au
passage suivant. get_url sur une destination existante emet une requete
CONDITIONNELLE : l amont repond non modifie, le module rend ok, la ruine
reste. Le play etait vert et ne reparait rien. Il faut effacer avant de
redemander.

Controle negatif : 0 -> 1022 octets, 0 erreur apt. Cinq roles.

LA SONDE CORRECTIFS, 23e. Set-OPS desarme unattended-upgrades et applique
les correctifs au deploiement - choix defendable, le verrou dpkg a fait
decrocher une machine d une reconstruction entiere le matin meme. Mais rien
ne disait QUAND le geste etait du : une flotte pouvait deriver des mois en
restant verte.

Elle mesure les paquets de securite en attente ET depuis quand. Elle ne
lance pas apt-get update - une sonde qui rafraichit l index toutes les
quinze minutes deviendrait la cause de la panne qu elle surveille. Et le
seuil de 72 h est un choix d exploitation, pas une derivation : le
mecanisme qui applique les correctifs est un geste humain.

P64 REFUSAIT UNE DECLARATION CORRECTE. serveur_debian et serveur_durci sont
des roles de declaration pure, sans une tache ; le travail est fait par les
roles que leur playbook applique. La preuve exigeait declaration et depot
dans le meme role - vrai des vingt-deux premieres sondes, faux des qu une
sonde appartient au socle. Une garde qui force a contourner ce qu elle
protege est un defaut. Elle suit desormais le playbook du groupe.

Mesure : 21/21 machines vertes, 65 preuves, 23 sondes, 0 echec.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q
2026-09-10 17:26:35 -04:00
..
defaults les depots tiers passent par le cache, et le tenant n a plus le sien 2026-09-10 14:53:48 -04:00
handlers collabora : en natif, la derniere exception conteneurisee tombe 2026-08-24 16:23:35 -04:00
meta empreintes muettes, courses de premier demarrage, collision de noms 2026-08-07 16:22:38 -04:00
tasks un fichier vide existe, et une sonde pour les correctifs 2026-09-10 17:26:35 -04:00
templates collabora : en natif, la derniere exception conteneurisee tombe 2026-08-24 16:23:35 -04:00
README.md collabora : en natif, la derniere exception conteneurisee tombe 2026-08-24 16:23:35 -04:00

serveur_collabora

Collabora Online, en natif — paquet coolwsd, systemd, derrière l'edge nginx. Aucun conteneur.

Pourquoi ce rôle a été réécrit

Il lançait collabora/code dans Docker. C'était la seule exception conteneurisée de la flotte, et elle contredisait le principe fondateur : logiciel libre en natif, systemd + paquets + nginx. Elle traînait en plus une dépendance entière — community.docker — qui n'était même pas déclarée dans requirements.yml, donc absente de tout runner.

Depuis la réécriture, plus aucun rôle du dépôt n'a besoin de Docker.

Ce qui a été éprouvé avant d'écrire

Doctrine du dépôt : éprouver l'outil avant le rôle. 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é par le paquet)        ->  fourni par libgcc-s1 sur trixie
le dépôt CODE-deb                    ->  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 exploiter, contrairement à une image opaque.

La configuration : par surcharge, pas par réécriture

Le coolwsd.xml livré fait 439 lignes richement commentées. Le remplacer par un gabarit maison obligerait à suivre son évolution à chaque version amont, et ferait perdre les commentaires qui expliquent chaque réglage.

coolwsd accepte des surcharges --o:<clé>=<valeur>. Le rôle pose donc un fragment systemd : la configuration de Set-OPS tient en un fichier lisible, celle du paquet reste intacte, et apt purge rend la machine à son état d'origine.

La console d'administration est FERMÉE

Elle expose un formulaire identifiant/mot de passe hors de tout SSO, avec un secret à créer, faire tourner et surveiller — pour une fonction dont personne n'a besoin au quotidien. Même raisonnement que serveur_forgejo_connexion_locale.

L'ouvrir (serveur_collabora_admin_actif: true) exige alors vault_collabora_admin en voûte, et de l'ajouter au gabarit de l'instance.

Variables principales

Variable Défaut Rôle
serveur_collabora_port 9980 écoute, derrière l'edge
serveur_collabora_server_name bureau.<domaine> nom externe — vide, coolwsd le déduit mal derrière un mandataire
serveur_collabora_domaine_nextcloud cloud.<domaine> l'hôte WOPI autorisé
serveur_collabora_ssl_termination true TLS terminé à l'edge, comme le reste de la flotte
serveur_collabora_admin_actif false console d'administration

Ce que ce rôle vérifie

Il interroge /hosting/capabilities après démarrage. Un service « active » qui ne répond pas là serait découvert par Nextcloud devant un usager, à la première ouverture de document.

Ce qui n'est pas encore prouvé

L'installabilité est établie par simulation sur Debian 13.6. Le fonctionnement ne l'est pas : aucun écosystème de la flotte ne fait tourner Collabora aujourd'hui. La première mise en service devra vérifier l'édition d'un document de bout en bout, depuis Nextcloud.