collabora_online_via_docker_nextcloud
Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
collabora_online_via_docker_nextcloud [2021/02/05 01:27] – créée n1c0 | collabora_online_via_docker_nextcloud [2024/02/26 00:31] (Version actuelle) – [Configurer Apache] n1c0 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ===== Collabora Online via Docker dans Nextcloud ===== | + | ====== Collabora Online via Docker dans Nextcloud ====== |
+ | |||
+ | [[https:// | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | 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' | ||
+ | |||
+ | Docker doit aussi être préalablement installé. [[https:// | ||
+ | |||
+ | Enfin, pour créer un certificat SSL et passer le trafic de Collabora en HTTPS, [[https:// | ||
+ | |||
+ | ===== Installer et démarrer Collabora dans Docker ===== | ||
+ | |||
+ | On commence par aller chercher l' | ||
+ | |||
+ | <code bash> | ||
+ | docker pull collabora/ | ||
+ | </ | ||
+ | |||
+ | Ensuite on démarre le container : | ||
+ | |||
+ | <code bash> | ||
+ | docker run -t -d -p 127.0.0.1: | ||
+ | </ | ||
+ | |||
+ | Avec : | ||
+ | * -t : crée une pseudo-TTY | ||
+ | * -d : éxécute le programme en fond de tâche | ||
+ | * -p 127.0.0.1: | ||
+ | * -e ' | ||
+ | * --restart always : rédémarre systématiquement si le container crash | ||
+ | * --cap-add MKNOD : donne des capabilités linux au container | ||
+ | * collabora/ | ||
+ | |||
+ | On peut vérifier que le container est démarré avec : | ||
+ | |||
+ | <code bash> | ||
+ | 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_connect | ||
+ | * proxy_http | ||
+ | * proxy_wstunnel | ||
+ | * 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 **/ | ||
+ | |||
+ | <code bash> | ||
+ | < | ||
+ | |||
+ | 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 | ||
+ | ProxyPassReverse | ||
+ | |||
+ | # WOPI discovery URL | ||
+ | ProxyPass | ||
+ | ProxyPassReverse | ||
+ | |||
+ | # Main websocket | ||
+ | ProxyPassMatch "/ | ||
+ | |||
+ | # Admin Console websocket | ||
+ | ProxyPass | ||
+ | |||
+ | # Download as, Fullscreen presentation and Image upload operations | ||
+ | ProxyPass | ||
+ | ProxyPassReverse | ||
+ | |||
+ | # Endpoint with information about availability of various features | ||
+ | ProxyPass | ||
+ | ProxyPassReverse | ||
+ | |||
+ | # Logs | ||
+ | ErrorLog "/ | ||
+ | |||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Activer ce virtual host : | ||
+ | |||
+ | <code bash> | ||
+ | a2ensite collabora.monserveur.org.conf | ||
+ | </ | ||
+ | |||
+ | Puis redémarrer Apache. | ||
+ | |||
+ | ===== Configurer un certificat SSL ===== | ||
+ | |||
+ | Il faut maintenant obtenir un certificat SSL pour signer le trafic HTTPS de collabora.monserveur.org. Pour cela, utiliser Certbot avec la commande : | ||
+ | |||
+ | <code bash> | ||
+ | certbot --apache --agree-tos --redirect --hsts --staple-ocsp -d collabora.monserveur.org | ||
+ | </ | ||
+ | |||
+ | Cela va automatiquement créer un nouveau virtual host collabora.monserveur.org-le-ssl.conf qui écoute le port 443 (https) et rediriger le trafic du port 80 (précédemment créé) vers le 443. | ||
+ | |||
+ | Puis rédémarrer Apache. | ||
+ | |||
+ | ===== Autre config ===== | ||
+ | |||
+ | Parfois, pour que Nextcloud puisse voir correctement Collabora, il faut ajouter dans **/ | ||
+ | |||
+ | <code bash> | ||
+ | XXX.XXX.XXX.XXX | ||
+ | </ | ||
+ | |||
+ | ===== Configurer Nextcloud ===== | ||
+ | |||
+ | Le container docker de Collabora est démarré, le certificat SSL est prêt, il reste à indiquer à Nextcloud où se trouve Collabora. | ||
+ | |||
+ | Pour ça, en tant qu' | ||
+ | |||
+ | Ensuite, toujours en tant qu' | ||
+ | |||
+ | Et voilà :) | ||
+ | |||
+ | ===== Mettre à jour Collabora ===== | ||
+ | |||
+ | D' | ||
+ | |||
+ | <code bash> | ||
+ | docker ps -a | ||
+ | </ | ||
+ | |||
+ | Puis supprimer le container : | ||
+ | |||
+ | <code bash> | ||
+ | docker rm -f < | ||
+ | </ | ||
+ | |||
+ | Récupérer la dernière image de Collabora : | ||
+ | |||
+ | <code bash> | ||
+ | docker pull collabora/ | ||
+ | </ | ||
+ | |||
+ | Enfin, relancer le container avec la même commande Docker vu au début (d'où le côté pratique de la mettre dans un script). | ||
+ | |||
+ | |||
+ | |||
+ | {{tag> |
collabora_online_via_docker_nextcloud.1612488421.txt.gz · Dernière modification : 2021/02/05 01:27 de n1c0