Installation

System requirements

For the beginning packages are only provided for the following distributions:

  • Debian 8
  • Debian 9
  • Ubuntu 16.04

More distributions will be added over time.

Additionally we require some LibreOffice packages from the official Document Foundation download repository. At the moment of writing this needs to be 5.4.3.2-2 or greater.

The required packages are:

  • libreoffice5.4 (>= 5.4.3.2-2)
  • libreoffice5.4-ure (>= 5.4.3.2-2)
  • libobasis5.4-calc (>= 5.4.3.2-2)
  • libobasis5.4-core (>= 5.4.3.2-2)
  • libobasis5.4-graphicfilter (>= 5.4.3.2-2)
  • libobasis5.4-images (>= 5.4.3.2-2)
  • libobasis5.4-impress (>= 5.4.3.2-2)
  • libobasis5.4-ooofonts (>= 5.4.3.2-2)
  • libobasis5.4-writer (>= 5.4.3.2-2)
  • libobasis5.4-en-us (>= 5.4.3.2-2)
  • libobasis5.4-en-us-calc (>= 5.4.3.2-2)
  • libobasis5.4-en-us-res (>= 5.4.3.2-2)
  • libobasis5.4-draw (>= 5.4.3.2-2)
  • libobasis5.4-extension-pdf-import (>= 5.4.3.2-2)

For convinience these packages are included in the repository explained below.

Configuring the Kopano package repositories

The package repository can either be accessed by using a combination of username & password (account can be registered at the Kopano Portal) or by using the username serial and your Kopano serial (e.g. Z…) as the password.

Adding the supported repository for Ubuntu 16.04:

URL=https://serial:your-serial@download.kopano.io/supported/documentseditor/Ubuntu_16.04/
echo "deb $URL /" > /etc/apt/sources.list.d/kopano-documentseditor.list
curl $URL/Release.key | apt-key add -
apt update

Adding the community repository for Ubuntu 16.04:

URL=https://download.kopano.io/community/libreofficeonline/Ubuntu_16.04/
echo "deb $URL /" > /etc/apt/sources.list.d/libreoffice-online.list
curl $URL/Release.key | apt-key add -
apt update

See the Kopano Groupware Core Administrator Manual for more information about our package repositories.

Installing Kopano Documents Editor (supported repository)

After the repository has been added Kopano Documents Editor can be installed by retrieving the kopano-documentseditor package with your package manager.

Installing packages on Ubuntu 16.04:

apt install kopano-documentseditor

Installing LibreOffice Online (community repository)

After the repository has been added LibreOffice Online can be installed by retrieving the libreoffice-online package with your package manager.

Installing packages on Ubuntu 16.04:

apt install libreoffice-online

Configuring LibreOffice Online and its dependencies

The configuration for LibreOffice Online and Kopano Documents Editor are the same again.

LibreOffice Online WebSocket server (loolwsd)

loolwsd is configured by default to use ssl by default, but since the package does not provide the configured ssl certificates the initial startup of the deamon will fail. To use loolwsd the admin either has to configure ssl certificates inside /etc/libreoffice-online/loolwsd.xml , or disable ssl altogether and implement a reverse proxy for this (recommended). To disable ssl the admin needs to set <enable type="bool" default="true"> to false.

<ssl desc="SSL settings">
        <enable type="bool" default="true">false</enable>
        <termination desc="Connection via proxy where loolwsd acts as working via https, but actually uses http." type="bool" default="true">false</termination>
        <cert_file_path desc="Path to the cert file" relative="false">/etc/loolwsd/cert.pem</cert_file_path>
        <key_file_path desc="Path to the key file" relative="false">/etc/loolwsd/key.pem</key_file_path>
        <ca_file_path desc="Path to the ca file" relative="false">/etc/loolwsd/ca-chain.cert.pem</ca_file_path>
        <hpkp desc="Enable HTTP Public key pinning" enable="false" report_only="false">
                <max_age desc="HPKP's max-age directive - time in seconds browser should remember the pins" enable="true">1000</max_age>
                <report_uri desc="HPKP's report-uri directive - pin validation failure are reported at this URL" enable="false"></report_uri>
                <pins desc="Base64 encoded SPKI fingerprints of keys to be pinned">
                <pin></pin>
                </pins>
        </hpkp>
</ssl>

Afterwards the deamon can be restarted by issuing systemctl restart libreoffice-online and will be reachable through port 9980. Since loolwsd listens gloablly it is recommended to block network access e.g. via iptables.

Using Apache as a reverse proxy for loolwsd

The following vHost can be used to expose LibreOffice Online on the local network.

<VirtualHost *:443>
  ServerName office.example.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
</VirtualHost>

Using Nginx as a reverse proxy for loolwsd

The following vHost can be used to expose LibreOffice Online on the local network.

server {
    listen       443 ssl;
    server_name  office.example.com;

    ssl_certificate /path/to/ssl_certificate;
    ssl_certificate_key /path/to/ssl_certificate_key;

    # 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;
    }
}