Le role lancait collabora/code dans Docker -- seule exception de la flotte au principe « logiciel libre en natif ». Desormais : paquet coolwsd du depot amont, systemd, derriere l'edge nginx. community.docker est retiree de requirements : plus aucun role n'a besoin de Docker. Eprouve avant d'ecrire, sur une Debian 13.6 reelle et sans rien installer : apt-get install --simulate coolwsd resout jusqu'a « Conf coolwsd (26.04.3.1-1) », libgcc1 est fourni par libgcc-s1, et le depot CODE-deb est PLAT. La configuration passe par un fragment systemd (--o:) : le coolwsd.xml livre, 439 lignes commentees, reste intact. Trois outils du harnais ont pese. voute.py lisait les COMMENTAIRES : documenter le nom d'une clef suffisait a l'exiger -- corrige, controle negatif fait. Et verifier_intrants avait raison : une garde ecrite en deux morceaux promettait un secret pour une console fermee ; reecrite en implication, elle dit le vrai contrat. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
3.2 KiB
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.