Collabora Online in Nextcloud

Bringing Self Hosted Online Office to everybody

Collabora Online is a powerful LibreOffice-based online office suite with collaborative editing, which supports all major document, spreadsheet and presentation file formats and works in all modern browsers.

View and edit documents directly in your Nextcloud

Collabora Online supports editing your documents in real time with multiple other editors, showing high fidelity, WYSIWYG rendering and preserving the layout and formatting of your documents.

Users can insert and reply to comments and invite others without a Nextcloud account for anonymous editing of files with a public link shared folder.

Collabora Online supports dozens of document formats including DOC, DOCX, PPT, PPTX, XLS, XLSX + ODF, Import/View Visio, Publisher and many more...

in action

Under your control

Most people use online services for storing their data, communication and editing documents, often giving up control over their files in exchange for the convenience of online collaboration. With Nextcloud and Collabora Online, this is no longer a trade-off.

Collabora Online is Open Source, self-hosted and secure!

For Enterprises

Enterprise users who need a more reliable and scalable solution with long term support, guaranteed response times and security updates can take advantage of our optional support contract for Collabora Online.

Collabora Online integration tutorial video

We are able to provide a solution for Online Office for the entire Nextcloud community through our partnership with Collabora in an easy to use docker image for home users.

Getting started in 3 steps

We'll describe how to get Collabora Online running on your server and how to integrate it into your Nextcloud using the docker image Nextcloud and Collabora built.

Requirements

To install it the following dependencies are required:

  1. A host that can run a Docker container
  2. A subdomain or a second domain that the Collabora Online server can run on
  3. An Apache server with some enabled modules (NGNIX instructions in a blog here)
  4. A valid SSL certificate for the domain that Collabora Online should run on
  5. A valid SSL certificate for your Nextcloud

Note: This guide does NOT cover self-signed certificates. If you use a self-signed certificate then you're mostly on your own ;-)

1. Install the Collabora Online server

The following steps will download the Collabora Online docker, make sure to replace "cloud.nextcloud.com" with the host that your own Nextcloud runs on. Also make sure to escape all dots with double backslashes (\), since this string will be evaluated as a regular expression (and your bash 'eats' the first backslash.) If you want to use the docker container with more than one Nextcloud, you'll need to use 'domain=cloud\\.nextcloud\\.com\|second\\.nexcloud\\.com' instead. (All hosts seperated by \|.)

docker pull collabora/code
			docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=cloud\\.nextcloud\\.com' --restart always --cap-add MKNOD collabora/code
			

That will be enough. Once you have done that the server will listen on "localhost:9980". Now we just need to configure the locally installed Apache reverse proxy.

2. Install the Apache reverse proxy

On a recent Ubuntu or Debian this should be possible using:

  1. apt-get install apache2
  2. a2enmod proxy
  3. a2enmod proxy_wstunnel
  4. a2enmod proxy_http
  5. a2enmod ssl

Afterward, configure one VirtualHost properly to proxy the traffic. For security reason we recommend to use a subdomain such as office.nextcloud.com instead of running on the same domain. An example config can be found below:

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

After configuring these do restart your apache using /etc/init.d/apache2 restart.

3. Configure the app in Nextcloud

  1. Go to the Apps section and choose "Office & text"
  2. Install the "Collabora Online app"
  3. Admin -> Collabora Online -> Specify the server you have setup before (e.g. "https://office.nextcloud.com")

Congratulations, your Nextcloud has Collabora Online Office integrated!


Updating

Occasionally, new versions of this docker image are released with security and feature updates. We will of course let you know when that happens! This is how you upgrade to a new version:

  • grab new docker image:
    docker pull collabora/code
  • List docker images:
    docker ps
    from the output you can glean the Container ID of your Collabora Online docker image.
  • stop and remove the Collabora Online docker image:
    docker stop CONTAINER_ID
    docker rm CONTAINER_ID
  • start the new image:
    docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=cloud\\.nextcloud\\.com' --restart always --cap-add MKNOD collabora/code

Enjoy!


Troubleshooting

Some common issues:

  • Issue: Can't configure the URL in the Admin panel.
    This is most likely caused by the Documents app being enabled. Disable it and you can set the URL.
  • Issue: I get connection errors when trying to open documents
    Be sure to check the error log from docker (docker logs id-of-your-instance). If the logs note something like:
    No acceptable WOPI hosts found matching the target host [YOUR NEXTCLOUD DOMAIN] in config.
    Unauthorized WOPI host. Please try again later and report to your administrator if the issue persists.
    you might have started the docker container with the wrong URL. Be sure to triplecheck that you start it with the URL of your Nextcloud server, not the server where Collabora Online runs on.
  • Issue: Connection is not allowed errors.
    It is possible your firewall is blocking connections. Try to start docker after you started the firewall, it makes changes to your iptables to enable Collabora Online to function.
  • Issue: We are sorry, this is an unexpected connection error. Please try again. error.
    The Collabora Online app doesn't work at the moment, if you enable it only for certain groups. Remove the group filter in the App section.
  • Issue: Collabora Online doesn't handle my 100 users.
    This docker image is designed for home usage with a limited numbers of users and open documents. If you need a more scalable solution, consider a support subscription for a reliable, business-ready online office experience.
  • Issue: Collabora Online doesn't work with Encryption.
    Yes, this is currently unsupported.

Find more questions and answers in the discussion thread on the forums and post a new topic in the Collabora category if you have unanswered questions!

Let us know what you think in the forums!