Serveur Collabora (Nextcloud Office)
Collabora Online est une solution complète de bureautique en ligne qui permet l’édition simultanée de documents texte, tableur et présentation.
Serveur Collabora
Installation et configuration des packages CODE natifs sous Linux. Collabora fournit des packages Linux natifs aux formats deb et rpm. Pour le format deb, 3 plates-formes sont prises en charge : amd64, ppc64 et arm64. Pour le format rpm, seul amd64 est pris en charge.
Nextcloud Office est construit sur Collabora Online qui nécessite un service dédié fonctionnant à côté de la pile Nextcloud webserver. Il existe plusieurs façons d’exécuter le service cools.
- Nextcloud All In One: Nextcloud Office est préinstallé dans la zone Suivantcloud All In One et fournit un déploiement et une maintenance faciles avec la plupart des fonctionnalités incluses dans cette instance Nextcloud.
Pour les installations manuelles, il existe plusieurs options pour que Nextcloud Office soit déployé:
- Installation par des paquets de distribution Il existe des paquets pour toutes les principales distributions Linux disponibles qui permettent de déployer un serveur Collabora Online en l’installant via la gestion régulière des paquets. Pour un exemple de guide d’installation sur Ubuntu, voir: Exemple d’installation sur Ubuntu 24.04 Voir aussi https://www.collaboraoffice.com/code/linux-packages/ https://sdk.collaboraonline.com/docs/installation/index.html
- Installation par Docker Les images Docker sont disponibles pour déployer le serveur Collabora Online dans des environnements de conteneurs. Pour un guide étape par étape détaillé, voir: Exemple d’installation avec Docker Voir aussi https://sdk.collaboraonline.com/docs/installation/CODE_Docker_image.html
- Serveur CODE intégré Cette application fournit un serveur intégré avec toutes les fonctionnalités d’édition de documents de Collabora Online. Facile à installer, pour un usage personnel ou pour les petites équipes. Un peu plus lent qu’un serveur autonome et sans les fonctionnalités d’évolutivité avancées. L’installation peut être effectuée en activant l’application Nextcloud correspondante. Plus de détails peuvent être trouvés dans la documentation de l’application. Note: C’est l’option par défaut qui fonctionne dans la plupart des scénarios, mais pour des performances améliorées, il est fortement recommandé de passer à une installation collaborative en ligne dédiée en utilisant l’une des autres options.
Collabora Server
Nous allons décrire comment faire fonctionner Nextcloud Office sur votre serveur et comment l’intégrer à votre Nextcloud à l’aide de l’image dock Nextcloud et Collabora construite.
Pour l’installer, les dépendances suivantes sont nécessaires:
- Un hôte qui peut faire fonctionner un conteneur Docker
- Un sous-domaine ou un deuxième domaine sur lequel le serveur Collabora Online peut s’exécuter
- Un serveur Apache avec quelques modules activés
- Un certificat SSL valide pour le domaine sur lequel Collabora Online devrait fonctionner
- Un certificat SSL valide pour votre Nextcloud
Installer serveur Collabora Online
Utiliser Portainer pour la création du conteneur collabora
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
services:
collabora:
image: collabora/code:latest
container_name: collabora
restart: always
cap_add:
- MKNOD
ports:
- "127.0.0.1:9980:9980"
environment:
username: admin
password: "ThorineTriairePutrideCobayeBaroufPrive"
# Autorise Nextcloud
aliasgroup1: "https://cloud\\.rnmkcy\\.eu:443"
# TLS terminé par Nginx
extra_params: "--o:ssl.enable=false --o:ssl.termination=true"
Note: Dans la plupart des scénarios, l’exécution d’un serveur Collabora Online dédié nécessitera une sorte de proxy inversé pour être configuré devant lui. Pour plus de détails, voir Reverse proxy.
CWWK - Proxy inverse Nginx
La directive client_max_body_size attribue la taille maximale acceptée pour le corps de la requête du client, indiquée par la ligne Content-Length dans l’en-tête de la requête. Si la taille est supérieure à celle indiquée, le client obtient l’erreur « Request Entity Too Large » (413)
Créez un fichier d’hôte virtuel NGINX pour collabora.
1
sudo nano /etc/nginx/conf.d/bora.rnmkcy.eu.conf
Ajoutez la configuration suivante au fichier.
- Adapter la valeur de server_name
- Adapter IP 127.0.0.1 si différente
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
server {
listen 443 ssl;
listen [::]:443 ssl;
http2 on;
server_name bora.rnmkcy.eu;
include /etc/nginx/conf.d/ssl-modern.inc;
error_log /var/log/nginx/bora.error;
client_max_body_size 1G;
location ^~ /browser {
proxy_pass http://127.0.0.1:9980;
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 36000s;
proxy_send_timeout 36000s;
proxy_buffering off;
}
location ^~ /hosting/discovery {
proxy_pass http://127.0.0.1:9980;
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering off;
}
location ^~ /hosting/capabilities {
proxy_pass http://127.0.0.1:9980;
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering off;
}
location = /cool/adminws {
proxy_pass http://127.0.0.1:9980;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 36000s;
proxy_send_timeout 36000s;
proxy_buffering off;
}
location ^~ /cool/ {
proxy_pass http://127.0.0.1:9980;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 36000s;
proxy_send_timeout 36000s;
proxy_buffering off;
}
}
Testez la syntaxe du fichier pour vous assurer qu’il ne contient pas d’erreurs.
1
sudo nginx -t
Redémarrez NGINX et vérifiez son état.
1
2
sudo systemctl reload nginx
sudo systemctl status nginx
Synthèse configuration
Le bloc location = /cool/adminws est volontairement exact :
- il cible uniquement le WebSocket de la console d’administration.
- Les autres connexions Collabora passent par
/cool/
Le bloc est légèrement redondant :
1
location = /cool/adminws
car /cool/adminws peut aussi être pris en charge par :
1
location ^~ /cool/
Mais le conserver ne pose pas de problème : le bloc avec correspondance exacte est prioritaire.
Les paramètres ssl.enable=false et ssl.termination=true correspondent bien à une terminaison TLS sur Nginx, avec une liaison HTTP entre Nginx et Collabora.[
Les éléments importants sont corrects :
1
proxy_pass http://127.0.0.1:9980;
puisque le backend Docker répond en HTTP ;
1
proxy_set_header X-Forwarded-Proto https;
puisque Nginx termine TLS ;
1
2
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
pour les WebSockets Collabora.
La configuration est donc cohérente avec :
1
extra_params: "--o:ssl.enable=false --o:ssl.termination=true"
Ce mode
- HTTPS côté reverse proxy et HTTP côté Collabora
- est le fonctionnement habituel recommandé pour une installation derrière Nginx.
Enfin, le 502 obtenu précédemment venait uniquement du test HEAD réalisé avec curl -I. Pour tester cette URL, utilisez désormais une requête GET, avec ou sans authentification :
1
2
3
4
curl -k -u admin \
-sS -o /dev/null \
-w 'HTTP %{http_code}\n' \
https://bora.rnmkcy.eu/browser/dist/admin/admin.html
Vérification avec authentification
Testez avec curl -u :
1
2
curl -k -u admin \
-i https://bora.rnmkcy.eu/browser/dist/admin/admin.html
curl demandera le mot de passe sans l’afficher dans la commande. Vous devriez obtenir une réponse différente de 401, généralement 200.
Vous pouvez aussi utiliser une variable temporaire :
1
2
3
4
5
6
7
8
9
read -rsp 'Mot de passe Collabora: ' COLLABORA_PASSWORD
echo
curl -k -u "admin:${COLLABORA_PASSWORD}" \
-sS -o /dev/null \
-w 'HTTP %{http_code}\n' \
https://bora.rnmkcy.eu/browser/dist/admin/admin.html
unset COLLABORA_PASSWORD
Pour vérifier le WebSocket d’administration dans les logs :
1
sudo tail -f /var/log/nginx/bora.error
Et dans un autre terminal :
1
docker logs -f collabora
Accédez ensuite au lien https://bora.rnmkcy.eu/browser/dist/admin/admin.html avec :
1
2
Utilisateur : admin
Mot de passe : celui défini dans Compose
Nextcloud Collabora
- Allez dans la section Applications et choisissez
Packs d'applications --> Pack pour secteur public -> Nextcloud Office (collabora) - Installez l’application «Nextcloud Office (collabora) »
- Allez dans Administration -> Nextcloud Office (collabora) -> Spécifiez le serveur que vous avez configuré, https://bora.rnmkcy.eu
Assurez-vous que la case Utiliser Office Open XML (OOXML) au lieu d’OpenDocument Format par défaut pour les prochains fichiers est cochée. Cela permet de s’assurer que tous les fichiers sont compatibles avec Microsoft Office. Pour plus de sécurité, entrez le nom du domaine Collabora à côté de Autoriser la liste pour les requêtes WOPI: 192.168.0.0/24, 192.168.10.0/24, 10.139.100.0/24, cloud.rnmkcy.eu, bora.rnmkcy.eu
Pour créer un nouveau fichier, cliquez sur l’icône du dossier de fichiers dans la barre de menu supérieure. L’écran Tous les fichiers s’affiche. Cliquez sur le symbole + à droite de l’icône d’accueil et sur le symbole >. Une liste des options de fichiers possibles s’affiche.
Donnez un nom au fichier et cliquez sur l’icône de la flèche droite pour le créer. Vous pouvez baser le fichier sur un modèle ou commencer avec un fichier vierge. Saisissez le contenu du nouveau fichier. Nextcloud enregistre automatiquement le fichier chaque fois qu’il est modifié. Fermez le fichier en utilisant le bouton X en haut à droite lorsque vous avez terminé.
Avertissements
A l’ouverture d’un document ODT sur nextcloud , message d’avertissement

Correction en désactivant le messsage
Ouvrir le fichier de configuration /etc/coolwsd/coolwsd.xml et modifier la ligne
1
<disable_server_audit default="false" desc="Disabled server audit dialog and notification. Admin will no longer see warnings in the application user interface. This doesn't affect log file." type="bool">true</disable_server_audit>
Redémarer le service
1
sudo systemctl restart coolwsd.service


