Nextcloud: Install Collabora Online
This installation guide is tested with Nextcloud 11, 12 and 13 on Ubuntu 16.04.
See also installation instructions for Nextcloud 15 on Ubuntu 18.04.
Prerequisites
Setup Subdomain
on your nameserver, for example office.domain.xx. The subdomain is essential for running a Collabora online server.
Install SSL Certificate
Install the Collabora Online Server
docker pull collabora/code docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=cloud\\.domain\\.xx\|nc\\.domain2\\.xx' -e 'username=admin' -e 'password=Secret.Password' --restart always --cap-add MKNOD collabora/code
Adjust domains, username and password. If you have more than one vHost with Collabora, be sure to add them in the docker start command. Otherwise you’ll get an error message:
Unauthorised WOPI host

Add Collabora to services
vi /etc/services
collabora 9980/tcp # Nextcloud
netstat -pat | grep collabora
tcp 0 0 localhost:collabora *:* LISTEN 9756/docker-proxyInstall the Apache Reverse Proxy
a2enmod proxy a2enmod proxy_wstunnel a2enmod proxy_http a2enmod ssl
Configure a subdomain to proxy the traffic
<VirtualHost *:80>
ServerName office.domain.xx
ServerAdmin webmaster@domain.xx
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost 10.20.30.40:443>
ServerName office.domain.xx:443
ServerAdmin webmaster@domain.xx
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/office.domain.xx/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/office.domain.xx/privkey.pem
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
# https://wiki.ubuntuusers.de/Apache/mod_proxy_html/
ProxyRequests 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>
</IfModule>Adjust domain and IP address.
Restart Apache
service apache2 restart
WOPI discovery URL
https://office.domain.xx/hosting/discovery

Collabora Online Development Edition – Admin
https://office.domain.xx/loleaflet/dist/admin/admin.html
Credentials are of the docker run command as specified above
... -e 'username=admin' -e 'password=Secret.Password' ...

Install Collabora Online app
of the Nextcloud app store: apps.nextcloud.com/apps/richdocuments
Configure the app
Go to Admin Settings | Collabora Online and enter the subdomain

If the Collabora Online Server is not running or not configured in the Nextcloud administration, you’ll get an intern server error:

Also check if SSL certificates are setup correct.
Congratulations!
Your have successfully installed and configured Collabora Online Office.

