- Modifié
Bonjour à tous, je voulais vous faire partager un tutoriel, probablement le plus simple pour installer Collabora, en effet pas de reverse, pas de sous-domaine dédié avec ses certificats etc, tout se passe en "direct".
Collabora est une application qui vous permettra de créer, éditer et partager des documents (texte, tableur, présentation) au sein même de votre Nextcloud à l'instar de ce que propose Google Drive ou Onedrive :
Après diverses recherches et batailles, notamment sur les certificats SSL, le sous-domaine dédié à collabora ou encore la configuration Nginx, j'ai réussi à faire fonctionner la bête avec une manière assez simple vous verrez.
Ce tutoriel ne requiert pas de sous domaine pour collabora TOUT se passe avec votre domaine "nextcloud.ndd.tld"
Pour ma part testé sur :
serveur = Debian 9
Nextcloud = version 14
PHP = 7.1
Pré-requis
- Avoir installé Nextcloud sur un sous domaine dédié (Important ni nextcloud, ni collabora n'aiment les mondomaine.tld/nextcloud) ex "nextcloud.ndd.tld" Installer nextcloud
- Une cafetière fonctionnelle
- Un peu de temps
Tutoriel
Installer environnement Docker
apt remove docker docker-engine docker.io
apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sed -i '$adeb https://download.docker.com/linux/ubuntu artful stable' /etc/apt/sources.list
apt update && apt install docker-ce
Tester le fonctionnement de docker
docker run hello-world
Vous devez avoir un résultat semblable :
On télécharge l'image Docker de Collabora :
docker pull collabora/code
Configuration Nginx
Si vous avez suivi le tuto de mondédié cité plus haut pour l'installation de nextcloud, alors votre fichier conf se trouve /etc/nginx/sites-enabled/nextcloud.conf sinon il peut se trouver etc/nginx/conf.d/nextcloud.conf si vous avez utilisé un tuto autre que celui de mondédié.
Donc on édite le bon fichier conf, ici, celui du tutoriel d'installation Nextcloud de mondédié
nano /etc/nginx/sites-enabled/nextcloud.conf
On ajoute à ce fichier
### Début Config Collabora Online ###
location ^~ /loleaflet {
proxy_pass https://localhost:9980;
proxy_set_header Host $http_host;
}
location ^~ /hosting/discovery {
proxy_pass https://localhost:9980;
proxy_set_header Host $http_host;
}
location ^~ /lool {
proxy_pass https://localhost:9980;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
### Fin Config Collabora Online ###
Voilà mon fichier afin que vous puissiez avoir une idée :
ATTENTION AUX URL, METTEZ BIEN VOTRE NDD A LA PLACE DE nextcloud.ndd.tld
server {
listen 80;
server_name nextcloud.ndd.tld;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name nextcloud.ndd.tld;
index index.php;
ssl on;
ssl_certificate /etc/letsencrypt/live/www.ndd.tld/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.ndd.tld/privkey.pem;
add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
add_header Referrer-Policy no-referrer always;
# include /etc/nginx/conf.d/ciphers.conf; #à désactiver si vous ne faites pas le tuto Logjam
ssl_prefer_server_ciphers on; #à activer si vous ne faites pas le tuto Logjam
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # à activer si vous ne faites pas le tuto Logjam
ssl_ciphers 'AES256+EECDH:AES256+EDH'; #à activer si vous ne faites pas le tuto Logjam
# ssl_session_cache shared:SSL:10m; (limite la session ssl à 10mn, à activer ou non si vous le souhaitez.
#LOGS
access_log /var/log/nginx/nextnextcloud-access.log combined;
error_log /var/log/nginx/nextnextcloud-error.log error;
# root doit pointer vers le chemin d'installation de Nextnextcloud. Typiquement /var/www/nextnextcloud.
root /var/www/nextnextcloud;
client_max_body_size 10G; # set max upload size
fastcgi_buffers 64 4K;
#rewrite url pour la synchronisation caldav/webdav.
rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;
#eviter le référencement de votre nextcloud par google.
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
#interdire l'accès aux sous dossiers de nextnextcloud.
location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
deny all;
}
location / {
# The following 2 rules are only needed with webfinger
rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;
rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
try_files $uri $uri/ index.php;
}
### Start Collabora Online ###
location ^~ /loleaflet {
proxy_pass https://localhost:9980;
proxy_set_header Host $http_host;
}
location ^~ /hosting/discovery {
proxy_pass https://localhost:9980;
proxy_set_header Host $http_host;
}
location ^~ /lool {
proxy_pass https://localhost:9980;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
### End Collabora Online ###
#config php
location ~ ^(.+?\.php)(/.*)?$ {
try_files $1 = 404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$1;
fastcgi_param PATH_INFO $2;
fastcgi_pass unix:/run/php/php7.1-fpm.sock;
}
# Mise en cache des images
location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
expires 30d;
# Optional: Don’t log access to assets
access_log off;
}
}
On lance l'image Docker de Collabora
On change l'url pour y mettre celle de son instance nextcloud, en gardant bien les doubles anti slash !
sudo docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=nextcloud\\.your-domain\\.com' --restart always --cap-add MKNOD collabora/code
On vérifie que le port écouté soit le bon
sudo netstat -lnpt
On cherche cette ligne :
Si vous avez ce résultat alors on continue ...
On vérifie Nginx :
sudo nginx -t
Si pas d'erreur alors on le relance Nginx :
service nginx restart
Maintenant on passe à la partie sur l'interface de Nextcloud, on active l'application Collabora on se rend dans les paramètres de nextcloud, sur la gauche on sélectionne Collabora en ligne, et dans l'URL on y met l'adresse de Nextcloud soit "https://nextcloud.ndd.tld" on applique et voilà.