Unable to use Collabora

Hello everyone,

I’ve installed latest collabora/code docker image following the official documentation on Nextcloud website but I don’t manage to make it work after several installs/uninstalls/stops/starts of docker image and several checking of other topics and documentation.

NC version: 11.0.0.10
Collabora app version : 1.1.24

Here is what I can read on docker image after trying to open a doc on Nextcloud:

loolwsd version details: 1.9.8 - 1.9.8                                                                                                     
loolforkit version details: 1.9.8 - 1.9.8                                                                                                  
wsd-00026-0030 0:04:20.649478 [ client_req_hdl ] ERR  File [/usr/share/loolwsd//loleaflet/1.8.6/loleaflet.html] does not exist.            
office version details: { "ProductName": "Collabora Office", "ProductVersion": "5.1", "ProductExtension": ".10.12", "BuildId": "653cc4c38dd2c05aecbee156aef460f5a361e579" }                                                                                                           
wsd-00026-0030 0:05:02.527130 [ client_req_hdl ] ERR  File [/usr/share/loolwsd//loleaflet/1.8.6/loleaflet.html] does not exist.

And when I create a new spreadsheet for example:

wsd-00025-1922 0:38:15.051991 [ client_ws_0009 ] ERR  Error in client request handler: Host not found| LOOLWSD.cpp:966                     
wsd-00025-1924 0:38:15.203872 [ client_ws_000a ] ERR  Error in client request handler: Host not found| LOOLWSD.cpp:966

Here is the command I ran on server 192.168.1.100:

docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=cloud\\.mydomain\\.com' --restart always --cap-add MKNOD collabora/code

And here is my vhost config on server 192.168.1.101:

ServerName office.mydomain.com

SSLEngine on
SSLCertificateFile /.../xxx.crt
SSLCertificateKeyFile /.../xxx.key
SSLCACertificateFile /.../xxx.crt

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 On

# Container uses a unique non-signed certificate
SSLProxyEngine On
SSLProxyVerify None
SSLProxyCheckPeerCN Off
SSLProxyCheckPeerName Off
SSLProxyCheckPeerExpire 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://192.168.1.100:9980/loleaflet retry=0
ProxyPassReverse /loleaflet https://192.168.1.100:9980/loleaflet

# WOPI discovery URL
ProxyPass /hosting/discovery https://192.168.1.100:9980/hosting/discovery retry=0
ProxyPassReverse /hosting/discovery https://192.168.1.100:9980/hosting/discovery

# Main websocket
ProxyPassMatch "/lool/(.*)/ws$" wss://192.168.1.100:9980/lool/$1/ws

# Admin Console websocket
ProxyPass /lool/adminws wss://192.168.1.100:9980/lool/adminws

# Download as, Fullscreen presentation and Image upload operations
ProxyPass /lool https://192.168.1.100:9980/lool
ProxyPassReverse /lool https://192.168.1.100:9980/lool

You may see something wrong in these configs/commands.
Thank you in advance for your help.

there seems to be a problem with the collabora-app or docker-image anyway, see here: https://github.com/nextcloud/richdocuments/issues/4

You are using version 1.9.8, yet in the logs I see request to /usr/share/loolwsd//loleaflet/1.8.6/loleaflet.html. Naturally, it does not exist, only /usr/share/loolwsd//loleaflet/1.9.8/loleaflet.html exists. Maybe you have discovery.xml in cache. Restart webserver. Maybe you have old JS in browser cache. Clean browser history. Then try again.

Indeed today I don’t have this error anymore but just as I had before:

wsd-00025-0027 0:03:57.009583 [ client_ws_0005 ] ERR  Error in client request handler: Host not found| LOOLWSD.cpp:966

“Host not found” sounds like a DNS issue.

This does not look right. There should be only one backslash, you want to escape the dots, not the backslashes.

Hello,

Now using:

  • Nextcloud 11.0.1
  • Collabora 2.0.2 docker image

I removed one backslash before each dot sign.
Collabora frame loads since I removed this line from my Apache config:
Header set X-Frame-Options: “sameorigin”

At each try the 3 following lines appear on my docker image log:
wsd-00026-0029 23:00:50.743054 [ client_req_hdl ] WRN WOPI host did not pass optional access_token_ttl| wsd/FileServer.cpp:255
wsd-00026-0028 23:00:51.325842 [ client_ws_002c ] ERR Error in client request handler: DNS error| wsd/LOOLWSD.cpp:1038
wsd-00026-0030 23:00:51.581547 [ client_ws_002d ] ERR Error in client request handler: DNS error| wsd/LOOLWSD.cpp:1038
wsd-00026-0028 23:00:54.216856 [ client_ws_002e ] ERR Error in client request handler: DNS error| wsd/LOOLWSD.cpp:1038

How can I proceed to remove this DNS error?

You need to remove that container and recreate with the \ back in the run line.

You need to find the real reason why you are getting the above errors with the correct manner and format of your domain.

I am only saying this as now I don’t think there is a fix to your system until you do so.

If the double backslash was wrong then nobody would be running Collabora via the instructions given. I am and so are many others.

I am on Debian and apart from the problem with Aufs and swapping to device-mapper and with self hosting managing your subnets DNS as the docker client is also a subnet client which many overlook.
It works fine and generally much of the errors are config error and confusion over the subdomains, dns and Aufs.

The problem is there is disagreement about Aufs support in the main Kernel so we are not all on the same playing field and Docker is very Distro affected.

I spent a week scratching my head and to be honest if it wasn’t for a bit of help from @Ark74 I would of been stuck.

It caused me so much of a headache I did a noob tutorial by a noob, I used to be a sysadmin but that was almost 20 years ago and the install with hindsight maybe should mention a few things.

That is for Debian Jessie with Ubuntu Xenial (16.04 +) if you install linux-images-extra and linux-images-virtual Ubuntu supports Aufs and I think it works well.

sudo linux-image-extra-$(uname -r) linux-image-extra-virtual doesn’t exist for Debian but this should work.

Run from there repos and get the most current.

So no need to swap to device-mapper as background storage.

If you are going to run with different config setting as you propose with all the differences distro’s seem to bring we are likely going to be unable to help each other as our systems will be very different.

This is very true with Debian and the info Docker are sharing is cynical in my mind.

https://docs.docker.com/engine/installation/linux/debian/

With this little bit of info that is relatively worthless and ignore the rest unless you are going to swap device-mapper for aufs support.

Enable the backports repository. See the Debian documentation
Ok what am I supposed to do with the backports? The fact of the matter is Docker uses Aufs and Debian have removed it from the mainline Kernel and Docker don’t want to mention this.

So depending on distro we are not all the same, hey you can edit the instructed methods that work for many if you want.

But check how Docker should be installed on your distro and just like apache / mariadb / php it may have distro differences that are out of the scope in nextcloud install instructions.

docker ps -a #list all containers.
docker stop [container-id] #stop container
docker rm [container-id] #delete container
docker images #list all images
docker rmi [image-id] #delete image
docker exec -i -t [container-id] /bin/sh #run shell inside container
docker logs [container-id] #view log
docker info #environment setup

https://docs.docker.com/engine/reference/commandline/docker/1

Check your DNS on the server and inside the container.
nslookup example.com
Check your certs on the server and inside container.
openssl s_client -connect example.com:443

That is about the best I can do and I am actually wondering why the Nextcloud guys are not publishing this info as many people are landing as noobs with nextcloud and leaving with the feeling it is an unsolid product, which it isn’t, but how daft is that?