Collabora - LibreOffice als Cloud

Hintergrund: Eigene Online-Office Suite als reine Web-Anwendung, OpenSource, basierend auf LibreOffice
Installation erfolgt auf einer Test-Maschine die als Ubuntu16.04 (Server) neu aufgesetzt wurde.

Voraussetzung:

Collabora arbeitet nicht "allein", sondern benötigt eine Sync&Share-Anwendung, die sich als Basis eignet. In diesem Beispiel wird eine Nextcloud-Installation verwendet. Collabora wird von dieser Installation aus als WOBI-URL eingebunden

1. Installation Von Nextcloud

1.1 Benötigte Ubuntu-Pakete installieren:

apt-get install apache2 mariadb-server libapache2-mod-php7.0 apt-transport-https
apt-get install php7.0-gd php7.0-json php7.0-mysql php7.0-curl php7.0-mbstring
apt-get install php7.0-intl php7.0-mcrypt php-imagick php7.0-xml php7.0-zip
apt-get install php7.0-ldap

1.2 Download von Netxcloud

Der Download erfolgt über diese Adresse:
https://download.nextcloud.com/server/releases/nextcloud-12.0.0.zip
Entpacken nach:
/var/www/html/netxcloud

1.3 Anlegen einer Site-Configuration im Apache mit der Datei /etc/apache2/sites-avaliable/netxtcloud.conf:
Alias /nextcloud "/var/www/html/nextcloud/"

<Directory /var/www/html/nextcloud/>
  Options +FollowSymlinks
  AllowOverride All

 <IfModule mod_dav.c>
  Dav off
 </IfModule>

 SetEnv HOME /var/www/html/nextcloud
 SetEnv HTTP_HOME /var/www/html/nextcloud

</Directory>

Anschließend aktivieren mitb "a2ensite nextcloud"

1.4 Einrichten einer Mariadb-Datenbank:

create database nextcloud character set utf8 collate utf8_bin;
grant select,insert,update,delete,create,drop,alter,index on nextcloud.* to 'nextcloud'@'localhost' identified by '<passwd>';

1.5 Erst-Konfiguration Nextcloud

  Im Browser aufrufen:
    https://<meinserver.<meinedomain>.de/nextcloud/index.php
        • Administrator: admin <adminpasswd>
        • Datenbank: localhost, User nextcloud, Passwort <passwd>

Optional: Anbindung an einen AD-Controller
    • LDAP-Authentifikation (AD)
        • Modul LDAP aktivieren (Einstellungen-> AddOns)
        • Administraton -> LDAP/AD Integration
            - Host: <AD-Domäne>
            - User-DN: AD-User
            - Base-DN: <Domänen-Basis>
            - Filter:(&(objectCategory=Person)(sAMAccountName=*)(!(UserAccountControl:1.2.840.113556.1.4.803:=2)))

2. Collabora-Installations-Beschreibung für Ubuntu 16.04:

Beschreibung unter https://www.collaboraoffice.com/code/

Falls ein Proxy verwendet werden muss, wird dieser in der apt-Konfiguration angegeben::

/etc/apt/apt.conf.d/00proxy
Acquire::http::Proxy "http://proxy.example.de:80";
Acquire::https::Proxy "http://proxy.example.de:80";


2.1 Hinzufügen der Repositories für Collabora


# import the signing key
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0C54D189F4BA284D

# add the repository URL to /etc/apt/sources.list
echo 'deb https://collaboraoffice.com/repos/CollaboraOnline/CODE ./' >> /etc/apt/sources.list

2.2 Installation der collabora-Pakete
# perform the installation
apt-get update && apt-get install loolwsd code-brand


2.3 Anpassen der Konfiguration unter  /etc/loolwsd/loolwsd.xml
# diff loolwsd.xml-orig loolwsd.xml

59c59,60
<         <ca_file_path desc="Path to the ca file" relative="false">/etc/loolwsd/ca-chain.cert.pem</ca_file_path>
---
>               <!--        <ca_file_path desc="Path to the ca file" relative="false">/etc/loolwsd/ca-chain.cert.pem</ca_file_path> -->
>         <ca_file_path desc="Path to the ca file" relative="false"></ca_file_path>
72a74
>             <host desc="Regex pattern of hostname to allow or deny." allow="true"><Nextcloud-Host></host>

Kopieren des SSL-Keys und des Zertifikates unter /etc/loolwsd/key.pem und /etc/loolwsd/cert.pem

2.4 Starten der Collabora Software

 systemctl start loolwsd.service

2.5 Anpassen der Apache Config

Anlegen einer Site-Konfig für Apache unter /etc/apache2/sites-avaliable/lool.conf

<VirtualHost *:443>
  ServerName collabora.example.com:443

  # 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
</VirtualHost>

Anschließend aktivieren mit a2ensite lool

3. Einbinden in Nextcloud:

3.1 Vorbereitung

Das Plugin für Collabora muss in Nextcloud aus dem Repository von Nextcloud eingebunden werden. Falls der Server die Verbindung nur über einen Proxy aufbauen kann, muss die folgende Einstellung vorgenommen werden:

    Ergänzen in der /var/www/html/nextcloud/config/config.php
'proxy' => 'http://proxy.hs-owl.de:80',

Achtung: Diese Einstellung wird nur für Aktivierung des Collabora-Plugins benötigt. Zur weiteren Konfiguration muss sie wieder entfernt werden!!!

Für die Self Signed Certs ausführen:
    #sudo -u www-data php /var/www/nextcloud/occ security:certificates:import /etc/ssl/certs/ssl-cert-snakeoil.pem
    

3.2 Konfiguraton in Nextcloud

Im Web-Portal von Nextcloud als admin-User anmelden und dort unter "Einstellungen" -> "Apps" -> "Büro&Text" ->"Collabora Online" aktivieren
 Dann unter Einstellungen->Administration->Collabora Online die neue URL einstellen:
        https://<collabora-server>

Fertig!

 

Nun können ODT- und Word-Dateien direkt im Portal bearbeitet werden, ohne sie herunter zu laden oder Browser-Plugins zu benutzen. Auch Versionen und gemeinsame Bearbeitung ist hier möglich!