Docker image

As an alternative to native packages, Collabora Productivity provide scripts and Dockerfile’s to create a Collabora Online Docker image.

You either need native packages, or the Docker image, not both. Docker images can be created on demand from the latest version of Collabora Online and the underlying system components. Please find everything in Collabora Online source code repository on GitHub.

Dockerfile

The provided Dockerfile is a working sample. Feel free to add more packages to it, for example more fonts, if you need them.

Pre-made Docker image

The CODE Docker image can be installed to any x86-64 or arm64 host, and it is fully configurable. For more information about setup and configuration for deployment, please read the CODE Docker page. If you want to try it out quickly, you can set up CODE docker image with file sharing integration in less than 5 minutes in a very basic way, following these instructions: quick tryout with ownCloud or quick tryout with Nextcloud.

Build Docker image

Scripts available at https://github.com/CollaboraOnline/online/tree/master/docker

Docker image can be built from packages or from source code.

Build latest CODE based on Ubuntu 18.04 LTS

cd from-packages
docker build --no-cache -t mydomain/code -f Ubuntu .

Build Collabora Online 6.4

cd from-packages
docker build --no-cache --build-arg type=cool --build-arg secret_key=<....> -t mydomain/cool -f Ubuntu .

Build Collabora Online 4.2 based on RHEL8

cd from-packages
# Get your secret URL key from https://support.collaboraoffice.com/ (Collabora Partners/Customers)
docker build --no-cache --build-arg version=4.2 --build-arg type=cool --build-arg secret_key=<....> -t mydomain/cool -f RHEL8 .

Build Collabora Online 6.4 license key enabled version

cd from-packages
docker build --no-cache --build-arg type=key -t mydomain/cool -f Ubuntu .

Build Collabora Online from master branch (from source code)

cd from-source
./build.sh

Check build.sh for more build options!

Create a container from the image and run it

You need to pass the domain name or IP address of your WOPI host in an environment variable. Interactive mode:

docker run -t -i -p 9980:9980 -e "domain=your\\.wopihost\\.com" collabora/online

It will log to console.

Note: for the faster jail creation via bind mount (with Collabora Online 6.4 and higher), you need to use docker run command with the --privileged flag.

Daemon mode:

docker run -t -d -p 9980:9980 -e "domain=your\\.wopihost\\.com" --restart always collabora/ online

You can follow logs with:

docker logs --follow <container name>

Read more about logging at https://docs.docker.com/engine/admin/logging/overview/ .

Other optional environment variables that you can pass to collabora/online

username

User name for the Admin Console

password

Password for the Admin Console

DONT_GEN_SSL_CERT

When this environment variable is set (is not “”), then startup script will not generate a new SSL certificate signed by a dummy CA. It is useful, if you want to use your own SSL certificate for some reason.

cert_domain

When this environment variable is set (is not “”), then startup script will generate a new SSL certificate signed by a dummy CA for this domain, not for localhost

server_name

When this environment variable is set (is not “”), then its value will be used as server name in /etc/loolwsd/loolwsd.xml . Without this, CODE may not deliver a correct host for the websocket connection in case of a proxy in front of it.

dictionaries

By default only limited set of spelling dictionaries and thesauri are configured for Collabora Online, mainly for performance reasons. The default set of languages is the following: de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru. With the dictionaries environment variable you can change this list. The dictionaries environment variable should contain the space separated list of language codes (optionally followed by country code). In order to save resources, it makes sense to load only those dictionaries that are actually needed.

extra_params

You can pass extra command line parameters to loolwsd via this environment variable. For example, if you want to start loolwsd without SSL, when you test or develop, the syntax is: "-e extra_params=--o:ssl.enable=false". To learn about all possible options, refer to the self-documented /etc/loolwsd/loolwsd.xml configuration file in the Docker image.