17461gelesen 14Kommentare
Sofern du eine eigene Collabora Online (früher OpenOffice) Instanz benötigst, kannst du diese ganz einfach auf deinem System installieren. Du kannst diese auch ohne Docker-Container laufen lassen. Ich verwende die Collabora Online Development Edition (kurz: CODE
). Um diese zu Installieren benötigt es nur eine Hand voll Befehle:
Installation
Zuerst musst du den Schlüssel vom Schlüssel-Server herunterladen und installieren:
user@system: apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0C54D189F4BA284D
Je nach Betriebssystem findest du hier die passende APT Repository Konfiguration:
Debian 8
user@system: echo 'deb https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-debian8 ./' >> /etc/apt/sources.list
Debian 9
user@system: echo 'deb https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-debian9 ./' >> /etc/apt/sources.list
Ubuntu 16.04
user@system: echo 'deb https://www.collaboraoffice.com/repos/CollaboraOnline/CODE ./' >> /etc/apt/sources.list
Ubuntu 18.04
user@system: echo 'deb https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-ubuntu1804 ./' >> /etc/apt/sources.list
Sobald dieser Prozess durchgelaufen ist, kannst du den Index aktualisieren und die notwendigen Pakete installieren:
user@system: apt update user@system: apt install loolwsd code-brand
Konfiguration
Damit ist die Online-Version von Collabora auch schon auf deinem Linux-System installiert. Der Dienst kann allerdings noch nicht laufen, da dieser noch ein Zertifikat benötigt. In meinem Fall habe ich das folgendermaßen erstellt:
user@system: mkdir -p /etc/loolwsd
user@system: openssl genrsa -out /etc/loolwsd/root.key.pem 2048 -key /etc/loolwsd/root.key.pem
user@system: openssl req -x509 -new -nodes -key /etc/loolwsd/root.key.pem -days 9131 -out /etc/loolwsd/ca-chain.cert.pem -subj "/C=DE/ST=BY/L=Kaufering/O=HOPPLIN GmbH/CN=Groupware Collabora"
user@system: openssl genrsa -out /etc/loolwsd/key.pem 2048 -key /etc/loolwsd/key.pem
user@system: openssl req -key /etc/loolwsd/key.pem -new -sha256 -out /etc/loolwsd/localhost.csr.pem -subj "/C=DE/ST=BY/L=Kaufering/O=HOPPLIN GmbH/CN=Groupware Collabora"
user@system: openssl x509 -req -in /etc/loolwsd/localhost.csr.pem -CA /etc/loolwsd/ca-chain.cert.pem -CAkey /etc/loolwsd/root.key.pem -CAcreateserial -out /etc/loolwsd/cert.pem -days 9131
Dieses Zertifikat wird nur für die Anwendung selbst, aber nicht für den Aufruf via Browser verwendet. Jetzt kannst du den Dienst (neu)starten:
user@system: systemctl start loolwsd
user@system: systemctl status loolwsd
● loolwsd.service - LibreOffice Online WebSocket Daemon
Loaded: loaded (/lib/systemd/system/loolwsd.service; enabled; vendor preset: enabled)
Active: active (running)
nginx als Reverse Proxy für Collabora ohne Docker konfigurieren
Jetzt muss noch der ReverseProxy für den Aufruf via HTTP(S) eingerichtet werden. (In meinem Fall leite ich den direkten Aufruf auf eine andere Seite um.)
collabora-nginx.conf
server {
listen 443 ssl;
server_name collabora.example.com;
ssl_certificate /path/to/ssl_certificate;
ssl_certificate_key /path/to/ssl_certificate_key;
location ^~ /loleaflet {
proxy_pass https://localhost:9980;
proxy_set_header Host $http_host;
}
location ^~ /hosting/discovery {
proxy_pass https://localhost:9980;
proxy_set_header Host $http_host;
}
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;
}
location ~ ^/lool {
proxy_pass https://localhost:9980;
proxy_set_header Host $http_host;
}
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;
}
}
Das hier verwendete Zertifikat kann bspw. ein letsencrypt
Zertifikat sein.
Fazit: Wie du siehst, ist es ganz einfach, Collabora Online ohne Docker laufen zu lassen. Hast du überdies Fragen, Kritik oder Anregungen, so können wir das gerne über die Kommentar-Funktion besprechen.
14 Kommentare
von tim
openssl genrsa -out /etc/loolwsd/root.key.pem 2048
genrsa: Can’t open “/etc/loolwsd/root.key.pem” for writing, No such file or directory
von Daniel
Servus Tim,
Ich habe den Artikel angepasst, mit “mkdir -p /etc/loolwsd” muss natürlich der Ordner erstellt werden… 😉
VG
Daniel
von Martin
Hallo Daniel,
vielen Dank für den Artikel, ich hätte allerdings einen Hinweis: Sollte “/etc/loolwsd” tatsächlich nicht existieren, genügt “mkdir /etc/loolwsd” (ohne “-p”), da “/etc” in jedem Fall schon existiert, solltest Du ein Linux bereits installiert haben ;-). In der aktuellen Installation wird dieser Ordner allerdings auch schon erstellt.
von Daniel
Hi Martin,
Danke für den Hinweis. So ist das mit den Linux-Befehlen, die gebe ich „schon immer“ so ein. kennst du das?
von Martin
Außerdem fehlt noch ein: “chgrp -R lool /etc/loolwsd/”.
von Jon
# sudo openssl genrsa -out /etc/loolwsd/key.pem 2048 -key /etc/loolwsd/key.pem
Extra arguments given.
von Daniel
Danke. Habe es in die Doku übernommen.
von Niclas
Hey, wenn ich apache2 nutze und damit den Server unter z.B. https://loclahost/officeonline oder https://localhost:54 verfügbar machen will, weil es ander bei mir nicht wirklich funkt. Was muss ich dann in die office.conf bei sites-available reinschreiben
von Daniel
Servus Niclas,
für den Apache2 brauchst du eine andere Konfiguration – hier wird
nginx
als Webserver verwendet. Für deine Anfrage oben musst du einige Dinge im Apache tun:mod_ssl
installieren und aktivieren, ein SSL-Zertifikat erstellen und im Falle eines anderen Ports den entsprechendenListen 54
Eintrag in der Dateiports.conf
vornehmen.von Andreas
Schönes Tutorial, danke dafür!
Kleiner Hinweis: Beim Installieren des Keys muss es statt ‘–keyhserver’ ‘–keyserver’ heißen.
von Daniel
Servus Andreas,
danke für den Hinweis – habe ich gleich angepasst. 😉
Super, wenn dir das Tutorial geholfen hat.
von Thomas
Super Tut und sehr hilfreich.
Aber gibt es denn mitlerweilen eine Möglichkeit,
das ganze auch auf einem Raspberry zum laufen zu bekommen?
Das Inet ist da nicht wirklich sehr informativ.
(Sorry wenn es Off-Topic ist.)
von Daniel
Hallo Thomas,
interessante Frage, welchen Raspberry hast du denn im Einsatz?
Ich probiere das mal aus.
von Arman
Hallo Daniel,
also bei mir hört es schon bei der Paket Installation auf. Weder loolwsd noch code-brand werden gefunden. Gibt es andere Source oder Adressen wo die Pakete noch geladen werden können?