Docker configuration of WOPI Host failes

Hi
I am currently stuck at setting up CollaboraOnline that keeps showing “Unauthorized WOPI Host” error message.

I run Owncloud Infinite Scale and want to support CollaboraOnline by following the deployment example here: ocis/deployments/examples/ocis_full/collabora.yml at master · owncloud/ocis · GitHub . In contrast to this example I use nginx as reverse proxy and updated to the latest CODE version.

I am trying to debug and find out, that /etc/coolwsd/coolwsd.xml does not contain my owncloud address at all - in fact it looks like no aliasgroup was added. The environment variable within the running container exists and is as expected (when running echo within the running container).

My docker config for collabora/CODE looks like this:

  collabora:
    image: collabora/code:25.04.3.1.1
    networks:
      internal:
    environment:
      aliasgroup1: "https://oc.mydomain.tld:443,https://oc\\.mydomain\\.tld:443" # enable for aliasgroup1
      DONT_GEN_SSL_CERT: "YES"
      extra_params: |
        --o:ssl.enable=false \
        --o:ssl.ssl_verification=false \
        --o:ssl.termination=true \
        --o:welcome.enable=false \
        --o:net.frame_ancestors=oc.mydomain.tld
      username: admin
      password: tochange
    cap_add:
      - MKNOD
    logging:
      driver: local
    restart: always
    entrypoint: ['/bin/bash', '-c']
    command: ['coolconfig generate-proof-key && /start-collabora-online.sh']
    healthcheck:
      test: ["CMD", "bash", "-c", "exec 3<>/dev/tcp/127.0.0.1/9980 && echo -e 'GET /hosting/discovery HTTP/1.1\r\nHost: localhost:9980\r\n\r\n' >&3 && head -n 1 <&3 | grep '200 OK'"]

I found some strange errors and warnings in the logs but could not find a solution (exempt):

[ forkit ] WRN  The systemplate directory [/opt/cool/systemplate] is read-only, and at least [/opt/cool/systemplate//etc/passwd] is out-of-date. Will have to clone dynamic elements of systemplate to the jails. To restore optimal performance, make sure the files in [/opt/cool/systemplate/etc] are up-to-date.| common/JailUtil.cpp:586
[ kit_spare_002 ] ERR  Failed to get the realpath of [/opt/cool/child-roots/1-a06c2ea0/tmp/sharedpresets/template] (ENOENT: No such file or directory)| common/FileUtil-unix.cpp:63
[ kit_spare_002 ] ERR  linkOrCopy: nftw() failed for '/opt/cool/child-roots/1-a06c2ea0/tmp/sharedpresets/template'| kit/Kit.cpp:612
[ websrv_poll ] ERR  #30: Read failed, have 1 buffered bytes (ECONNRESET: Connection reset by peer)| net/Socket.hpp:1462
[ websrv_poll ] WRN  #30: Socket still open post onDisconnect(), forced shutdown.| net/Socket.hpp:1270

BTW, admin panel is available, discovery as well, curl works from collabora to owncloud and vice versa.

Any help is appreciated!
Thanks a lot!

Finally, it works for me:

  collabora:
    image: collabora/code:25.04.3.1.1
    # release notes: https://www.collaboraonline.com/release-notes/
    networks:
      internal:
    environment:
      aliasgroup1: "https://oc.mydomain.tld:443,https://oc\\.mydomain\\.tld:443"
      aliasgroup2: "http://collaboration:9300"
      DONT_GEN_SSL_CERT: "YES"
      extra_params: |
        --o:ssl.enable=false \
        --o:ssl.ssl_verification=false \
        --o:ssl.termination=true \
        --o:welcome.enable=false \
        --o:net.frame_ancestors=oc.mydomain.tdl \ 
      username: admin
      password: redacted

    cap_add:
      - MKNOD
    logging:
      driver: local
    restart: always
    entrypoint: ['/bin/bash', '-c']
    command: ['coolconfig generate-proof-key && /start-collabora-online.sh']
    healthcheck:
      test: ["CMD", "bash", "-c", "exec 3<>/dev/tcp/127.0.0.1/9980 && echo -e 'GET /hosting/discovery HTTP/1.1\r\nHost: localhost:9980\r\n\r\n' >&3 && head -n 1 <&3 | grep '200 OK'"]

I believe the error was in the config of OCIS, where I set the COLLABORATION_JWT_SECRET as requested in a release note (I think for OCIS 7.0.0). Without it works perfectly.
The errors and warnings mentioned in the initial post are still there, unfortunately.
Thanks anybody for thinking and reading.

1 Like