Ceci est une ancienne révision du document !
Table des matières
Collabora Online via Docker dans Nextcloud
Nextcloud est un nuage personnel installable sur son propre serveur comprenant non seulement un espace de fichiers (comme Dropbox) mais aussi de multiples applications comme un calendrier, un tableau de gestion de projet (comme Trello), de la visio/tchat, de la gestion de mots de passe (via Keepass), un webmail…etc, le tout de manière collaborative à travers des groupes.
Collabora Online Development permet de bénéficier d'une suite bureautique en ligne, du même type que celles de Google par exemple. On peut la connecter à Nextcloud pour travailler directement sur les fichiers stockés dans le nuage.
Pour la suite, on supposera que l'on est sur un serveur Debian 10 (buster), que le serveur web est Apache et que Nextcloud est déjà installé sur l'adresse nextcloud.monserveur.org. On installera la suite Collabora sur l'adresse collabora.monserveur.org.
Docker doit aussi être préalablement installé. Voir la doc d'installation de Docker.
Enfin, pour créer un certificat SSL et passer le trafic de Collabora en HTTPS, Certbot doit aussi être installé.
Installer et démarrer Collabora dans Docker
On commence par aller chercher l'image de Collabora sur le Docker Hub qui sera utilisé dans un container Docker :
docker pull collabora/code
Ensuite on démarre le container :
docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=nextcloud\\.monserveur\\.org' --restart always --cap-add MKNOD collabora/code
Avec :
- -t : crée une pseudo-TTY
- -d : éxécute le programme en fond de tâche
- -p 127.0.0.1:9980:9980 : map et écoute sur le port 9980
- -e 'domain=nextcloud\\.monserveur\\.org' : passe une variable spécifiant l’url sur laquelle nextcoud est installé (pas celle de Collabora !)
- –restart always : rédémarre systématiquement si le container crash
- –cap-add MKNOD : donne des capabilités linux au container
- collabora/code : nom de l’image qui démarrera dans le container
On peut vérifier que le container est démarré avec :
docker ps -a // ou netstat -lnpt | grep docker
Mettre cette commande de lancement dans un script shell simplifiera les choses pour les futurs démarrages.
Configurer Apache
Vérifier que ces modules apache sont bien activés :
- proxy
- proxy_wstunnel
- proxy_http
- ssl
S'ils ne le sont pas, les activer et relancer Apache.
Créer un Virtual Host sur le port 80 (pour le moment) qui définira le domaine de Collabora (collabora.monserveur.org). Par exemple on crée le fichier /etc/apache2/sites-available/collabora.monserveur.org.conf dans lequel on met :
<VirtualHost *:80> ServerName collabora.monserveur.org # Encoded slashes need to be allowed AllowEncodedSlashes NoDecode # Container uses a unique non-signed certificate SSLProxyEngine On SSLProxyVerify None SSLProxyCheckPeerCN Off SSLProxyCheckPeerName Off # keep the host ProxyPreserveHost On # static html, js, images, etc. served from loolwsd # loleaflet is the client part of LibreOffice Online ProxyPass /loleaflet https://127.0.0.1:9980/loleaflet retry=0 ProxyPassReverse /loleaflet https://127.0.0.1:9980/loleaflet # WOPI discovery URL ProxyPass /hosting/discovery https://127.0.0.1:9980/hosting/discovery retry=0 ProxyPassReverse /hosting/discovery https://127.0.0.1:9980/hosting/discovery # Main websocket ProxyPassMatch "/lool/(.*)/ws$" wss://127.0.0.1:9980/lool/$1/ws nocanon # Admin Console websocket ProxyPass /lool/adminws wss://127.0.0.1:9980/lool/adminws # Download as, Fullscreen presentation and Image upload operations ProxyPass /lool https://127.0.0.1:9980/lool ProxyPassReverse /lool https://127.0.0.1:9980/lool # Endpoint with information about availability of various features ProxyPass /hosting/capabilities https://127.0.0.1:9980/hosting/capabilities retry=0 ProxyPassReverse /hosting/capabilities https://127.0.0.1:9980/hosting/capabilities # Logs ErrorLog "/var/log/apache2/collabora_error" </VirtualHost>
Activer ce virtual host :
a2ensite collabora.monserveur.org.conf
Puis redémarrer Apache.
Configurer un certificat SSL
En cours d'écriture…