{{indexmenu_n>15}} # Ajouter de l'édition collaborative : Collabora ## Contexte Nextcloud supporte, grâce à son plugin [Nextcloud Office](https://apps.nextcloud.com/apps/richdocuments), l'intégration avec un serveur [WOPI](https://en.wikipedia.org/wiki/Web_Application_Open_Platform_Interface). Concrètement, cela permet l'édition collaborative de documents, feuilles de calcul, etc, l'intégration majoritaire étant avec [Collabora Online](https://en.wikipedia.org/wiki/Collabora_Online), une version web et collaborative de LibreOffice. Cette fonctionnalité est aujourd'hui facilement intégrable et permet de fournir un service proche de l'expérience Google Drive. ## Installation L'édition "développeur", pour les petites instances, est gratuite. Elle s'appelle `CODE` et peut tourner dans une [image Docker](https://sdk.collaboraonline.com/docs/installation/CODE_Docker_image.html). Chez Picasoft, la stratégie est d'utiliser une seule instance pour l'ensemble des instances Nextcloud. Il existe bien un [plugin Nextcloud](https://apps.nextcloud.com/apps/richdocumentscode) permettant d'installer CODE directement aux côtés de Nextcloud, mais la performance dans Docker est affreuse et les problèmes dus à l'utilisation du format AppImage pousse à utiliser un conteneur à part dans tous les cas. Il faut donc exposer CODE sur Internet, derrière [[technique:tech_team:traefik|Traefik]]. Les subtilités de la configuration de CODE sont assez pénibles, on pourra se référer à [l'extrait de fichier Compose](https://gitlab.utc.fr/picasoft/projets/services/nextcloud/-/blob/0ea3be9819213a131e2318aea0203485efe55b74/solidaires/docker-compose.yml#L51) reproduit ci-dessous, auquel on a ajouté des commentaires : ```yaml collabora: image: collabora/code:22.05.14.3.1 container_name: collabora-code networks: # Name of the network where the Nextcloud app resides - nextcloud # Name of the network where Traefik resides - proxy environment: # Every dot should be escaped, otherwise interpreted as regexp # Which domains can use Collabora : # - One domain per alias_groupX # - Optionnally with aliases per domain, see https://sdk.collaboraonline.com/docs/installation/CODE_Docker_image.html#setting-the-application-configuration-dynamically-via-environment-variables alias_group1: soletucompi\.picasoft\.net # Limit to french for now for the sake of simplicity dictionaries: fr_FR # Traefik terminates SSL, use HTTP internally VIRTUAL_PROTO: http VIRTUAL_PORT: 9980 VIRTUAL_HOST: collabora\.picasoft\.net # Disable capabilities check that are not available inside Docker container # Additionnaly, disable default self-signed certificate as everything is handled by Traefik extra_params: "--o:security.capabilities=false --o:ssl.enable=false --o:ssl.termination=true" DONT_GEN_SSL_CERT: true # Maybe not mandatory, documentation states it is useful if Collabora # run behind a reverse proxy server_name: collabora.picasoft.net env_file: ./secrets/collabora.secrets labels: # Depends on your configuration... websecure is an HTTPS entrypoint there. traefik.http.routers.collabora.entrypoints: websecure traefik.http.routers.collabora.rule: Host(`collabora.picasoft.net`) traefik.http.services.collabora.loadbalancer.server.port: 9980 traefik.enable: true ``` Le fichier `collabora.secrets` contient deux variables d'environnement : `username` et `password`, permettant un accès par authentification HTTP basique à l'interface d'administration. Cette configuration suffit à lancer un serveur Collabora fonctionnel. ## Relier une instance Pour chaque instance Nextcloud où on veut activer Collabora, il suffit (depuis le conteneur par exemple) d'exécuter les commandes suivantes : ```bash php occ app:install richdocuments php occ config:app:set --value https://collabora.picasoft.net richdocuments wopi_url php occ richdocuments:activate-config ``` L'URL de l'instance doit être autorisée dans Collabora : voir le fichier Compose plus haut. Ces commandes ajoutent alors les documents « classiques » de la bureautique dans le menu de création Nextcloud. {{ :technique:adminserv:nextcloud:collabora.png |}} ## Accéder à l'interface d'administration Elle se trouve à l'URL [collabora.picasoft.net/browser/dist/admin/admin.html](https://collabora.picasoft.net/browser/dist/admin/admin.html). Une fois authentifié, on peut modifier la configuration dynamiquement, voir les journaux, les connexions en cours, etc.