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>
69 lines
3.2 KiB
Markdown
69 lines
3.2 KiB
Markdown
# 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.
|