Bon passé de Collabora (CODE) à OnlyOffice sur mon nextcloud.
J'en ai ch*** comme un russe pour faire fonctionner les deux avec les certificats (obligatoire si ton NC est en https sinon il veut pas), faut :
- générer une paire de clés + un certificat et un dhparam et les stocker dans le volume lié au container
- démarrer le container Docker avec annonce du port 443
- désactiver les validation des certificats côté Owncloud ET OnlyOffice DocumentServer
Tout ça parce que je passe par le réseau interne entre les VM pour cette partie.
Pour Collabora y'avait pas le choix que de passer par un nom d'hôte public, du coup je vais pouvoir virer ça
Et au final il est quand même pas mal OnlyOffice
Plus d'outils, plus réactif et fluide et plus permissif dans l'édition de fichiers (sans compter la collaboration plus facile à aborder que CODE)
Pour plus de précisions :
Première étape, générer la paire de clé + csr + validation csr + dhparam :
Code : Tout sélectionner
openssl genrsa -out onlyoffice.key 2048
openssl req -new -key onlyoffice.key -out onlyoffice.csr
openssl x509 -req -days 365 -in onlyoffice.csr -signkey onlyoffice.key -out onlyoffice.crt
openssl dhparam -out dhparam.pem 2048
Deuxième étape, copier les fichiers générés dans le répertoire qu'on utilisera pour le serveur web de OnlyOffice :
Code : Tout sélectionner
mkdir -p /app/onlyoffice/DocumentServer/data/certs
cp onlyoffice.key /app/onlyoffice/DocumentServer/data/certs/
cp onlyoffice.crt /app/onlyoffice/DocumentServer/data/certs/
cp dhparam.pem /app/onlyoffice/DocumentServer/data/certs/
chmod 400 /app/onlyoffice/DocumentServer/data/certs/onlyoffice.key (On sait jamais :D )
Troisième étape, on démarre le tout en lançant le container :
Code : Tout sélectionner
sudo docker run -i -t -d -p 443:443 \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data onlyoffice/documentserver
Après,
on prend la main sur le container:
et on va y modifier le fichier /etc/onlyoffice/documenserver/default.json :
On remplace la ligne
Code : Tout sélectionner
services.CoAuthoring.requestDefaults.rejectUnauthorized : true
par
Code : Tout sélectionner
services.CoAuthoring.requestDefaults.rejectUnauthorized : false
ce qui donne :
Code : Tout sélectionner
"services": {
"CoAuthoring": {
"server": {
"port": 8000,
"workerpercpu": 1,
"mode": "development",
"limits_tempfile_upload": 104857600,
"limits_image_size": 26214400,
"limits_image_download_timeout": 120,
"callbackRequestTimeout": 120,
"healthcheckfilepath": "../public/healthcheck.docx",
"savetimeoutdelay": 5000,
"edit_singleton": false,
"forgottenfiles": "forgotten",
"forgottenfilesname": "output",
"maxRequestChanges": 20000,
"openProtectedFile": true
},
"requestDefaults": {
"headers": {
"userAgent": "Node.js/6.13"
},
"rejectUnauthorized": false
Enfin sur le serveur NC on édite le fichier config.php de NextCloud et on y ajoute la ligne suivante à la fin :
Perso j'ai également ajoué l'adresse du serveur OnlyOffice dans les "AuthorizedDomains" du même fichier config.php pour être sur que les appels dans les deux sens (NC=>OO ET OO=>NC) fonctionnent, sinon lors de l'édit d'un document ça peut foirer
Il suffit ensuite d'ajouter l'adresse du serveur de documents (OnlyOffice) dans le plugin NC :
Si besoin de check les logs de OO :
Bon .... j'me suis pas fait chier à personnaliser les noms de containers, machin tout ça.
Ca reste en local only donc osef !