Collabora/code auf einem Linux Server installieren
In diesem Tutorial möchte ich euch erklären wie ich auf meinem Ubuntu Server Collabora aufgesetzt habe. Die Grundlage dafür ist das offizielle Tutorial von Nextcloud.
Also fangen wir an.
1. Installation vorbereiten
Hierzu muss Docker installiert werden.
Mit
sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D sudo apt-add-repository 'deb https://apt.dockerproject.org/repo ubuntu-xenial’ sudo apt-get update && sudo apt-get install docker-engine
Alle nötigen Abhängigkeiten installieren, dann geht es mit der eigentlichen Installation los.
Also root User gebt ihr folgende Zeile ein:
docker pull collabora/code docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=cloud\.nextcloud\.com' --restart always --cap-add MKNOD collabora/code
Dies lädt das Image herunter und installiert dies im Container. An dieser Stelle muss die Domain der Nextcloud oder Owncloud Installation angegeben werden. Nicht die Domain für das Office.
Einfacher geht es mit Docker -compose.
Version: "2.2" Services: collabora: image: collabora/code expose: - 9980 cap_add: - MKNOD environment: - domain=cloud.domain.tld - VIRTUAL_HOST=office.domain.tld - VIRTUAL_NETWORK=proxy-ssl - VIRTUAL_PORT=9980 - VIRTUAL_PROTO=https
Im Anschluss geben wir in der Firewall den benötigten Port frei.
sudo ufw allow 9980
- Nun benötigen wir eine zweite Domain
In diesem Beispiel wird die Domain office.domain.tld genannt.
Apache 2.4
In die vhosts.conf für Apache2.4 tragt ihr folgendes ein:
Ändert hier alle Werte die geändert werden müssen (Domain und die Zertifikat Pfade)
<VirtualHost *:443> ServerName office.nextcloud.com # SSL configuration, you may want to take the easy route instead and use Lets Encrypt! SSLEngine on SSLCertificateFile /path/to/signed_certificate SSLCertificateChainFile /path/to/intermediate_certificate SSLCertificateKeyFile /path/to/private/key SSLProtocol all -SSLv2 -SSLv3 SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS SSLHonorCipherOrder on # 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 /loleaflet https://127.0.0.1:9980/loleaflet retry=0 ProxyPassReverse /loleaflet https://127.0.0.1:9980/loleaflet # WOPI discovery URL ProxyPass /hosting/discovery https://127.0.0.1:9980/hosting/discovery retry=0 ProxyPassReverse /hosting/discovery https://127.0.0.1:9980/hosting/discovery # Main websocket ProxyPassMatch "/lool/(.*)/ws$" wss://127.0.0.1:9980/lool/$1/ws nocanon # Admin Console websocket ProxyPass /lool/adminws wss://127.0.0.1:9980/lool/adminws # Download as, Fullscreen presentation and Image upload operations ProxyPass /lool https://127.0.0.1:9980/lool ProxyPassReverse /lool https://127.0.0.1:9980/lool
Nginx unter Plesk
Für Nginx unter Plesk (wie in meinem Beispiel)
Ersetzt hier bitte domain.tld mit eurer Domain.
listen 443 ssl; server_name office.domain.tld; # static files location ^~ /loleaflet { proxy_pass https://localhost:9980; proxy_set_header Host $http_host; } # WOPI discovery URL location ^~ /hosting/discovery { proxy_pass https://localhost:9980; proxy_set_header Host $http_host; } # main websocket location ~ ^/lool/(.*)/ws$ { proxy_pass https://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 https://localhost:9980; proxy_set_header Host $http_host; } # Admin Console websocket location ^~ /lool/adminws { proxy_pass https://localhost:9980; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $http_host; proxy_read_timeout 36000s; }
Nginx ohne Plesk
server { listen 443 ssl http2; server_name office.domain.tld; add_header X-XSS-Protection "1; mode=block"; #Wenn es nicht geht, notfalls deaktivieren ssl_certificate /etc/letsencrypt/live/cloud.domain.tld/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/cloud.domain.tld/privkey.pem; # managed by Certbot # static files location ^~ /loleaflet { proxy_pass https://localhost:9980; proxy_set_header Host $http_host; } # WOPI discovery URL location ^~ /hosting/discovery { proxy_pass https://localhost:9980; proxy_set_header Host $http_host; } # download, presentation and image upload location ^~ /lool { proxy_pass https://localhost:9980; proxy_set_header Host $http_host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }
Dann sollte es eigentlich laufen und ihr könnt es testen indem ihr den Browser öffnet und folgendes eintippt: https://office.domain.tld/hosting/discovery
Erscheint ihr der PHP Code der Seite läuft Office.
Zum Abschluss noch in Nextcloud in den Collabora Office Einstellungen folgendes eintragen: https://office.domain.tld
Viel Spaß beim schreiben von Dokumenten….
Quelle: Nextcloud.com