Outils pour utilisateurs

Outils du site


collabora_online_via_docker_nextcloud

Ceci est une ancienne révision du document !


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…

collabora_online_via_docker_nextcloud.1612489959.txt.gz · Dernière modification : 2021/02/05 01:52 de n1c0