Collabora online setup & integration with NextCloud

Collabora is a LibreOffice based online office suite with editing functions, which supports all the major office documents. Collabora Online supports dozens of document formats including DOC, DOCX, PPT, PPTX, XLS, XLSX + ODF, Import/View Visio, Publisher and many more...

There is an app in the Nextcloud store which integrates Collabora Online with the NextCloud. Before setting this app, the document server must be up and configured properly.


  • A host supporting Docker
  • Minimum two domains ; one for nextcloud server and another for Collabora itself
  • An Apache Server running with SSL compatibility
  • Minimum two SSL certificates ; one for nextcloud server and another for Collabora itself. For this , you can use Let’s Encrypt .

First, you should install Docker. I am using Debian 9, so apt install should be enough for Docker installation in Debian/Ubuntu distros.

Once the docker is installed, download the Collabora online docker. You need to explicitly provide the domain-name of NextCloud server from which you want to access the Collabora. This can be done by providing domain names using -e parameter.

docker pull collabora/code

docker run -t -d -p -e 'domain=subdomain\\.domain\\.com|www\\.subdomain\\.domain\\.com' --restart always --cap-add MKNOD collabora/code

For example, the above command ( first) will pull the collabora. The second command will start Collabora online server, which will be only accesible via, and Feel free to provide as many domain as you want.

Docker is a set of coupled software-as-a-service and platform-as-a-service products that use operating-system-level virtualization to develop and deliver software in packages called containers. The software that hosts the containers is called Docker Engine. -Wikipedia
For help, use docker --help in a terminal.
Docker Help
Docker images & status

Now the docker is up and running. It is time for the Reverse proxy. You can use Nginx too but I will be using Apache as the reverse Proxy. You should enable SSL and Proxy, if not done already. Run the following commands and restart apache service.

sudo a2enmod proxy
sudo a2enmod proxy_wstunnel
sudo a2enmod proxy_http
sudo a2enmod ssl

I have created two domains, one for Nextcloud and other for Collabora. The initial configuration is done already. Here I will show you only the reverse proxy configuration related to Collabora.

<IfModule mod_ssl.c>
<VirtualHost *:443>
   Redirect permanent /

SSLCertificateFile /etc/letsencrypt/live/
SSLCertificateKeyFile /etc/letsencrypt/live/
Include /etc/letsencrypt/options-ssl-apache.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
  Options -Indexes

  # SSL configuration, you may want to take the easy route instead and use Lets Encrypt!
  SSLEngine on
  SSLCertificateFile /etc/letsencrypt/live/
  SSLCertificateKeyFile /etc/letsencrypt/live/
  Include /etc/letsencrypt/options-ssl-apache.conf
  SSLProtocol             all -SSLv2 -SSLv3
  SSLHonorCipherOrder     on

  # Encoded slashes need to be allowed
  AllowEncodedSlashes NoDecode

  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined

  # keep the host
  ProxyPreserveHost On
  SSLProxyEngine on
  SSLProxyVerify none 
  SSLProxyCheckPeerCN off
  SSLProxyCheckPeerName off
  SSLProxyCheckPeerExpire off

  # static html, js, images, etc. served from loolwsd
  # loleaflet is the client part of Collabora Online
  ProxyPass           /loleaflet https://localhost:9980/loleaflet retry=0
  ProxyPassReverse    /loleaflet https://localhost:9980/loleaflet

  # WOPI discovery URL
  ProxyPass           /hosting/discovery https://localhost:9980/hosting/discovery retry=0
  ProxyPassReverse    /hosting/discovery https://localhost:9980/hosting/discovery

  # Capabilities
  ProxyPass           /hosting/capabilities https://localhost:9980/hosting/capabilities retry=0
  ProxyPassReverse    /hosting/capabilities https://localhost:9980/hosting/capabilities

  # Main websocket
  ProxyPassMatch "/lool/(.*)/ws$" wss://localhost:9980/lool/$1/ws nocanon

  # Admin Console websocket
  ProxyPass   /lool/adminws wss://localhost:9980/lool/adminws

  # Download as, Fullscreen presentation and Image upload operations
  ProxyPass           /lool https://localhost:9980/lool
  ProxyPassReverse    /lool https://localhost:9980/lool

You can download this configuration and compare with yours, from here :

Now with the assumption that your Nextcloud is using SSL and up already, I will move to the next step.

As a Nextcloud Admin, first log in to your Nextcloud and search for Collabora App. Install and activate the app. Once done, click Settings -> Collabora Online. There you just have to type in the domain of the document server:

Collabora Online settings

As you can see, you can only share the app with certain groups. Furthermore, you may specify that only certain groups may edit documents. That is also a sensible option. If you use the solution in an environment that works by default with OOMXL (Microsoft format), you can use the option as the default for new files. Once you create a document via the web GUI, it would be created as DOCX, XLSX or PPTX. If you do not activate the option, it is the LibreOffice counterparts ODT, ODS and ODP.

Collabora in Action

Anup Chhetri

IT system administrator

You may also like...

error: Content is protected !!