Collabora on public http website, with Docker, Nextcloud on Windows

After successfully setting up Collabora on localhost on Windows Using Nextcloud in Docker together with Collabora in Docker, I am experiencing slight technical challenges to convert to a publically available host of collabora, as well as identifying/localising what the problem is. I have 4 “suspects”:

  1. My Collabora installation recipe/command
  2. My DNS server settings
  3. My Firewall settings
  4. The http or ssl settings

Starting with documentation of the installation procedure on a Windows 10 pc with Docker version 19.03.5, build 633a0ea:

0.1 The nextcloud server is installed with command:

docker run -d -p 8080:80 nextcloud

But I doubted with:

docker run -d -p 127.0.0.1:8080:80 nextcloud

As I did not know why the Collabora should include the 127.0.0.1: and Nextcloud not.
0.2 Next I installed collabora on docker with:

docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=example1\\.my-website\\.eu' --restart always --cap-add MKNOD collabora/code

docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=example1\\.my-website\\.eu' -e "username=my-nextcloud-login" -e "password=my-nextcloud-pw" --restart always --cap-add MKNOD collabora/code

docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=example1\\.my-website\\.eu' -e "extra_params=--o:ssl.enable=false" --restart always --cap-add MKNOD collabora/code

docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=example1\\.my-website\\.eu' -e "username=my-nextcloud-login" -e "password=my-nextcloud-pw" -e "extra_params=--o:ssl.enable=false" --restart always --cap-add MKNOD collabora/code

Where I used http://example1.my-website.eu as the adres on which I set up the Nextcloud configuration.

0.3 Next I tried the following hostnames for Collabora at: http://example1.my-website.eu:8080/settings/admin/richdocuments:

http://example2.my-website.eu
http://example2.my-website.eu:9980
http://example1.my-website.eu
http://example1.my-website.eu:9980
http://localhost
http://localhost:9980
http://127.0.0.1
http://127.0.0.1:9980

The combinations did not yield successful editing of an .odt file in collabora because it failed to load collabora.

  1. For my DNS settings I have entered the following in the Tecnnitium DNS server I host on the same pc:


    To verify the example1.my-website.eu and example2.my-website.eu are accessible, I entered them into dnschecker.org which all resolve both of the adresses to my ip adress.

  2. To check whether the ports are opened I, I opened cmd from another pc on another network and typed:

telnet my-website.eu 8080
telnet my-website.eu 9980
telnet my-website.eu 80
telnet my-website.eu 443
telnet my-website.eu 3000

telnet http://my-website.eu 8080
telnet http://my-website.eu 9980
telnet http://my-website.eu 80
telnet http://my-website.eu 443
telnet http://my-website.eu 3000

telnet http://example1.my-website.eu 8080
telnet http://example1.my-website.eu 9980
telnet http://example1.my-website.eu 80
telnet http://example1.my-website.eu 443
telnet http://example1.my-website.eu 3000

telnet http://example2.my-website.eu 8080
telnet http://example2.my-website.eu 9980
telnet http://example2.my-website.eu 80
telnet http://example2.my-website.eu 443
telnet http://example2.my-website.eu 3000

Most of them return Connect failed, except for telnet http://my-website.eu 80 which returns an html body with error 400. Another doubt I have, is that I have a reverse proxy in windows ISS under the website rules, which redirects the incoming traffic of port (443 or 80, I don’t recal, it’s not a required input but implicit) to port 3000 since the the website runs on node express at port 3000. I thought this might also unwantedly redirect the incoming Collabora calls at port 9980.

  1. I know it is better to implement ssl, however, right now I can’t yet get the basic setup without ssl running so I try to make smaller steps, and implement ssl once I have a working http implementation. I am aware collabora won’t work on http if nextcloud runs on https, however the nextcloud also doesn’t have https but runs on http. To try to ensure Collabora uses http I tried including the -e "extra_params=--o:ssl.enable=false" parameter. But I have not yet made collabora usable via nextcloud on example1.my-website.eu:8080.

To check whether collabora is actually running, I executed commands:

curl -k https://localhost:9980

Which returns:

curl: (35) schannel: next InitializeSecurityContext failed: SEC_E_INVALID_TOKEN (0x80090308) - The token supplied to the function is invalid

I think that might be because I lastly tried an installation without nextcloud username and password.
For another collabora installation command (I think the one that included the username and password) I have also retrieved:

curl -k https://[ip-of-container]:9980/hosting/capabilities
{"convert-to":{"available":true},"hasMobileSupport":true,"hasTemplateSaveAs":true,"productName":"Collabora Online Development Edition"}

But still no acces to collabora when I open an .odts file in Nextcloud.

Hence I have the following two questions:

a. Can you identify what mistake(s) I’ve made for a public http setup (with only public documents)?
b. What should I change to be able to access a shared document in Collabora from a public/different computer?