Collabora Online Development Edition (CODE)
With the Collabora Online Development Edition (CODE) you can easily get your own online Office Suite up and running at home!
The development edition is aimed at home users and contains the latest and greatest developments. We want as many people as possible to try it out and get back control of their own online documents. We’d also love to get people involved in our efforts to make LibreOffice Online even better. Download the Docker Image, enjoy using it at home and why not participate in the project too!
The current edition is CODE 2.0 (released: November 2, 2016)
Getting set up
You can grab the latest docker image from Docker Hub here:
Or grab it like this:
$ docker pull collabora/code $ docker run -t -d -p 127.0.0.1:9980:9980 -e "domain=<your-dot-escaped-domain>" \ -e "username=admin" -e "password=S3cRet" --restart-always --cap-add MKNOD collabora/code
<your-dot-escaped-domain> is the WOPI host, i.e. your preferred File Sync and Share solution that implements WOPI protocol, for example
share\\.example\\.com. You need double backslash in command line, because shell escapes the first, and the domain parameter takes a regular expression. Note: you can enable multiple domains by separating the domain names with
password parameters enable the admin console feature of CODE. You can access the admin console at
If you need to tweak other parameters of CODE, you can edit the configuration file
/etc/loolwsd/loolwsd.xml in the Docker image, it is self documented.
Setting up Apache 2 reverse proxy
CODE is listening on port 9980 of localhost. You can use for example Apache 2 reverse proxy to make it accessible from the outside world. Make sure that you enable the following Apache 2 modules:
ssl. Create a virtual host for CODE, for example
collabora.example.com, and use the following sample configuration:
<VirtualHost *:443> ServerName collabora.example.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>
Now you can give
https://collabora.example.com as the WOPI URL in your preferred File Sync and Share solution. See below for specific examples.
- This docker image does not work on Ubuntu 14.04 LTS, because Ubuntu 14.04 LTS has missing kernel compile option CONFIG_AUFS_XATTR=y, which is leading to setcap not working on docker’s aufs storage. Upstream bug: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1557776
What next ?
That’s it – once you’ve integrated your docker image with your preferred File Sync and Share (FSS), or started up your VM you should be setup to share and collaborate on your own documents, with friends, from the comfort of your own home.
So now you’re all happy and secure, why not:
Participate in the project
Checking out the code to build it yourself is easy; http://cgit.freedesktop.org/libreoffice/online has the latest commits, and build instructions. After compiling ‘online’ just do a $make run and follow the link to tweak things live. The API is visible here: https://www.collaboraoffice.com/collabora-online-editor-api-reference/.
To send patches, and collaborate with other developers working on the code please do join in at #libreoffice-dev on irc.freenode.org, or join the Mailing List. If you want to help update the documentation please do help out in the Wiki, to file bugs please head to Bugzilla and as you file a bug – please do take the time to confirm at least one other un-confirmed bug if there are any. Help fixing bugs, and patches that arrive via gerrit are most easy for us to merge.
What is CODE? vs. Collabora Online?
For more details on enterprise support from various partner solutions please see (in reverse alphabetical order):
Download the White Paper
“8 Million Reasons to Choose Collabora CloudSuite”
Why distribute a Virtual Machine, not a live web session?
- With the Docker Image of Collabora Online Development Edition (CODE) home users can easily get their own online Office Suite up and running at home
- We want people to hack this code and play with it. Doing that live on a server used by tens of thousands of other people seems unlikely to be a good idea – right?
- We would prefer not to be hosting many tens of thousands of concurrent users – we have no desire to compete with our partners whose core competence is doing exactly that.
- Isolating everything into a Docker Image makes it easy for us to package and update everything in a consistent lump, and it makes it rather easier and safer for you to consume. You can upgrade your FSS solution, fiddle with your database, and so on all without any risk to the rest of your data.
Where can I find out more about the technical architecture?
Clearly the code provides the canonical version of everything. However – here is some basic overview. The code splits into four pieces:
This is the API that allows the re-use of the bulk of the existing LibreOffice code. It exposes a simple abstract API to allow loading, saving, and rendering documents to image tiles, and also exposes an event based editing core. This piece lives in the main core.git module of LibreOffice.
Web Services daemon
This manages incoming session traffic, services cached document tiles, and spawns LibreOfficeKit client instances, setting up heavily locked down chroot jails for them. The code for this piece lives in loolwsd/ inside online.git.
Clearly on its own CODE is not terribly useful – so make sure you integrate it with your preferred FSS cf. above. The FSS implements a protocol such as WOPI to serve your document data, and integrate with its existing authentication mechanism.
There are a number of known issues that are hard for us to fix in CODE. These include copy & paste – while we can provide rich eg. RTF content for selections from the server to the browser, existing browser APIS are extraordinarily unpleasant (to the point of un-usability) for copy/pasting rich content – as such, we do plain text copy/paste.
Why didn’t you fix my bug yet for free?
Please feel free to join our efforts in making this the best Online Office Suite. We’re working hard to make the CODE better, but more help is always welcome. Learn more in “Participate in the project”.
Is this all Free Software / Open Source?
Yes, of course. That was easy wasn’t it: Open First.
Where is the roadmap?
The development edition, aimed at home users, contains the latest and greatest developments and things are moving fast, but there is no published roadmap. If you want features delivered to your schedule then you’re looking for the commercial edition of Collabora Online. Having said that – clearly we are currently doing only basic editing (with shared editing), the next focus will be Collaborative editing, and then richer editing – however, that depends on who gets involved.
Can I re-use your screenshots & content for my blog / article?
Yes naturally, please use this page’s content under some CC0 license / Public Domain as long as you respect our trademark, we love to get the message out.
Who did the work?
CODE is built on top of a huge volume of work from both LibreOffice (credits) and is built on top of Rich Documents plugin (credits), however the Online functionality was created primarily by Collabora in partnership with IceWarp (as announced last year) – read more about the story of that here. And thanks to Lukas Reschke for help with the docker image.
Also, check out the huge amount of work done for the release of the current version, CODE 2.0.
What are the latest updates?
- January 26, 2016 – Shared Editing, Transitions and animations presentations and other improvements.
- February 25, 2016 – Spreadsheet improvements, Usability and other improvements.
- April 25, 2016 – Admin Control Panel, Spreadsheets improvements and more.
- June 2, 2016 – Improved shared editing, header menus, context menus, inserting tables, inserting comments, Impress layouts… and much more!.
- June 23, 2016 – Possibility to run loolwsd behind a proxy, Better localization, buxfixes,….
- July 4, 2016 – ‘Help’ in the menu, Translations, first revision history sidebar.
- July 19, 2016 – New docker image, Collabora Online 5.1, Status bar features.
- September 15, 2016 – Resizeable rows and columns by mouse in Calc and SSL termination support for reverse proxies.
- October 13, 2016 – UI improvements: see who is viewing the document, new menu items and bugfixes.
- October 27, 2016 – Several improvements and CODE in Pydio.
- November 2, 2016 – CODE 2.0 RELEASED
- November 11, 2016 – Inclusion of Noto font family, improved Writer format menu, page size and orientation, WOPI updates and bugfixes.
- January 5, 2017 – Insert Special Characters, Initial support for IME (allowing to type in, for example, Chinese), API updates and many stability and bug fixes.
Changes and improvements
If you have any suggestions for changes or have ideas for improvements, please contact us at email@example.com.
Just fill out this form and we’ll get back to you as soon as possible.