Collabora in docker - coolwsd on the host - How to integrate?

Hi there,

i installed a collabora server according to the instructions from here:

and coolwsd from here:

I have configured the /etc/coolwsd/coolwsd.xml (groups) so that only my Nextcloud can access it. But it doesn’t work. I think the problem is, that collabora is running in the docker container and coolwsd on the host.

Does anyone have any tips on what i need to do now?

that collabora is running in the docker container and coolwsd on the host.

coolwsd is Collabora Online.

On the Hetzner website, " Schritt 3 - Collabora Container starten" show that collabora online is started as a docker container (I don’t really understand German though). This should be all you need. The “Setting up and configuring native CODE packages on Linux” (second link) is about installing distribution package on a server, which is if you do NOT use Docker images, and isn’t linked from the previous document.

coolwsd will run inside the docker image.

Oh no…then i missunderstoof this completly :hear_no_evil: :see_no_evil:

But Hetzner wrote exactly this.
At the end of the description, they write:

“Schritt 11 - Nur der eigenen Nextcloud-Instanz Zugriff erlauben

Folge dieser Collabora Online Anleitung (Setting up and configuring native CODE packages on Linux - Collabora Office and Collabora Online), um die notwendigen Pakete zu installieren.”

In englisch:

"Step 11 - Only allow access to your own Nextcloud instance

Follow these Collabora Online instructions (Setting up and configuring native CODE packages on Linux - Collabora Office and Collabora Online), to install the necessary packages.

Ok, so now i have to make the the “/etc/coolwsd/coolwsd.xml” from inside docker persistent on the host. I’am very new on docker. I know that this is possible but i am not sure how exactly. Any Tipps?

Ok, i’ve been one step further:

I’ve startet the container and copied the the coolwsd.xml from inside docker to the host:

docker cp container-id:/etc/coolwsd/coolwsd.xml /docker_persistent_files/coolwsd.xml

Then i customised the file on the host (/docker_persistent_files/coolwsd.xml) as required, adjusted the rights of the file to 644 and started the docker container with the additional option:

-v /docker_persistent_files/docker_coolwsd.xml:/etc/coolwsd/coolwsd.xml

Here my changes of the coolwsd.xml:

<alias_groups desc="default mode is 'first' it allows only the first host when groups are not defined. set mode to 'groups' and define group to allow multiple host and its aliases" mode="groups">
<group>
       <host desc="hostname to allow or deny." allow="true">test123.com</host>
</group>

alias_groups desc
→ Changed from “first” to “groups”
→ Set “test123.com” as domain

With this setting, my NC server should not have access to the CB server. But it does have it anyway?

My problem still existst. No ideas ???

Have really no one an idea what the problem is?

if “aliasgroups” is the only setting you want to adopt there is no need to persist the coolwsd.xml - use the “native” way and provide .env variable: Important changes regarding COOL/CODE docker versions from v21.11.3.6 on (multiple domains setup) - #2 by wwe - 📄 Collabora - Nextcloud community

I finally had time to test it.

I have now also tested this with the environment variable in the docker startup command. To find out whether my instance is being blocked, I tried:

-e aliasgroup1=test.com

Nevertheless, I was able to access it via my NC instance and create and edit documents! It took me quite a while to find out, that the domain must be specified including “http://” or “https://”, otherwise the parameter probably does not apply!

-e aliasgroup1=https://test.com

This works now. The same applies, of course, if you do it via the “coolwsd.xml” file.

Another point that is a little confusing: If the entry is set correctly and takes effect and my domain is locked out (for testing), NC still shows “Collabora Online Server is accessible” in the Admin/Office and the field is green!? But Office documents can no longer be edited.

Why is this so? Can’t it be done in such a way, that the server is then no longer accessible for other sites than the permitted one?