Dieses Tutorial zeigt Ihnen, wie Sie Collabora Online auf Ubuntu installieren und es dann mit einem vorhandenen Nextcloud-Server integrieren, ohne Docker zu verwenden.
Online-Zusammenarbeit ist eine selbsthostbare und auf LibreOffice basierende Open-Source-Online-Office-Suite. Zu seinen Funktionen gehören:
- Grundlegende Bearbeitung
- Hohe Wiedergabetreue, WYSIWYG-Rendering
- Unterstützt das Dokumentenformat DOC, DOCX, PPT, PPTX, XLS, XLSX, ODF
- Visio, Publisher und mehr als 100 mehr importieren und anzeigen
- Gemeinsame Bearbeitung
Collabora leistet einen großen Beitrag zum LibreOffice-Projekt. Alle Collabora Online-Codes werden schließlich in LibreOffice enthalten sein.
Hinweis:Dieses Tutorial funktioniert auf Ubuntu 20.04, 18.04 und 16.04. Wenn Sie eine andere Ubuntu-Version verwenden, können Sie Collobaora Online mit Docker installieren.
Voraussetzungen
Es wird davon ausgegangen, dass Sie bereits einen Nextcloud-Server eingerichtet haben, der sich auf jeder Linux-Distribution befinden kann. Wenn Sie dies noch nicht getan haben, können Sie sich die folgenden leicht verständlichen Anleitungen ansehen.
- So installieren Sie Nextcloud auf Ubuntu 20.04 mit LEMP Stack
- So installieren Sie Nextcloud auf Ubuntu 20.04 mit LAMP Stack
- So installieren Sie Nextcloud auf CentOS 8 mit LEMP Stack
- So richten Sie Nextcloud unter Arch Linux ein
Der Collabora Online-Server und der Nextcloud-Server können sich auf demselben Computer oder auf zwei verschiedenen Computern befinden. Dieses Tutorial zeigt, wie Sie den Collabora-Online-Server unter Ubuntu mit einem von Collabora und Nextcloud erstellten Docker-Image installieren. Integrieren Sie es dann in einen vorhandenen Nextcloud-Server.
Schritt 1:Installieren Sie Collabora Online auf Ubuntu aus dem offiziellen Repository
Collabora hat ein offizielles Paket-Repository für Ubuntu 20.04, 18.04 und 16.04. Führen Sie den folgenden Befehl aus, um es zu Ihrem Ubuntu-System hinzuzufügen.
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
Führen Sie dann den folgenden Befehl aus, um den öffentlichen Collabora-Schlüssel herunterzuladen und zu importieren, wodurch der APT-Paketmanager die Integrität von Paketen überprüfen kann, die aus diesem Repository heruntergeladen wurden.
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0C54D189F4BA284D
Wenn Sie den öffentlichen Schlüssel nicht mit dem obigen Befehl importieren können, können Sie den folgenden Befehl verwenden, um den Schlüssel herunterzuladen und zu importieren.
wget https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-centos7/repodata/repomd.xml.key && sudo apt-key add repomd.xml.key
Da dieses Repository eine HTTPS-Verbindung verwendet, müssen wir apt-transport-https
installieren und ca-certificates
Paket, damit der APT-Paketmanager eine sichere Verbindung zum Repository herstellen kann.
sudo apt install apt-transport-https ca-certificates
Aktualisieren Sie nun den lokalen Paketindex und installieren Sie Collabora Online. Loolwsd ist der LibreOffice Online WebSocket-Daemon.
sudo apt update sudo apt install loolwsd code-brand
Schritt 2:LibreOffice Online WebSocket-Daemon konfigurieren
Nachdem sie installiert sind, können Sie den Status von loolwsd überprüfen.
systemctl status loolwsd
Hinweis :Wenn der obige Befehl nicht sofort beendet wurde, können Sie Q
drücken Taste, um es zu beenden.
Wie Sie sehen können, konnte es nicht gestartet werden. Wir können im Journal nachsehen, warum dies passiert ist.
sudo journalctl -eu loolwsd
Beispielausgabe:
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.
Standardmäßig aktiviert loolwsd die TLS-Verbindung. Es wurde jedoch keine TLS-Zertifikatsdatei gefunden, daher der Startfehler. Es ist besser, TLS in loolwsd zu deaktivieren und TLS an einem Reverse-Proxy zu beenden. Die loolwsd-Konfigurationsdatei befindet sich unter /etc/loolwsd/loolwsd.xml
. Es handelt sich jedoch um eine XML-Datei, die nicht einfach zu lesen und zu bearbeiten ist. Wir können die loolconfig
verwenden Werkzeug zum Ändern von Konfigurationen.
Führen Sie den folgenden Befehl aus, um TLS in loolwsd zu deaktivieren.
sudo loolconfig set ssl.enable false
Und aktivieren Sie die TLS-Terminierung am Reverse-Proxy.
sudo loolconfig set ssl.termination true
Standardmäßig erlaubt loolwsd nur bekannten Hosts den Zugriff auf seinen Dienst. Um Nextcloud den Zugriff auf den Dienst zu ermöglichen, führen Sie den folgenden Befehl aus, um Ihren Nextcloud-Hostnamen zur Whitelist hinzuzufügen.
sudo loolconfig set storage.wopi.host nextcloud.example.com
Sie können das Administratorkonto für loolwsd auch mit dem folgenden Befehl aktivieren. Sie müssen einen Benutzernamen und ein Passwort für das Administratorkonto festlegen.
sudo loolconfig set-admin-password
Starten Sie loolwsd neu, damit die Änderungen wirksam werden.
sudo systemctl restart loolwsd
Jetzt sollte es ohne Fehler laufen.
systemctl status loolwsd
Ausgabe:
Schritt 3:Reverse-Proxy einrichten
Der Nextcloud-Server erfordert ein TLS-Zertifikat auf Collabora Online, daher müssen wir einen virtuellen Host erstellen, dem virtuellen Host einen Domänennamen geben, einen Reverse-Proxy einrichten und ein TLS-Zertifikat installieren. Wir können entweder Apache verwenden oder Nginx um dies zu erreichen.
Apache
Installieren Sie den Apache-Webserver mit dem folgenden Befehl:
sudo apt install apache2
Führen Sie den folgenden Befehl aus, um eine virtuelle Apache-Hostdatei für Collabora Online zu erstellen.
sudo nano /etc/apache2/sites-available/collabora.conf
Fügen Sie den folgenden Text in die Datei ein. Ersetzen Sie den Domänennamen durch Ihren tatsächlichen Domänennamen für Collabora Online. Vergessen Sie nicht, einen A-Eintrag für diese Subdomain zu erstellen.
<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>
Speichern und schließen Sie die Datei. Um Datenverkehr mit Apache weiterleiten zu können, müssen wir einige Apache-Module aktivieren.
sudo a2enmod proxy proxy_wstunnel proxy_http
Aktivieren Sie diesen virtuellen Host mit dem folgenden Befehl:
sudo a2ensite collabora.conf
Starten Sie dann Apache neu.
sudo systemctl restart apache2
Nginx
Installieren Sie Nginx unter Ubuntu mit dem folgenden Befehl:
sudo apt install nginx
Erstellen Sie eine virtuelle Hostdatei für Collabora Online.
sudo nano /etc/nginx/conf.d/collabora.conf
Fügen Sie den folgenden Text in die Datei ein. Ersetzen Sie den Domänennamen durch Ihren tatsächlichen Domänennamen für Collabora Online. Vergessen Sie nicht, einen A-Eintrag für diesen Domainnamen zu erstellen.
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; } }
Speichern und schließen Sie die Datei. Testen Sie dann die Nginx-Konfigurationen.
sudo nginx -t
Wenn der Test erfolgreich ist, laden Sie den Nginx-Server neu.
sudo systemctl reload nginx
Schritt 4:TLS-Zertifikat abrufen und installieren
Lassen Sie uns nun ein kostenloses TLS-Zertifikat von Let’s encrypt erhalten. Führen Sie die folgenden Befehle aus, um den Let’s Encrypt-Client (certbot) aus dem Standard-Software-Repository zu installieren.
sudo apt install certbot
Wenn Sie Apache verwenden Webserver, dann müssen Sie auch das Certbot Apache Plugin installieren.
sudo apt install python3-certbot-apache
Geben Sie dann den folgenden Befehl aus, um ein kostenloses TLS/SSL-Zertifikat zu erhalten.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d collabora.example.com
Wenn Sie Nginx verwenden Webserver, dann müssen Sie das Certbot Nginx-Plugin installieren.
sudo apt install python3-certbot-nginx
Verwenden Sie dann das Nginx-Plugin, um das Zertifikat abzurufen und zu installieren, indem Sie den folgenden Befehl ausführen.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d collabora.example.com
Sie sehen den folgenden Text, der anzeigt, dass Sie erfolgreich ein TLS-Zertifikat erhalten haben.
Letzter Schritt:Verbinden Sie Nextcloud mit Collabora Online
Gehen Sie in Ihrem Nextcloud-Dashboard zu den Apps
Seite. Gehen Sie als Nächstes zu Office & Text
finden Sie im Abschnitt Collabora Online
app, klicken Sie auf Download and Enable
Schaltfläche.
(Hinweis :Es gibt eine weitere App namens Collabora Online - Built-in CODE server
, die Sie nicht auf Ihrem Nextcloud-Server installieren sollten.)
Nachdem diese Apps aktiviert sind, gehen Sie zu Nextcloud Settings
Seite. Klicken Sie auf Collabora Online
Registerkarte auf der linken Seite. Standardmäßig wird der integrierte CODE-Server verwendet, der für den Produktionseinsatz nicht geeignet ist. Wir müssen Use your own server
auswählen und geben Sie den Domainnamen Ihres Collabora Online einschließlich https://
ein Präfix, und klicken Sie dann auf Save
Schaltfläche.
In den advance settings
, können Sie auch OOXML als Standardformat festlegen, sodass die Dateien mit der Microsoft Office-Software kompatibel sind.
Wenn Sie jetzt in Nextcloud auf die Schaltfläche „Hinzufügen“ (+) klicken, können Sie Word-, Tabellenkalkulations- und Präsentationsdokumente direkt von Ihrem Nextcloud-Server aus erstellen.
Die loolwsd-Verwaltungskonsole ist unter https://collabora.example.com/loleaflet/dist/admin/admin.html
verfügbar . Sie müssen den Benutzernamen und das Passwort eingeben, die in Schritt 2 erstellt wurden.
Fehlerbehebung
Wenn Nextcloud Ihnen mitteilt, dass es c konnte keine Verbindung zum Collabora Online-Server herstellen , kann es sein, dass Ihr Nginx-Server hinter einem Reverse-Proxy wie HAProxy läuft und Sie die folgenden zwei Zeilen in /etc/nginx/nginx.conf
haben .
set_real_ip_from 127.0.0.1; real_ip_header proxy_protocol;
Dies bedeutet, dass Nginx eine HTTP-Verbindung vom Reverse-Proxy erwartet. Sie sollten die /etc/nginx/conf.d/collaboara.conf
bearbeiten Datei und fügen Sie proxy_protocol
hinzu auf die Listen-Direktive.
listen 127.0.0.1:443 ssl http2 proxy_protocol;
Bearbeiten Sie dann /etc/hosts
Datei und fügen Sie einen statischen DNS-Eintrag wie unten hinzu. Ersetzen Sie 12.34.56.78
mit der öffentlichen IP-Adresse des Servers.
12.34.56.78 collaboara.example.com
collabora.example.com
sollte auf die öffentliche IP-Adresse Ihres Servers verweisen. Zeigen Sie nicht auf 127.0.0.1.
Sie können auch die Protokolle von loolwsd überprüfen, um Hinweise zu finden. Vielleicht läuft es nicht.
sudo journalctl -eu loolwsd
Und überprüfen Sie die Protokolle des Webservers.
- Apache:
/var/log/apache2/collabora_error
- Nginx:
/var/log/nginx/collabora.error