Skip to content Skip to sidebar Skip to footer

Eigener Collabora Online Server ohne Docker

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.

Kommentare anzeigenKommentare schließen

14 Kommentare

  • von tim
    Posted 12. Februar 2019 11:50 0Likes

    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
      Posted 12. Februar 2019 12:16 0Likes

      Servus Tim,

      Ich habe den Artikel angepasst, mit „mkdir -p /etc/loolwsd“ muss natürlich der Ordner erstellt werden… 😉

      VG

      Daniel

      • von Martin
        Posted 2. Juni 2019 12:31 0Likes

        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
          Posted 2. Juni 2019 12:42 0Likes

          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
          Posted 2. Juni 2019 12:48 0Likes

          Außerdem fehlt noch ein: „chgrp -R lool /etc/loolwsd/“.

  • von Jon
    Posted 21. Februar 2019 11:35 0Likes

    # sudo openssl genrsa -out /etc/loolwsd/key.pem 2048 -key /etc/loolwsd/key.pem
    Extra arguments given.

  • von Niclas
    Posted 22. Juli 2019 19:30 0Likes

    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
      Posted 5. August 2019 23:53 0Likes

      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 entsprechenden Listen 54 Eintrag in der Datei ports.conf vornehmen.

  • von Andreas
    Posted 25. August 2019 15:47 0Likes

    Schönes Tutorial, danke dafür!
    Kleiner Hinweis: Beim Installieren des Keys muss es statt ‚–keyhserver‘ ‚–keyserver‘ heißen.

    • von Daniel
      Posted 25. August 2019 16:05 0Likes

      Servus Andreas,

      danke für den Hinweis – habe ich gleich angepasst. 😉
      Super, wenn dir das Tutorial geholfen hat.

  • von Thomas
    Posted 1. Januar 2020 18:54 0Likes

    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
      Posted 9. Januar 2020 09:42 0Likes

      Hallo Thomas,

      interessante Frage, welchen Raspberry hast du denn im Einsatz?
      Ich probiere das mal aus.

  • von Arman
    Posted 8. März 2020 20:47 0Likes

    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?

Hinterlasse ein Kommentar