GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Intégrer Collabora Online avec Nextcloud sur Ubuntu sans Docker

Ce tutoriel va vous montrer comment installer Collabora Online sur Ubuntu, puis l'intégrer à un serveur Nextcloud existant sans utiliser Docker.

Collaboration en ligne est une suite bureautique en ligne open source auto-hébergée et basée sur LibreOffice. Ses fonctionnalités incluent :

  • Édition de base
  • Haute fidélité, rendu WYSIWYG
  • Prend en charge les formats de documents DOC, DOCX, PPT, PPTX, XLS, XLSX, ODF
  • Importer et afficher Visio, Publisher et plus de 100 autres
  • Modification partagée

Collabora est un grand contributeur au projet LibreOffice. Tous les codes Collabora Online seront éventuellement inclus dans LibreOffice.

Remarque :Ce tutoriel fonctionne sur Ubuntu 20.04, 18.04 et 16.04. Si vous utilisez une autre version d'Ubuntu, vous pouvez installer Collobaora Online avec Docker.

Prérequis

Il est supposé que vous avez déjà configuré un serveur Nextcloud, qui peut être sur n'importe quelle distribution Linux. Si vous ne l'avez pas déjà fait, vous pouvez consulter les guides faciles à comprendre suivants.

  • Comment installer Nextcloud sur Ubuntu 20.04 avec la pile LEMP
  • Comment installer Nextcloud sur Ubuntu 20.04 avec LAMP Stack
  • Comment installer Nextcloud sur CentOS 8 avec la pile LEMP
  • Comment configurer Nextcloud sur Arch Linux

Le serveur Collabora Online et le serveur Nextcloud peuvent être sur la même machine ou sur deux machines différentes. Ce tutoriel montre comment installer le serveur en ligne Collabora sur Ubuntu à l'aide d'une image Docker créée par Collabora et Nextcloud. Intégrez-le ensuite à un serveur Nextcloud existant.

Étape 1 :Installez Collabora Online sur Ubuntu à partir du référentiel officiel

Collabora dispose d'un référentiel de packages officiel pour Ubuntu 20.04, 18.04 et 16.04. Exécutez la commande suivante pour l'ajouter à votre système Ubuntu.

Ubuntu 20.04

echo 'deb https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-ubuntu2004 ./' | sudo tee /etc/apt/sources.list.d/collabora.list

Ubuntu 18.04

echo 'deb https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-ubuntu1804 ./' | sudo tee /etc/apt/sources.list.d/collabora.list

Ubuntu 16.04

echo 'deb https://www.collaboraoffice.com/repos/CollaboraOnline/CODE ./' | sudo tee /etc/apt/sources.list.d/collabora.list

Exécutez ensuite la commande suivante pour télécharger et importer la clé publique Collabora, ce qui permet au gestionnaire de packages APT de vérifier l'intégrité des packages téléchargés à partir de ce référentiel.

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0C54D189F4BA284D

Si vous ne pouvez pas importer la clé publique avec la commande ci-dessus, vous pouvez utiliser la commande suivante pour télécharger et importer la clé.

wget https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-centos7/repodata/repomd.xml.key && sudo apt-key add repomd.xml.key

Étant donné que ce référentiel utilise une connexion HTTPS, nous devons installer le apt-transport-https et ca-certificates package, afin que le gestionnaire de packages APT puisse établir une connexion sécurisée au référentiel.

sudo apt install apt-transport-https ca-certificates

Maintenant, mettez à jour l'index des packages locaux et installez Collabora Online. Loolwsd est le démon WebSocket de LibreOffice Online.

sudo apt update
sudo apt install loolwsd code-brand

Étape 2 : Configurer le démon WebSocket de LibreOffice en ligne

Après leur installation, vous pouvez vérifier l'état de loolwsd.

systemctl status loolwsd

Astuce  :Si la commande ci-dessus ne s'est pas arrêtée immédiatement, vous pouvez appuyer sur Q clé pour le faire quitter.

Comme vous pouvez le voir, il n'a pas pu démarrer. Nous pouvons consulter le journal pour voir pourquoi cela s'est produit.

sudo journalctl -eu loolwsd

Exemple de sortie :

Apr 21 16:13:06 ubuntu loolwsd[13842]: File not found: /etc/loolwsd/ca-chain.cert.pem
Apr 21 16:13:06 ubuntu systemd[1]: loolwsd.service: Main process exited, code=exited, status
Apr 21 16:13:06 ubuntu systemd[1]: loolwsd.service: Failed with result 'exit-code'.
Apr 21 16:13:07 ubuntu systemd[1]: loolwsd.service: Service hold-off time over, scheduling r
Apr 21 16:13:07 ubuntu systemd[1]: loolwsd.service: Scheduled restart job, restart counter i
Apr 21 16:13:07 ubuntu systemd[1]: Stopped LibreOffice Online WebSocket Daemon.
Apr 21 16:13:07 ubuntu systemd[1]: loolwsd.service: Start request repeated too quickly.
Apr 21 16:13:07 ubuntu systemd[1]: loolwsd.service: Failed with result 'exit-code'.
Apr 21 16:13:07 ubuntu systemd[1]: Failed to start LibreOffice Online WebSocket Daemon.

Par défaut, loolwsd active la connexion TLS. Cependant, il n'a pas trouvé de fichier de certificat TLS, d'où l'échec du démarrage. Il est préférable de désactiver TLS dans loolwsd et de terminer TLS sur un proxy inverse. Le fichier de configuration loolwsd se trouve dans /etc/loolwsd/loolwsd.xml . Cependant, il s'agit d'un fichier XML, qui n'est pas facile à lire et à modifier. Nous pouvons utiliser le loolconfig outil pour modifier les configurations.

Exécutez la commande suivante pour désactiver TLS dans loolwsd.

sudo loolconfig set ssl.enable false

Et activez la terminaison TLS au niveau du proxy inverse.

sudo loolconfig set ssl.termination true

Par défaut, loolwsd n'autorise que les hôtes connus à accéder à son service. Pour autoriser Nextcloud à accéder au service, exécutez la commande suivante pour ajouter votre nom d'hôte Nextcloud à la liste blanche.

sudo loolconfig set storage.wopi.host nextcloud.example.com

Vous pouvez également activer le compte administrateur pour loolwsd avec la commande suivante. Vous devrez définir un nom d'utilisateur et un mot de passe pour le compte administrateur.

sudo loolconfig set-admin-password

Redémarrez loolwsd pour que les modifications prennent effet.

sudo systemctl restart loolwsd

Maintenant, il devrait fonctionner sans erreur.

systemctl status loolwsd

Sortie :

Étape 3 :Configurer le proxy inverse

Le serveur Nextcloud nécessite un certificat TLS sur Collabora Online, nous devrons donc créer un hôte virtuel, donner un nom de domaine à l'hôte virtuel, configurer un proxy inverse et installer le certificat TLS. Nous pouvons utiliser soit Apache ou Nginx pour y parvenir.

Apache

Installez le serveur Web Apache avec la commande suivante :

sudo apt install apache2

Exécutez la commande suivante pour créer un fichier d'hôte virtuel Apache pour Collabora Online.

sudo nano /etc/apache2/sites-available/collabora.conf

Mettez le texte suivant dans le fichier. Remplacez le nom de domaine par votre nom de domaine réel pour Collabora Online. N'oubliez pas de créer un enregistrement A pour ce sous-domaine.

<VirtualHost *:80>
  ServerName collabora.example.com
  Options -Indexes

  ErrorLog "/var/log/apache2/collabora_error"
  # Encoded slashes need to be allowed
  AllowEncodedSlashes NoDecode

  # keep the host
  ProxyPreserveHost On

  # static html, js, images, etc. served from loolwsd
  # loleaflet is the client part of Collabora Online
  ProxyPass           /loleaflet http://127.0.0.1:9980/loleaflet retry=0
  ProxyPassReverse    /loleaflet http://127.0.0.1:9980/loleaflet

  # WOPI discovery URL
  ProxyPass           /hosting/discovery http://127.0.0.1:9980/hosting/discovery retry=0
  ProxyPassReverse    /hosting/discovery http://127.0.0.1:9980/hosting/discovery

  # Capabilities
  ProxyPass           /hosting/capabilities http://127.0.0.1:9980/hosting/capabilities retry=0
  ProxyPassReverse    /hosting/capabilities http://127.0.0.1:9980/hosting/capabilities

  # Main websocket
  ProxyPassMatch "/lool/(.*)/ws$" ws://127.0.0.1:9980/lool/$1/ws nocanon

  # Admin Console websocket
  ProxyPass   /lool/adminws ws://127.0.0.1:9980/lool/adminws

  # Download as, Fullscreen presentation and Image upload operations
  ProxyPass           /lool http://127.0.0.1:9980/lool
  ProxyPassReverse    /lool http://127.0.0.1:9980/lool

</VirtualHost>

Enregistrez et fermez le fichier. Pour pouvoir proxyer le trafic à l'aide d'Apache, nous devons activer certains modules Apache.

sudo a2enmod proxy proxy_wstunnel proxy_http

Activez cet hôte virtuel avec la commande suivante :

sudo a2ensite collabora.conf

Puis redémarrez Apache.

sudo systemctl restart apache2

Nginx

Installez Nginx sur Ubuntu avec la commande suivante :

sudo apt install nginx

Créez un fichier d'hôte virtuel pour Collabora Online.

sudo nano /etc/nginx/conf.d/collabora.conf

Mettez le texte suivant dans le fichier. Remplacez le nom de domaine par votre nom de domaine réel pour Collabora Online. N'oubliez pas de créer un enregistrement A pour ce nom de domaine.

server {
    listen 80;
    listen [::]:80;
    server_name  collabora.example.com;

    error_log /var/log/nginx/collabora.error;

    # static files
    location ^~ /loleaflet {
        proxy_pass http://localhost:9980;
        proxy_set_header Host $http_host;
    }

    # WOPI discovery URL
    location ^~ /hosting/discovery {
        proxy_pass http://localhost:9980;
        proxy_set_header Host $http_host;
    }

    # Capabilities
    location ^~ /hosting/capabilities {
        proxy_pass http://localhost:9980;
        proxy_set_header Host $http_host;
    }

    # main websocket
    location ~ ^/lool/(.*)/ws$ {
        proxy_pass http://localhost:9980;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $http_host;
        proxy_read_timeout 36000s;
    }

    # download, presentation and image upload
    location ~ ^/lool {
        proxy_pass http://localhost:9980;
        proxy_set_header Host $http_host;
    }

    # Admin Console websocket
    location ^~ /lool/adminws {
        proxy_pass http://localhost:9980;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $http_host;
        proxy_read_timeout 36000s;
    }
}

Enregistrez et fermez le fichier. Testez ensuite les configurations Nginx.

sudo nginx -t

Si le test réussit, rechargez le serveur Nginx.

sudo systemctl reload nginx

Étape 4 :Obtenir et installer le certificat TLS

Maintenant, obtenons un certificat TLS gratuit de Let's encrypt. Exécutez les commandes suivantes pour installer le client Let's Encrypt (certbot) à partir du référentiel de logiciels par défaut.

sudo apt install certbot

Si vous utilisez Apache serveur Web, vous devez également installer le plug-in Certbot Apache.

sudo apt install python3-certbot-apache

Exécutez ensuite la commande suivante pour obtenir un certificat TLS/SSL gratuit.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d collabora.example.com

Si vous utilisez Nginx serveur Web, vous devez installer le plug-in Certbot Nginx.

sudo apt install python3-certbot-nginx

Utilisez ensuite le plugin Nginx pour obtenir et installer le certificat en exécutant la commande suivante.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d collabora.example.com

Vous verrez le texte suivant indiquant que vous avez réussi à obtenir un certificat TLS.

Étape finale :Connecter Nextcloud à Collabora Online

Dans votre tableau de bord Nextcloud, accédez aux Apps page. Ensuite, allez dans Office & Text section, trouvez la Collabora Online app, cliquez sur Download and Enable bouton.

(Remarque  :Il existe une autre application appelée Collabora Online - Built-in CODE server , que vous ne devriez pas installer sur votre serveur Nextcloud.)

Une fois cette application activée, accédez à Nextcloud Settings page. Cliquez sur Collabora Online onglet à gauche. Par défaut, il utilise le serveur CODE intégré, qui n'est pas adapté à une utilisation en production. Nous devons sélectionner Use your own server et saisissez le nom de domaine de votre Collabora Online incluant https:// préfixe, puis cliquez sur Save bouton.

Dans les advance settings , vous pouvez également définir OOXML comme format par défaut, afin que les fichiers soient compatibles avec le logiciel Microsoft Office.

Désormais, lorsque vous cliquez sur le bouton Ajouter (+) dans Nextcloud, vous pourrez créer des documents Word, des feuilles de calcul et des présentations directement depuis votre serveur Nextcloud.

La console d'administration loolwsd est disponible sur https://collabora.example.com/loleaflet/dist/admin/admin.html . Vous devez entrer le nom d'utilisateur et le mot de passe, qui ont été créés à l'étape 2.

Dépannage

Si Nextcloud vous dit qu'il c n'a pas pu établir de connexion au serveur Collabora Online , il se peut que votre serveur Nginx s'exécute derrière un proxy inverse comme HAProxy et que vous ayez les deux lignes suivantes dans /etc/nginx/nginx.conf .

set_real_ip_from 127.0.0.1;
real_ip_header proxy_protocol;

Cela signifie que Nginx attend une connexion HTTP du proxy inverse. Vous devez modifier le /etc/nginx/conf.d/collaboara.conf fichier et ajoutez proxy_protocol à la directive d'écoute.

listen 127.0.0.1:443 ssl http2 proxy_protocol;

Modifiez ensuite le /etc/hosts fichier et ajoutez un enregistrement DNS statique comme ci-dessous. Remplacer 12.34.56.78 avec l'adresse IP publique du serveur.

12.34.56.78          collaboara.example.com

collabora.example.com doit pointer vers l'adresse IP publique de votre serveur. Ne pointez pas vers 127.0.0.1.

Vous pouvez également consulter les journaux de loolwsd pour trouver des indices. Peut-être qu'il ne fonctionne pas.

sudo journalctl -eu loolwsd

Et vérifiez les journaux du serveur Web.

  • Apache :/var/log/apache2/collabora_error
  • Nginx :/var/log/nginx/collabora.error

Ubuntu
  1. Comment créer des images Docker avec un Dockerfile sur Ubuntu 16.04 LTS

  2. Comment installer WordPress avec Docker sur Ubuntu

  3. Comment gérer les conteneurs Docker avec Rancher sur Ubuntu

  4. Comment intégrer Alfresco à ONLYOFFICE Online Editor sur Ubuntu 14.04

  5. Comment intégrer Collabora Online avec Nextcloud sur Ubuntu 20.04

Installation de Mailtrain sur le serveur Ubuntu 18.04 sans Docker

Installez Mailtrain v1.24 sur le serveur Ubuntu 20.04 sans Docker

Comment installer Nextcloud 13 sur Ubuntu 16.04 avec Nginx

Comment installer Mailtrain sur Ubuntu 18.04 avec Docker

Installer Portainer avec Docker sur Ubuntu

Comment installer WordPress avec Docker sur Ubuntu 16.04 LTS