Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

technique:adminserv:nextcloud:collabora [2023/06/10 19:39] – créée qduchemitechnique:adminserv:nextcloud:collabora [2023/06/10 19:42] (Version actuelle) qduchemi
Ligne 1: Ligne 1:
 +{{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. 
 +
 +<bootnote>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.</bootnote>
 +
 +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
 +```
 +
 +<bootnote warning>L'URL de l'instance doit être autorisée dans Collabora : voir le fichier Compose plus haut.</bootnote>
 +
 +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.