Cannot connect to Collabora server

Hi @thijssie85, thanks for helping.

Iā€™ve seen that WOPI error message on my end plenty. What makes you think heā€™s getting a WOPI error? He starts his collabora docker with docker-compose.

This is a lot, but hereā€™s the latest lines of the collabora log:

wsd-00006-00016 2020-03-30 04:14:36.393740 [ prisoner_poll ] TRC  Poll completed with 0 live polls max (5000ms)(timedout)| ./net/Socket.hpp:601
wsd-00006-00016 2020-03-30 04:14:36.393813 [ prisoner_poll ] TRC  Poll start, timeoutMs: 5000| ./net/Socket.hpp:592
kit-00019-00017 2020-03-30 04:14:36.405974 [ kit_spare_001 ] INF  Linking file "/opt/collaboraoffice6.2/program/resource/hu/LC_MESSAGES/sca.mo" to "/opt/lool/child-roots/Hhu4Pih04FZ0rx7H/lo/program/resource/hu/LC_MESSAGES/sca.mo"| kit/Kit.cpp:209
kit-00019-00017 2020-03-30 04:14:36.456107 [ kit_spare_001 ] INF  Linking file "/opt/collaboraoffice6.2/program/resource/hu/LC_MESSAGES/editeng.mo" to "/opt/lool/child-roots/Hhu4Pih04FZ0rx7H/lo/program/resource/hu/LC_MESSAGES/editeng.mo"| kit/Kit.cpp:209
kit-00019-00017 2020-03-30 04:14:36.506446 [ kit_spare_001 ] INF  Linking file "/opt/collaboraoffice6.2/program/resource/hu/LC_MESSAGES/xsc.mo" to "/opt/lool/child-roots/Hhu4Pih04FZ0rx7H/lo/program/resource/hu/LC_MESSAGES/xsc.mo"| kit/Kit.cpp:209
kit-00019-00017 2020-03-30 04:14:36.556872 [ kit_spare_001 ] INF  Linking file "/opt/collaboraoffice6.2/program/mailmerge.py" to "/opt/lool/child-roots/Hhu4Pih04FZ0rx7H/lo/program/mailmerge.py"| kit/Kit.cpp:209
kit-00019-00017 2020-03-30 04:14:36.607227 [ kit_spare_001 ] INF  Linking file "/opt/collaboraoffice6.2/program/senddoc" to "/opt/lool/child-roots/Hhu4Pih04FZ0rx7H/lo/program/senddoc"| kit/Kit.cpp:209
kit-00019-00017 2020-03-30 04:14:36.657334 [ kit_spare_001 ] INF  Linking file "/opt/collaboraoffice6.2/program/msgbox.py" to "/opt/lool/child-roots/Hhu4Pih04FZ0rx7H/lo/program/msgbox.py"| kit/Kit.cpp:209
kit-00019-00017 2020-03-30 04:14:36.707571 [ kit_spare_001 ] INF  Linking file "/opt/collaboraoffice6.2/program/libplds4.so" to "/opt/lool/child-roots/Hhu4Pih04FZ0rx7H/lo/program/libplds4.so"| kit/Kit.cpp:209
kit-00019-00017 2020-03-30 04:14:36.757880 [ kit_spare_001 ] INF  Linking file "/opt/collaboraoffice6.2/program/pagein-calc" to "/opt/lool/child-roots/Hhu4Pih04FZ0rx7H/lo/program/pagein-calc"| kit/Kit.cpp:209
kit-00019-00017 2020-03-30 04:14:36.808103 [ kit_spare_001 ] INF  Linking file "/opt/collaboraoffice6.2/program/libsqlite3.so" to "/opt/lool/child-roots/Hhu4Pih04FZ0rx7H/lo/program/libsqlite3.so"| kit/Kit.cpp:209
kit-00019-00017 2020-03-30 04:14:36.866616 [ kit_spare_001 ] INF  Linking file "/opt/collaboraoffice6.2/program/intro-highres.png" to "/opt/lool/child-roots/Hhu4Pih04FZ0rx7H/lo/program/intro-highres.png"| kit/Kit.cpp:209
kit-00019-00017 2020-03-30 04:14:36.916933 [ kit_spare_001 ] INF  Linking file "/opt/collaboraoffice6.2/program/libnssckbi.so" to "/opt/lool/child-roots/Hhu4Pih04FZ0rx7H/lo/program/libnssckbi.so"| kit/Kit.cpp:209
kit-00019-00017 2020-03-30 04:14:36.975382 [ kit_spare_001 ] INF  Linking file "/opt/collaboraoffice6.2/EULA_en-US.rtf" to "/opt/lool/child-roots/Hhu4Pih04FZ0rx7H/lo/EULA_en-US.rtf"| kit/Kit.cpp:209
kit-00019-00017 2020-03-30 04:14:37.025856 [ kit_spare_001 ] INF  Linking file "/opt/collaboraoffice6.2/LICENSE" to "/opt/lool/child-roots/Hhu4Pih04FZ0rx7H/lo/LICENSE"| kit/Kit.cpp:209
kit-00019-00017 2020-03-30 04:14:37.076065 [ kit_spare_001 ] INF  Linking file "/opt/collaboraoffice6.2/LICENSE.html" to "/opt/lool/child-roots/Hhu4Pih04FZ0rx7H/lo/LICENSE.html"| kit/Kit.cpp:209
kit-00019-00017 2020-03-30 04:14:37.126112 [ kit_spare_001 ] INF  Linking file "/opt/collaboraoffice6.2/NOTICE" to "/opt/lool/child-roots/Hhu4Pih04FZ0rx7H/lo/NOTICE"| kit/Kit.cpp:209
kit-00019-00017 2020-03-30 04:14:37.176603 [ kit_spare_001 ] INF  Linking file "/opt/collaboraoffice6.2/CREDITS.fodt" to "/opt/lool/child-roots/Hhu4Pih04FZ0rx7H/lo/CREDITS.fodt"| kit/Kit.cpp:209
kit-00019-00017 2020-03-30 04:14:37.235257 [ kit_spare_001 ] INF  Linking/Copying of files to /opt/lool/child-roots/Hhu4Pih04FZ0rx7H/lo/ finished.| kit/Kit.cpp:315
kit-00019-00017 2020-03-30 04:14:37.360964 [ kit_spare_001 ] DBG  Initialized jail files.| kit/Kit.cpp:2478
kit-00019-00017 2020-03-30 04:14:37.361191 [ kit_spare_001 ] INF  chroot("/opt/lool/child-roots/Hhu4Pih04FZ0rx7H/")| kit/Kit.cpp:2502
kit-00019-00017 2020-03-30 04:14:37.361251 [ kit_spare_001 ] TRC  Capabilities first: = cap_fowner,cap_sys_chroot,cap_mknod+eip cap_chown,cap_dac_override,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_bind_service,cap_net_raw,cap_audit_write,cap_setfcap+i| kit/Kit.cpp:334
kit-00019-00017 2020-03-30 04:14:37.361288 [ kit_spare_001 ] TRC  Capabilities now: = cap_fowner,cap_mknod+eip cap_chown,cap_dac_override,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_bind_service,cap_net_raw,cap_sys_chroot,cap_audit_write,cap_setfcap+i| kit/Kit.cpp:353
kit-00019-00017 2020-03-30 04:14:37.361314 [ kit_spare_001 ] TRC  Capabilities first: = cap_fowner,cap_mknod+eip cap_chown,cap_dac_override,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_bind_service,cap_net_raw,cap_sys_chroot,cap_audit_write,cap_setfcap+i| kit/Kit.cpp:334
kit-00019-00017 2020-03-30 04:14:37.361333 [ kit_spare_001 ] TRC  Capabilities now: = cap_fowner+eip cap_chown,cap_dac_override,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_bind_service,cap_net_raw,cap_sys_chroot,cap_mknod,cap_audit_write,cap_setfcap+i| kit/Kit.cpp:353
kit-00019-00017 2020-03-30 04:14:37.361354 [ kit_spare_001 ] TRC  Capabilities first: = cap_fowner+eip cap_chown,cap_dac_override,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_bind_service,cap_net_raw,cap_sys_chroot,cap_mknod,cap_audit_write,cap_setfcap+i| kit/Kit.cpp:334
kit-00019-00017 2020-03-30 04:14:37.361374 [ kit_spare_001 ] TRC  Capabilities now: = cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_bind_service,cap_net_raw,cap_sys_chroot,cap_mknod,cap_audit_write,cap_setfcap+i| kit/Kit.cpp:353
kit-00019-00017 2020-03-30 04:14:37.361385 [ kit_spare_001 ] DBG  Initialized jail nodes, dropped caps.| kit/Kit.cpp:2521
kit-00019-00017 2020-03-30 04:14:37.389363 [ kit_spare_001 ] TRC  Install seccomp filter successfully.| common/Seccomp.cpp:246
kit-00019-00017 2020-03-30 04:14:37.389401 [ kit_spare_001 ] INF  RLIMIT_AS is 16777216.0 TiB (18446744073709551615 bytes)| kit/Kit.cpp:2577
kit-00019-00017 2020-03-30 04:14:37.389434 [ kit_spare_001 ] INF  RLIMIT_STACK is 7.8 MiB (8192000 bytes)| kit/Kit.cpp:2582
kit-00019-00017 2020-03-30 04:14:37.389445 [ kit_spare_001 ] INF  RLIMIT_FSIZE is 16777216.0 TiB (18446744073709551615 bytes)| kit/Kit.cpp:2587
kit-00019-00017 2020-03-30 04:14:37.389455 [ kit_spare_001 ] INF  RLIMIT_NOFILE is 1048576 files.| kit/Kit.cpp:2592
kit-00019-00017 2020-03-30 04:14:37.389461 [ kit_spare_001 ] INF  Process is ready.| kit/Kit.cpp:2596
office version details: { "ProductName": "Collabora Office", "ProductVersion": "6.2", "ProductExtension": ".10.8", "BuildId": "5ebb43f59dff06d95841f35177055fe73e62cb62" }
kit-00019-00017 2020-03-30 04:14:37.389637 [ kit_spare_001 ] DBG  #24 Thread affinity set to 0x7f9d6f0d8780.| net/Socket.hpp:322
kit-00019-00017 2020-03-30 04:14:37.389646 [ kit_spare_001 ] DBG  StreamSocket ctor #24| net/Socket.hpp:876
kit-00019-00017 2020-03-30 04:14:37.389652 [ kit_spare_001 ] TRC  #24 Connected to WS Handler 0x5650c9fc35e0| ./net/WebSocketHandler.hpp:101
kit-00019-00017 2020-03-30 04:14:37.389657 [ kit_spare_001 ] DBG  Connected to local UDS loolwsd-9VA9Qspz #24| net/Socket.cpp:329
kit-00019-00017 2020-03-30 04:14:37.389662 [ kit_spare_001 ] TRC  Requesting upgrade of websocket at path /loolws/newchild?jailid=Hhu4Pih04FZ0rx7H&version=%7B%20%22ProductName%22:%20%22Collabora%20Office%22%2C%20%22ProductVersion%22:%20%226.2%22%2C%20%22ProductExtension%22:%20%22.10.8%22%2C%20%22BuildId%22:%20%225ebb43f59dff06d95841f35177055fe73e62cb62%22%20%7D #24| net/Socket.cpp:286
kit-00019-00017 2020-03-30 04:14:37.389679 [ kit_spare_001 ] TRC  #24: Wrote outgoing data 503 bytes of 503 bytes buffered.| net/Socket.hpp:1166
wsd-00006-00016 2020-03-30 04:14:37.389660 [ prisoner_poll ] TRC  Poll completed with 1 live polls max (5000ms)| ./net/Socket.hpp:601kit-00019-00017 2020-03-30 04:14:37.389685 [ kit_spare_001 ] TRC  #24 Connected to WS Handler 0x5650c9fc35e0| ./net/WebSocketHandler.hpp:101
kit-00019-00017 2020-03-30 04:14:37.389694 [ kit_spare_001 ] DBG  Inserting socket #24 into kit| ./net/Socket.hpp:729

kit-00019-00017 2020-03-30 04:14:37.389699 [ kit_spare_001 ] DBG  #24 Thread affinity set to 0 (was 0x7f9d6f0d8780).| ./net/Socket.hpp:282
kit-00019-00017 2020-03-30 04:14:37.389726 [ kit_spare_001 ] INF  New kit client websocket inserted.| kit/Kit.cpp:2655
kit-00019-00017 2020-03-30 04:14:37.389732 [ kit_spare_001 ] INF  Kit initialization complete: setting log-level to [warning] as configured.| kit/Kit.cpp:2660
wsd-00006-00016 2020-03-30 04:14:37.389734 [ prisoner_poll ] DBG  Accepted prisoner socket #19, creating socket object.| net/Socket.cpp:564
wsd-00006-00016 2020-03-30 04:14:37.389750 [ prisoner_poll ] DBG  #19 Thread affinity set to 0x7f8cf02ab700.| ./net/Socket.hpp:322
wsd-00006-00016 2020-03-30 04:14:37.389780 [ prisoner_poll ] DBG  StreamSocket ctor #19| ./net/Socket.hpp:876
wsd-00006-00016 2020-03-30 04:14:37.389793 [ prisoner_poll ] TRC  #19 Prisoner connected.| wsd/LOOLWSD.cpp:1837
wsd-00006-00016 2020-03-30 04:14:37.389816 [ prisoner_poll ] DBG  Accepted socket is UDS - address uds-to-pid-6 and uid/gid 101/101| net/Socket.cpp:593
wsd-00006-00016 2020-03-30 04:14:37.389825 [ prisoner_poll ] DBG  Accepted client #19| net/ServerSocket.hpp:89
wsd-00006-00016 2020-03-30 04:14:37.389834 [ prisoner_poll ] DBG  Inserting socket #19 into prisoner_poll| ./net/Socket.hpp:729
wsd-00006-00016 2020-03-30 04:14:37.389842 [ prisoner_poll ] DBG  #19 Thread affinity set to 0 (was 0x7f8cf02ab700).| ./net/Socket.hpp:282
wsd-00006-00016 2020-03-30 04:14:37.389871 [ prisoner_poll ] TRC  Poll start, timeoutMs: 5000| ./net/Socket.hpp:592
wsd-00006-00016 2020-03-30 04:14:37.389883 [ prisoner_poll ] TRC  Poll completed with 1 live polls max (5000ms)| ./net/Socket.hpp:601
wsd-00006-00016 2020-03-30 04:14:37.389895 [ prisoner_poll ] DBG  #19 Thread affinity set to 0x7f8cf02ab700 (was 0).| ./net/Socket.hpp:282
wsd-00006-00016 2020-03-30 04:14:37.389904 [ prisoner_poll ] TRC  PrisonerPoll - wakes up with 0 new children and 0 brokers and 1 kits forking| wsd/LOOLWSD.cpp:1583
wsd-00006-00016 2020-03-30 04:14:37.389918 [ prisoner_poll ] TRC  rebalance children to 1| wsd/LOOLWSD.cpp:431
wsd-00006-00016 2020-03-30 04:14:37.389941 [ prisoner_poll ] WRN  ForKit not responsive for 331290 ms forking 1 children. Resetting.| wsd/LOOLWSD.cpp:443
wsd-00006-00016 2020-03-30 04:14:37.389951 [ prisoner_poll ] DBG  prespawnChildren: Have 0 spare children, and 0 outstanding, forking 1 more.| wsd/LOOLWSD.cpp:455
wsd-00006-00016 2020-03-30 04:14:37.389960 [ prisoner_poll ] TRC  Request forkit to spawn 1 new child(ren)| wsd/LOOLWSD.cpp:378
wsd-00006-00016 2020-03-30 04:14:37.389983 [ prisoner_poll ] INF  Filesystem [/opt/lool/child-roots/.] has 577188 MB free (62.5131%).| common/FileUtil.cpp:400
wsd-00006-00016 2020-03-30 04:14:37.390003 [ prisoner_poll ] DBG  MasterToForKit: spawn 1| wsd/LOOLWSD.cpp:389
wsd-00006-00016 2020-03-30 04:14:37.390022 [ prisoner_poll ] TRC  Poll start, timeoutMs: 5000| ./net/Socket.hpp:592
wsd-00006-00016 2020-03-30 04:14:37.390035 [ prisoner_poll ] TRC  Poll completed with 1 live polls max (5000ms)| ./net/Socket.hpp:601
wsd-00006-00016 2020-03-30 04:14:37.390055 [ prisoner_poll ] TRC  #19: Incoming data buffer 503 bytes, closeSocket? false| ./net/Socket.hpp:1096
wsd-00006-00016 2020-03-30 04:14:37.390069 [ prisoner_poll ] TRC  #19 handling incoming 503 bytes.| net/Socket.cpp:641
wsd-00006-00016 2020-03-30 04:14:37.390107 [ prisoner_poll ] INF  #19: Prisoner HTTP Request: GET /loolws/newchild?jailid=Hhu4Pih04FZ0rx7H&version=%7B%20%22ProductName%22:%20%22Collabora%20Office%22%2C%20%22ProductVersion%22:%20%226.2%22%2C%20%22ProductExtension%22:%20%22.10.8%22%2C%20%22BuildId%22:%20%225ebb43f59dff06d95841f35177055fe73e62cb62%22%20%7D HTTP/1.1 / Connection: Upgrade / User-Foo: Adminbits / Sec-WebSocket-Key: fxTaWTEMVhq1PkWsMoLxGw== / Upgrade: websocket / Accept-Language: en / Cache-Control: no-cache / Pragma: no-cache / Sec-WebSocket-Version: 13 / User-Agent: LOOLWSD WOPI Agent 4.2.1| net/Socket.cpp:680
wsd-00006-00016 2020-03-30 04:14:37.390128 [ prisoner_poll ] TRC  Child connection with URI [/loolws/newchild?jailid=Hhu4Pih04FZ0rx7H&version=%7B%20%22ProductName%22:%20%22Collabora%20Office%22%2C%20%22ProductVersion%22:%20%226.2%22%2C%20%22ProductExtension%22:%20%22.10.8%22%2C%20%22BuildId%22:%20%225ebb43f59dff06d95841f35177055fe73e62cb62%22%20%7D].| wsd/LOOLWSD.cpp:1882
wsd-00006-00016 2020-03-30 04:14:37.390154 [ prisoner_poll ] INF  New child [19], jailId: Hhu4Pih04FZ0rx7H.| wsd/LOOLWSD.cpp:1917
wsd-00006-00016 2020-03-30 04:14:37.390165 [ prisoner_poll ] TRC  Calling make_shared<ChildProcess>, for NewChildren?| wsd/LOOLWSD.cpp:1925
wsd-00006-00016 2020-03-30 04:14:37.390176 [ prisoner_poll ] TRC  #19: Upgrading to WebSocket.| ./net/WebSocketHandler.hpp:701
wsd-00006-00016 2020-03-30 04:14:37.390190 [ prisoner_poll ] INF  #19: WebSocket version: 13, key: [fxTaWTEMVhq1PkWsMoLxGw==], protocol: [chat].| ./net/WebSocketHandler.hpp:711
wsd-00006-00016 2020-03-30 04:14:37.390210 [ prisoner_poll ] TRC  #19: Sending WS Upgrade response: HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: GAcwqP21iVOY2yKefQ64c0yVN5M=

| ./net/WebSocketHandler.hpp:726
wsd-00006-00016 2020-03-30 04:14:37.390225 [ prisoner_poll ] TRC  #19: Wrote outgoing data 129 bytes of 129 bytes buffered.| ./net/Socket.hpp:1166
wsd-00006-00016 2020-03-30 04:14:37.390237 [ prisoner_poll ] INF  ChildProcess ctor [19].| wsd/DocumentBroker.hpp:78
wsd-00006-00016 2020-03-30 04:14:37.390249 [ prisoner_poll ] DBG  Removing socket #19 (of 2) from prisoner_poll| ./net/Socket.hpp:682
wsd-00006-00016 2020-03-30 04:14:37.390259 [ prisoner_poll ] DBG  #19 Thread affinity set to 0 (was 0x7f8cf02ab700).| ./net/Socket.hpp:282
wsd-00006-00016 2020-03-30 04:14:37.390271 [ prisoner_poll ] TRC  Calling addNewChild in disposition's move thing to add to NewChildren| wsd/LOOLWSD.cpp:1935
wsd-00006-00016 2020-03-30 04:14:37.390282 [ prisoner_poll ] TRC  Adding one child to NewChildren| wsd/LOOLWSD.cpp:483
wsd-00006-00016 2020-03-30 04:14:37.390293 [ prisoner_poll ] INF  Have 1 spare child after adding [19].| wsd/LOOLWSD.cpp:487
wsd-00006-00016 2020-03-30 04:14:37.390304 [ prisoner_poll ] TRC  Notifying NewChildrenCV| wsd/LOOLWSD.cpp:490
wsd-00006-00016 2020-03-30 04:14:37.390336 [ prisoner_poll ] TRC  Poll start, timeoutMs: 5000| ./net/Socket.hpp:592
wsd-00006-00006 2020-03-30 04:14:37.390378 [ loolwsd ] TRC  Have 1 new children.| wsd/LOOLWSD.cpp:3444
wsd-00006-00006 2020-03-30 04:14:37.390416 [ loolwsd ] INF  WSD initialization complete: setting log-level to [warning] as configured.| wsd/LOOLWSD.cpp:3451

Iā€™m using docker compose. Itā€™s:

collabora:
    image: collabora/code
    container_name: collabora
    hostname: office.mydomain.com
    ports:
      - 9980:9980
    cap_add:
      - MKNOD
    environment:
      - domain=cloud\\.mydomain\\.com
      - DONT_GEN_SSL_CERT="True"
      - server_name=office.mydomain.com
      - extra_params=--o:ssl.enable=false --o:ssl.termination=true

Can you tail -f the nextcloud and collabora logs and look for something suspicious when you open up a document? The error is going to be produced when opening the document.
Nothing in your log you posted is particularly helpful. Iā€™m sorry I canā€™t tell you what to look for but generally something sticks out on as causing an error.

Can you put the loolwsd.xml file:

docker ps

docker cp name_docker:/etc/loolwsd/loolwsd.xml loolwsd.xml

Not sure if itā€™s the same issue and hopefully this doesnā€™t throw a wrench in here, but I had similar issues with the collabora container. I donā€™t use docker compose, but I finally discovered that my collabora container was trying to use an external DNS server to resolve my office.domain.lan hostname.

Once I passed my internal DNS servers on the command line when I started the container, collabora started to work.

@rstark

I donā€™t think thatā€™s the problem here, however what was the command you used to do this?

Hereā€™s what I run to start my container. I run a split-brain DNS setup so some hosts are resolvable outside of my home network, but others arenā€™t.

sudo docker run -t -d -p 127.0.0.1:9980:9980 -e "domain=cloud\\.domain\\.lan" --dns=192.168.0.3 --dns=192.168.0.4 --dns=192.168.0.10 --restart always --cap-add MKNOD collabora/code

Thanks for posting that.

The original poster is using docker compose which creates its own internal network with its own internal DNS server. If entries are not found within the docker internal DNS server, the lookup then depends on the DNS services of the docker host. Usually this will be the host /etc/hosts file followed then by what DNS servers the host uses.

Iā€™m assuming a split-brain DNS setup is the same as a split DNS setup??? Which is kind of similar to have an DNS HostOverrides or a NAT reflection where domain names from inside the LAN are going to resolved to internal IP addresses where from outside they may resolve to other addresses.

Ahh! Looks like I need to read up on docker compose!

Yep. Internally, hosts get one view of my domains but externally hosts get another view.

I seem to recall that the collabora docker image Iā€™m using had hardcoded external Google DNS servers. Does docker compose substitute anything thatā€™s inside a docker image with its own?

To my knowledge most docker containers run a stripped down version of ubuntu, alpine etc. I think the hosts file is /etc/hosts. I guess itā€™s possible to overwrite this file by mounting an external file as a volume in this location. Thatā€™s assuming thatā€™s where the external DNS server was listed. It it was another file I suppose you could try to employ the same strategy. If they hardcoded the DNS however in a program, you might be SOL.

Iā€™m not getting any errors when I get the white screen.

Here:

<config>

    <!-- Note: 'default' attributes are used to document a setting's default value as well as to use as fallback. -->
    <!-- Note: When adding a new entry, a default must be set in WSD in case the entry is missing upon deployment. -->

    <allowed_languages desc="List of supported languages of Writing Aids (spell checker, grammar checker, thesaurus, hyphenation) on this instance. Allowing too many has negative effect on startup performance." default="de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru">de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru</allowed_languages>

    <sys_template_path desc="Path to a template tree with shared libraries etc to be used as source for chroot jails for child processes." type="path" relative="true" default="systemplate"></sys_template_path>
    <child_root_path desc="Path to the directory under which the chroot jails for the child processes will be created. Should be on the same file system as systemplate and lotemplate. Must be an empty directory." type="path" relative="true" default="jails"></child_root_path>

    <server_name desc="External hostname:port of the server running loolwsd. If empty, it's derived from the request (please set it if this doesn't work). Must be specified when behind a reverse-proxy or when the hostname is not reachable directly." type="string" default="">office.haddock.cc</server_name>
    <file_server_root_path desc="Path to the directory that should be considered root for the file server. This should be the directory containing loleaflet." type="path" relative="true" default="loleaflet/../"></file_server_root_path>

    <memproportion desc="The maximum percentage of system memory consumed by all of the Collabora Online Development Edition, after which we start cleaning up idle documents" type="double" default="80.0"></memproportion>
    <num_prespawn_children desc="Number of child processes to keep started in advance and waiting for new clients." type="uint" default="1">1</num_prespawn_children>
    <per_document desc="Document-specific settings, including LO Core settings.">
        <max_concurrency desc="The maximum number of threads to use while processing a document." type="uint" default="4">4</max_concurrency>
        <document_signing_url desc="The endpoint URL of signing server, if empty the document signing is disabled" type="string" default="https://app.vereign.com">https://app.vereign.com</document_signing_url>
        <redlining_as_comments desc="If true show red-lines as comments" type="bool" default="false">false</redlining_as_comments>
        <idle_timeout_secs desc="The maximum number of seconds before unloading an idle document. Defaults to 1 hour." type="uint" default="3600">3600</idle_timeout_secs>
        <!-- Idle save and auto save are checked every 30 seconds -->
        <!-- They are disabled when the value is zero or negative. -->
        <idlesave_duration_secs desc="The number of idle seconds after which document, if modified, should be saved. Defaults to 30 seconds." type="int" default="30">30</idlesave_duration_secs>
        <autosave_duration_secs desc="The number of seconds after which document, if modified, should be saved. Defaults to 5 minutes." type="int" default="300">300</autosave_duration_secs>
        <always_save_on_exit desc="On exiting the last editor, always perform the save, even if the document is not modified." type="bool" default="false">false</always_save_on_exit>
        <limit_virt_mem_mb desc="The maximum virtual memory allowed to each document process. 0 for unlimited." type="uint">0</limit_virt_mem_mb>
        <limit_stack_mem_kb desc="The maximum stack size allowed to each document process. 0 for unlimited." type="uint">8000</limit_stack_mem_kb>
        <limit_file_size_mb desc="The maximum file size allowed to each document process to write. 0 for unlimited." type="uint">0</limit_file_size_mb>
        <limit_num_open_files desc="The maximum number of files allowed to each document process to open. 0 for unlimited." type="uint">0</limit_num_open_files>
        <limit_load_secs desc="Maximum number of seconds to wait for a document load to succeed. 0 for unlimited." type="uint" default="100">100</limit_load_secs>
        <limit_convert_secs desc="Maximum number of seconds to wait for a document conversion to succeed. 0 for unlimited." type="uint" default="100">100</limit_convert_secs>
    </per_document>

    <per_view desc="View-specific settings.">
        <out_of_focus_timeout_secs desc="The maximum number of seconds before dimming and stopping updates when the browser tab is no longer in focus. Defaults to 120 seconds." type="uint" default="120">120</out_of_focus_timeout_secs>
        <idle_timeout_secs desc="The maximum number of seconds before dimming and stopping updates when the user is no longer active (even if the browser is in focus). Defaults to 15 minutes." type="uint" default="900">900</idle_timeout_secs>
    </per_view>

    <loleaflet_html desc="Allows UI customization by replacing the single endpoint of loleaflet.html" type="string" default="loleaflet.html">loleaflet.html</loleaflet_html>

    <logging>
        <color type="bool">true</color>
        <level type="string" desc="Can be 0-8, or none (turns off logging), fatal, critical, error, warning, notice, information, debug, trace" default="warning">warning</level>
        <protocol type="bool" descr="Enable minimal client-site JS protocol logging from the start">false</protocol>
        <file enable="false">
            <property name="path" desc="Log file path.">/var/log/loolwsd.log</property>
            <property name="rotation" desc="Log file rotation strategy. See Poco FileChannel.">never</property>
            <property name="archive" desc="Append either timestamp or number to the archived log filename.">timestamp</property>
            <property name="compress" desc="Enable/disable log file compression.">true</property>
            <property name="purgeAge" desc="The maximum age of log files to preserve. See Poco FileChannel.">10 days</property>
            <property name="purgeCount" desc="The maximum number of log archives to preserve. Use 'none' to disable purging. See Poco FileChannel.">10</property>
            <property name="rotateOnOpen" desc="Enable/disable log file rotation on opening.">true</property>
            <property name="flush" desc="Enable/disable flushing after logging each line. May harm performance. Note that without flushing after each line, the log lines from the different processes will not appear in chronological order.">false</property>
        </file>
        <anonymize>
            <anonymize_user_data type="bool" desc="Enable to anonymize/obfuscate of user-data in logs. If default is true, it was forced at compile-time and cannot be disabled." default="false">false</anonymize_user_data>
            <anonymization_salt type="uint" desc="The salt used to anonymize/obfuscate user-data in logs. Use a secret 64-bit random number." default="82589933">82589933</anonymization_salt>
        </anonymize>
    </logging>

Can you put this in youre loolwsd.xml file:

    <storage desc="Backend storage">
    <filesystem allow="false" />
    <wopi desc="Allow/deny wopi storage. Mutually exclusive with webdav." allow="true">
        <host desc="Regex pattern of hostname to allow or deny." allow="true">domain1|domain2</host>
        <host desc="Regex pattern of hostname to allow or deny." allow="true">10\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}</host>
        <host desc="Regex pattern of hostname to allow or deny." allow="true">172\.1[6789]\.[0-9]{1,3}\.[0-9]{1,3}</host>
        <host desc="Regex pattern of hostname to allow or deny." allow="true">172\.2[0-9]\.[0-9]{1,3}\.[0-9]{1,3}</host>
        <host desc="Regex pattern of hostname to allow or deny." allow="true">172\.3[01]\.[0-9]{1,3}\.[0-9]{1,3}</host>
        <host desc="Regex pattern of hostname to allow or deny." allow="true">192\.168\.[0-9]{1,3}\.[0-9]{1,3}</host>
        <host desc="Regex pattern of hostname to allow or deny." allow="false">192\.168\.1\.1</host>
        <max_file_size desc="Maximum document size in bytes to load. 0 for unlimited." type="uint">0</max_file_size>
        <reuse_cookies desc="When enabled, cookies from the browser will be captured and set on WOPI requests." type="bool" default="false">false</reuse_cookies>
        <locking desc="Locking settings">
            <refresh desc="How frequently we should re-acquire a lock with the storage server, in seconds (default 15 mins) or 0 for no refresh"
                     type="int" default="900">900</refresh>
        </locking>
    </wopi>
    <webdav desc="Allow/deny webdav storage. Mutually exclusive with wopi." allow="false">
        <host desc="Hostname to allow" allow="false">domain1|domain2</host>
    </webdav>
    <ssl desc="SSL settings">
        <enable type="bool" desc="Controls whether SSL encryption between storage and loolwsd is enabled. Defaults when empty to following the ssl.enable setting"></enable>
        <cert_file_path desc="Path to the cert file" relative="false"></cert_file_path>
        <key_file_path desc="Path to the key file" relative="false"></key_file_path>
        <ca_file_path desc="Path to the ca file" relative="false"></ca_file_path>
        <cipher_list desc="List of OpenSSL ciphers to accept. If empty the defaults are used. These can be overriden only if absolutely needed."></cipher_list>
    </ssl>
</storage>

Change this line:

<wopi desc="Allow/deny wopi storage. Mutually exclusive with webdav." allow="true"><host desc="Regex pattern of hostname to allow or deny." allow="true">domain1|domain2</host>

<host desc="Hostname to allow" allow="false">domain1|domain2</host>

Put it back with:

docker -a cp loolwsd.xml name_docker:/etc/loolwsd/loolwsd.xml

Sorry, Iā€™m a bit confused.

Where are these two lines, and what should I change them to?

The two lines are in de code above.
**line 3 and line 19

Copy when youre put youre two domains on domain1|domain2 and copy it in loolwsd.xml

If you give me the domains you use, i can edit it for u and send it by PM

I think I get it. Should it look like this?

    <storage desc="Backend storage">
    <filesystem allow="false" />
    <wopi desc="Allow/deny wopi storage. Mutually exclusive with webdav." allow="true"><host desc="Regex pattern of hostname to allow or deny." allow="true">office.mydomain.com|cloud.mydomain.com</host>
        <host desc="Regex pattern of hostname to allow or deny." allow="true">domain1|domain2</host>
        <host desc="Regex pattern of hostname to allow or deny." allow="true">10\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}</host>
        <host desc="Regex pattern of hostname to allow or deny." allow="true">172\.1[6789]\.[0-9]{1,3}\.[0-9]{1,3}</host>
        <host desc="Regex pattern of hostname to allow or deny." allow="true">172\.2[0-9]\.[0-9]{1,3}\.[0-9]{1,3}</host>
        <host desc="Regex pattern of hostname to allow or deny." allow="true">172\.3[01]\.[0-9]{1,3}\.[0-9]{1,3}</host>
        <host desc="Regex pattern of hostname to allow or deny." allow="true">192\.168\.[0-9]{1,3}\.[0-9]{1,3}</host>
        <host desc="Regex pattern of hostname to allow or deny." allow="false">192\.168\.1\.1</host>
        <max_file_size desc="Maximum document size in bytes to load. 0 for unlimited." type="uint">0</max_file_size>
        <reuse_cookies desc="When enabled, cookies from the browser will be captured and set on WOPI requests." type="bool" default="false">false</reuse_cookies>
        <locking desc="Locking settings">
            <refresh desc="How frequently we should re-acquire a lock with the storage server, in seconds (default 15 mins) or 0 for no refresh"
                     type="int" default="900">900</refresh>
        </locking>
    </wopi>
    <webdav desc="Allow/deny webdav storage. Mutually exclusive with wopi." allow="false">
        <host desc="Hostname to allow" allow="false">office.mydomain.com|cloud.mydomain.com</host>
    </webdav>
    <ssl desc="SSL settings">
        <enable type="bool" desc="Controls whether SSL encryption between storage and loolwsd is enabled. Defaults when empty to following the ssl.enable setting"></enable>
        <cert_file_path desc="Path to the cert file" relative="false"></cert_file_path>
        <key_file_path desc="Path to the key file" relative="false"></key_file_path>
        <ca_file_path desc="Path to the ca file" relative="false"></ca_file_path>
        <cipher_list desc="List of OpenSSL ciphers to accept. If empty the defaults are used. These can be overriden only if absolutely needed."></cipher_list>
    </ssl>
</storage>

Yes, thats correct

Where should I add it in my loolwsd.xml?

At the end

The collabora container is in a boot loop because the loolwsd.xml I copied has invalid permissions. What permissions should I have so the collabora container can read it?

Also, is this how my loolwsd.xml should look?

<config>

    <!-- Note: 'default' attributes are used to document a setting's default value as well as to use as fallback. -->
    <!-- Note: When adding a new entry, a default must be set in WSD in case the entry is missing upon deployment. -->

    <allowed_languages desc="List of supported languages of Writing Aids (spell checker, grammar checker, thesaurus, hyphenation) on this instance. Allowing too many has negative effect on startup performance." default="de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru">de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru</allowed_languages>

    <sys_template_path desc="Path to a template tree with shared libraries etc to be used as source for chroot jails for child processes." type="path" relative="true" default="systemplate"></sys_template_path>
    <child_root_path desc="Path to the directory under which the chroot jails for the child processes will be created. Should be on the same file system as systemplate and lotemplate. Must be an empty directory." type="path" relative="true" default="jails"></child_root_path>

    <server_name desc="External hostname:port of the server running loolwsd. If empty, it's derived from the request (please set it if this doesn't work). Must be specified when behind a reverse-proxy or when the hostname is not reachable directly." type="string" default="">office.mydomain.com</server_name>
    <file_server_root_path desc="Path to the directory that should be considered root for the file server. This should be the directory containing loleaflet." type="path" relative="true" default="loleaflet/../"></file_server_root_path>

    <memproportion desc="The maximum percentage of system memory consumed by all of the Collabora Online Development Edition, after which we start cleaning up idle documents" type="double" default="80.0"></memproportion>
    <num_prespawn_children desc="Number of child processes to keep started in advance and waiting for new clients." type="uint" default="1">1</num_prespawn_children>
    <per_document desc="Document-specific settings, including LO Core settings.">
        <max_concurrency desc="The maximum number of threads to use while processing a document." type="uint" default="4">4</max_concurrency>
        <document_signing_url desc="The endpoint URL of signing server, if empty the document signing is disabled" type="string" default="https://app.vereign.com">https://app.vereign.com</document_signing_url>
        <redlining_as_comments desc="If true show red-lines as comments" type="bool" default="false">false</redlining_as_comments>
        <idle_timeout_secs desc="The maximum number of seconds before unloading an idle document. Defaults to 1 hour." type="uint" default="3600">3600</idle_timeout_secs>
        <!-- Idle save and auto save are checked every 30 seconds -->
        <!-- They are disabled when the value is zero or negative. -->
        <idlesave_duration_secs desc="The number of idle seconds after which document, if modified, should be saved. Defaults to 30 seconds." type="int" default="30">30</idlesave_duration_secs>
        <autosave_duration_secs desc="The number of seconds after which document, if modified, should be saved. Defaults to 5 minutes." type="int" default="300">300</autosave_duration_secs>
        <always_save_on_exit desc="On exiting the last editor, always perform the save, even if the document is not modified." type="bool" default="false">false</always_save_on_exit>
        <limit_virt_mem_mb desc="The maximum virtual memory allowed to each document process. 0 for unlimited." type="uint">0</limit_virt_mem_mb>
        <limit_stack_mem_kb desc="The maximum stack size allowed to each document process. 0 for unlimited." type="uint">8000</limit_stack_mem_kb>
        <limit_file_size_mb desc="The maximum file size allowed to each document process to write. 0 for unlimited." type="uint">0</limit_file_size_mb>
        <limit_num_open_files desc="The maximum number of files allowed to each document process to open. 0 for unlimited." type="uint">0</limit_num_open_files>
        <limit_load_secs desc="Maximum number of seconds to wait for a document load to succeed. 0 for unlimited." type="uint" default="100">100</limit_load_secs>
        <limit_convert_secs desc="Maximum number of seconds to wait for a document conversion to succeed. 0 for unlimited." type="uint" default="100">100</limit_convert_secs>
    </per_document>

    <per_view desc="View-specific settings.">
        <out_of_focus_timeout_secs desc="The maximum number of seconds before dimming and stopping updates when the browser tab is no longer in focus. Defaults to 120 seconds." type="uint" default="120">120</out_of_focus_timeout_secs>
        <idle_timeout_secs desc="The maximum number of seconds before dimming and stopping updates when the user is no longer active (even if the browser is in focus). Defaults to 15 minutes." type="uint" default="900">900</idle_timeout_secs>
    </per_view>

    <loleaflet_html desc="Allows UI customization by replacing the single endpoint of loleaflet.html" type="string" default="loleaflet.html">loleaflet.html</loleaflet_html>

    <logging>
        <color type="bool">true</color>
        <level type="string" desc="Can be 0-8, or none (turns off logging), fatal, critical, error, warning, notice, information, debug, trace" default="warning">warning</level>
        <protocol type="bool" descr="Enable minimal client-site JS protocol logging from the start">false</protocol>
        <file enable="false">
            <property name="path" desc="Log file path.">/var/log/loolwsd.log</property>
            <property name="rotation" desc="Log file rotation strategy. See Poco FileChannel.">never</property>
            <property name="archive" desc="Append either timestamp or number to the archived log filename.">timestamp</property>
            <property name="compress" desc="Enable/disable log file compression.">true</property>
            <property name="purgeAge" desc="The maximum age of log files to preserve. See Poco FileChannel.">10 days</property>
            <property name="purgeCount" desc="The maximum number of log archives to preserve. Use 'none' to disable purging. See Poco FileChannel.">10</property>
            <property name="rotateOnOpen" desc="Enable/disable log file rotation on opening.">true</property>
            <property name="flush" desc="Enable/disable flushing after logging each line. May harm performance. Note that without flushing after each line, the log lines from the different processes will not appear in chronological order.">false</property>
        </file>
        <anonymize>
            <anonymize_user_data type="bool" desc="Enable to anonymize/obfuscate of user-data in logs. If default is true, it was forced at compile-time and cannot be disabled." default="false">false</anonymize_user_data>
            <anonymization_salt type="uint" desc="The salt used to anonymize/obfuscate user-data in logs. Use a secret 64-bit random number." default="82589933">82589933</anonymization_salt>
        </anonymize>
    </logging>

    <loleaflet_logging desc="Logging in the browser console" default="false">false</loleaflet_logging>

    <trace desc="Dump commands and notifications for replay. When 'snapshot' is true, the source file is copied to the path first." enable="false">
        <path desc="Output path to hold trace file and docs. Use '%' for timestamp to avoid overwriting. For example: /some/path/to/looltrace-%.gz" compress="true" snapshot="false"></path>
        <filter>
            <message desc="Regex pattern of messages to exclude"></message>
        </filter>
        <outgoing>
            <record desc="Whether or not to record outgoing messages" default="false">false</record>
        </outgoing>
    </trace>

    <net desc="Network settings">
      <!-- On systems where localhost resolves to IPv6 [::1] address first, when net.proto is all and net.listen is loopback, loolwsd unexpectedly listens on [::1] only.
           You need to change net.proto to IPv4, if you want to use 127.0.0.1. -->
      <proto type="string" default="all" desc="Protocol to use IPv4, IPv6 or all for both">all</proto>
      <listen type="string" default="any" desc="Listen address that loolwsd binds to. Can be 'any' or 'loopback'.">any</listen>
      <service_root type="path" default="" desc="Prefix all the pages, websockets, etc. with this path."></service_root>
      <post_allow desc="Allow/deny client IP address for POST(REST)." allow="true">
        <host desc="The IPv4 private 192.168 block as plain IPv4 dotted decimal addresses.">192\.168\.[0-9]{1,3}\.[0-9]{1,3}</host>
        <host desc="Ditto, but as IPv4-mapped IPv6 addresses">::ffff:192\.168\.[0-9]{1,3}\.[0-9]{1,3}</host>
        <host desc="The IPv4 loopback (localhost) address.">127\.0\.0\.1</host>
        <host desc="Ditto, but as IPv4-mapped IPv6 address">::ffff:127\.0\.0\.1</host>
        <host desc="The IPv6 loopback (localhost) address.">::1</host>
        <host desc="The IPv4 private 172.17.0.0/16 subnet (Docker).">172\.17\.[0-9]{1,3}\.[0-9]{1,3}</host>
        <host desc="Ditto, but as IPv4-mapped IPv6 addresses">::ffff:172\.17\.[0-9]{1,3}\.[0-9]{1,3}</host>
      </post_allow>
      <frame_ancestors desc="Specify who is allowed to embed the LO Online iframe (loolwsd and WOPI host are always allowed). Separate multiple hosts by space."></frame_ancestors>
    </net>

    <ssl desc="SSL settings">
        <enable type="bool" desc="Controls whether SSL encryption between browser and loolwsd is enabled (do not disable for production deployment). If default is false, must first be compiled with SSL support to enable." default="true">true</enable>
        <termination desc="Connection via proxy where loolwsd acts as working via https, but actually uses http." type="bool" default="true">false</termination>
        <cert_file_path desc="Path to the cert file" relative="false">/etc/loolwsd/cert.pem</cert_file_path>
        <key_file_path desc="Path to the key file" relative="false">/etc/loolwsd/key.pem</key_file_path>
        <ca_file_path desc="Path to the ca file" relative="false">/etc/loolwsd/ca-chain.cert.pem</ca_file_path>
        <cipher_list desc="List of OpenSSL ciphers to accept" default="ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH"></cipher_list>
        <hpkp desc="Enable HTTP Public key pinning" enable="false" report_only="false">
            <max_age desc="HPKP's max-age directive - time in seconds browser should remember the pins" enable="true">1000</max_age>
            <report_uri desc="HPKP's report-uri directive - pin validation failure are reported at this URL" enable="false"></report_uri>
            <pins desc="Base64 encoded SPKI fingerprints of keys to be pinned">
            <pin></pin>
            </pins>
        </hpkp>
    </ssl>

    <security desc="Altering these defaults potentially opens you to significant risk">
      <seccomp desc="Should we use the seccomp system call filtering." type="bool" default="true">true</seccomp>
      <capabilities desc="Should we require capabilities to isolate processes into chroot jails" type="bool" default="true">true</capabilities>
    </security>

    <watermark>
      <opacity desc="Opacity of on-screen watermark from 0.0 to 1.0" type="double" default="0.2"></opacity>
      <text desc="Watermark text to be displayed on the document if entered" type="string"></text>
    </watermark>

    <storage desc="Backend storage">
        <filesystem allow="false" />
        <wopi desc="Allow/deny wopi storage. Mutually exclusive with webdav." allow="true">
            <host desc="Regex pattern of hostname to allow or deny." allow="true">cloud\.mydomain\.com</host>
            <host desc="Regex pattern of hostname to allow or deny." allow="true">10\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}</host>
            <host desc="Regex pattern of hostname to allow or deny." allow="true">172\.1[6789]\.[0-9]{1,3}\.[0-9]{1,3}</host>
            <host desc="Regex pattern of hostname to allow or deny." allow="true">172\.2[0-9]\.[0-9]{1,3}\.[0-9]{1,3}</host>
            <host desc="Regex pattern of hostname to allow or deny." allow="true">172\.3[01]\.[0-9]{1,3}\.[0-9]{1,3}</host>
            <host desc="Regex pattern of hostname to allow or deny." allow="true">192\.168\.[0-9]{1,3}\.[0-9]{1,3}</host>
            <host desc="Regex pattern of hostname to allow or deny." allow="false">192\.168\.1\.1</host>
            <max_file_size desc="Maximum document size in bytes to load. 0 for unlimited." type="uint">0</max_file_size>
            <reuse_cookies desc="When enabled, cookies from the browser will be captured and set on WOPI requests." type="bool" default="false">false</reuse_cookies>
            <locking desc="Locking settings">
                <refresh desc="How frequently we should re-acquire a lock with the storage server, in seconds (default 15 mins) or 0 for no refresh" type="int" default="900">900</refresh>
            </locking>
        </wopi>
        <webdav desc="Allow/deny webdav storage. Mutually exclusive with wopi." allow="false">
            <host desc="Hostname to allow" allow="false">cloud\.mydomain\.com</host>
        </webdav>
        <ssl desc="SSL settings">
            <enable type="bool" desc="Controls whether SSL encryption between storage and loolwsd is enabled. Defaults when empty to following the ssl.enable setting"></enable>
            <cert_file_path desc="Path to the cert file" relative="false"></cert_file_path>
            <key_file_path desc="Path to the key file" relative="false"></key_file_path>
            <ca_file_path desc="Path to the ca file" relative="false"></ca_file_path>
            <cipher_list desc="List of OpenSSL ciphers to accept. If empty the defaults are used. These can be overriden only if absolutely needed."></cipher_list>
        </ssl>
    </storage>

    <tile_cache_persistent desc="Should the tiles persist between two editing sessions of the given document?" type="bool" default="true">true</tile_cache_persistent>

    <admin_console desc="Web admin console settings.">
        <enable desc="Enable the admin console functionality" type="bool" default="true">true</enable>
        <enable_pam desc="Enable admin user authentication with PAM" type="bool" default="false">false</enable_pam>
        <username desc="The username of the admin console. Ignored if PAM is enabled."></username>
        <password desc="The password of the admin console. Deprecated on most platforms. Instead, use PAM or loolconfig to set up a secure password."></password>
    </admin_console>

    <monitors desc="Addresses of servers we connect to on start for monitoring">
    </monitors>

    <storage desc="Backend storage">
        <filesystem allow="false" />
        <wopi desc="Allow/deny wopi storage. Mutually exclusive with webdav." allow="true"><host desc="Regex pattern of hostname to allow or deny." allow="true">office.mydomain.com|cloud.mydomain.com</host>
            <host desc="Regex pattern of hostname to allow or deny." allow="true">domain1|domain2</host>
            <host desc="Regex pattern of hostname to allow or deny." allow="true">10\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}</host>
            <host desc="Regex pattern of hostname to allow or deny." allow="true">172\.1[6789]\.[0-9]{1,3}\.[0-9]{1,3}</host>
            <host desc="Regex pattern of hostname to allow or deny." allow="true">172\.2[0-9]\.[0-9]{1,3}\.[0-9]{1,3}</host>
            <host desc="Regex pattern of hostname to allow or deny." allow="true">172\.3[01]\.[0-9]{1,3}\.[0-9]{1,3}</host>
            <host desc="Regex pattern of hostname to allow or deny." allow="true">192\.168\.[0-9]{1,3}\.[0-9]{1,3}</host>
            <host desc="Regex pattern of hostname to allow or deny." allow="false">192\.168\.1\.1</host>
            <max_file_size desc="Maximum document size in bytes to load. 0 for unlimited." type="uint">0</max_file_size>
            <reuse_cookies desc="When enabled, cookies from the browser will be captured and set on WOPI requests." type="bool" default="false">false</reuse_cookies>
            <locking desc="Locking settings">
                <refresh desc="How frequently we should re-acquire a lock with the storage server, in seconds (default 15 mins) or 0 for no refresh" type="int" default="900">900</refresh>
            </locking>
        </wopi>
        <webdav desc="Allow/deny webdav storage. Mutually exclusive with wopi." allow="false">
            <host desc="Hostname to allow" allow="false">office.mydomain.com|cloud.mydomain.com</host>
        </webdav>
        <ssl desc="SSL settings">
            <enable type="bool" desc="Controls whether SSL encryption between storage and loolwsd is enabled. Defaults when empty to following the ssl.enable setting"></enable>
            <cert_file_path desc="Path to the cert file" relative="false"></cert_file_path>
            <key_file_path desc="Path to the key file" relative="false"></key_file_path>
            <ca_file_path desc="Path to the ca file" relative="false"></ca_file_path>
            <cipher_list desc="List of OpenSSL ciphers to accept. If empty the defaults are used. These can be overriden only if absolutely needed."></cipher_list>
        </ssl>
    </storage>
</config>

lool:lool that should work