Public Repository

Last pushed: a month ago
Short Description
LibreOffice Online Compiled with greatly increased max connections and max open documents limits.
Full Description

The libreoffice/online image is compiled so that there can only be 20 max connections and 10 max open open documents. Those restrictions make the app unusable for many users. Therefore, I have compiled the project with the max connections and max open documents limits set to 100,000, which should be plenty for all but the largest organizations.

I have also included two modified versions of bundle.js (the meat of the web UI), both of which disable copy and cut. One of them disables export to pdf and downloads of text and presentation documents, while allowing pdf export for spreadsheets, and another allows pdf export for all document types. To use one of these alternative bundle.js's, create a container from the image, docker exec -it <container-id> bash into it and replace bundle.js with the desired alternative, then export and import that container and rebuild an image from the resulting image with a Dockerfile as simple as:
FROM <container-id>
CMD ["/"]

(loolwsd seems to do some caching.. or something.. of the bundle.js once is has started). The original bundle.js and these two alternatives are located at /usr/share/loolwsd/loleaflet/dist in the container.

PLEASE NOTE: While these modifications may help prevent your average user from getting documents out of the system, they are not foolproof. Cut and copy can be enabled rather easily to someone with knowledge of javascript and full downloads of the documents are only fully prevented if you modify your file share and sync (FSS) solution's (e.g. NextCloud) server-side code to prevent them. Also, these modifications obviously do nothing to prevent someone from taking photographs or videos of the content.

Start it up like so, replacing the domain ip, ports, domain, username and password as desired:
docker run -dt -p -e "domain=192\.168\.0\.9" -e "username=admin" -e "password=somethingsupersecret" --restart always --cap-add MKNOD


Docker Pull Command

Comments (8)
2 days ago

Thank you everyone that has pulled this image! We are now at 100 pulls and climbing!

11 days ago

@joaoguariglia Greetings, your Google translate English appears to be just fine.

I'm not sure what you mean by "your collabora is on a different server". This docker container is Libreoffice online, not Collabora, although they have committed a large number of work to the Libreoffice online project. Other than this all you should need is a reverse proxy in front of the docker container. In the NextCloud "Collabora Online" connector configuration, you enter the IP address of the server that the reverse proxy for the Libreoffice online server. This IP address must be one that is reachable by the web browser. If you have multiple NICs you can assign the IP of the reverse proxy to the second one and then put http or https://<ip or hostname> in the configuration. However, the much more common case is that you will not have two NICs and you only have one IP address for your server. In that case, you can do what I did and have your reverse proxy listen on a different port than NextCloud, and then put http or https://<ip or hostname>:<custom-port like 8443>
That way you only need one server.

11 days ago

@mailman777 Sorry for the delay, I apparently don't get notifications on new comments. If I had to guess I would say it would be because there are probably self-signed certificates involved. If you are using self-signed certificates, have you added the cert that your reverse proxy in front of the docker container uses to NextCloud's trust store? sudo -u <web-server-user> security:certificates:import /path/to/cert
To get the cert you can openssl s_client -connect to the nginx or Apache and it will be in the output. Also make sure that the reverse proxy configuration does not validate the certificates of what it is proxying to (in this case the docker container). If that does not solve the issue, then have a look at the logs of the container with docker logs <container-id>.

Wait, so now the issue is not unauthorized WOPI host, the server crashes now? What are you able to see using docker logs <id of container>?

13 days ago

Hi, I'm new to docker.

I downloaded your docker image and gave the following command:

Docker run -dt -p -e "domain = 192 \ .168 \ .20 \ .187" -e "username = admin" -e "password = 123" --restart always - Cap-add MKNOD

A-) My nextcloud is on another server:
B-) My collabora is in a ubuntu 16.04
C-) The two networks talk normally

1-) is where the nextcloud is
2-) username: is the nextcloud admin
3-) password: it is the nextcloud admin password
4-) In Nextcloud I enter what in address collabora?
I tried:

Nothing worked for me, what am I doing wrong?
Sorry my english I'm on google translate

16 days ago

Tried uninstalling and reinstalling docker with default aufs storage driver but getting internal server error in NC12. This behavior is similar to collabora/code

16 days ago


Appreciate you sharing this. Integrated it with Nextcloud 12 but I'm getting "Unauthorized WOPI host" error on opening any document.


Do you have any thoughts on how to fix this or what might be causing this error?

Best Regards.

a month ago

Sure, I thought I would share my advances with the community.

brecke, I'm not sure why the mkdir error keeps occurring, but at one point I manually created it in the container when I was making this. As for why you're unable to render the document, having a WOPI (Web Application Open Platform Interface) host to serve the document is required. If you're seeing the toolbar and everything then it should work when you integrate it with your FSS (file sync and share) solution. I used NextCloud w/ the Collabora Online connector (the NextCloud app is called richdocuments) when I set all of this up.

Please let me know if you're having issues after you integrate it w/ a FSS solution.

a month ago


Thank you for making this available.

I am able to run the container but it fails when rendering the document. The initial .odt file doesn't exist but if I create one inside the container and then try to render it in the browser I keep getting this error:

In the logs all I can see is warn:sal.osl:302:2:sal/osl/unx/security.cxx:436: mkdir(/opt/lool/.config): errno=2 every time it tries to render it.

Any ideas?