What I hope to get out of this:
- learn how to enable local storage for the docker image
- a list of URL endpoints that are available in collabora/code
- a list of required URL-parameters for those endpoints
What I’m trying to do:
- Open any document using collabora/code.
- I’m not using any extra integrations, I don’t intend to set up a WOPI server.
What I’ve done so far:
-
I followed this guide to set up a docker-compose.yml for collabora/code
-
This is my docker-compose.yml
services: code: tty: true ports: - 9980:9980 image: collabora/code restart: always volumes: - ./etc_coolwsd:/etc/coolwsd - /mnt/nas1:/mnt/nas1 -
I discovered
/hosting/discoverythanks to the ‘How to integrate’ section of the guide.- That provides 3 distinct URLs to me:
- /browser/a0576a3364/cool.html?
- responds with:
Wrong or missing WOPISrc parameter, please contact support.
- responds with:
- /browser/a0576a3364/admin/adminIntegratorSettings.html
- This responds with two buttons, ‘Upload Autotext’ and ‘Upload Wordbook’
- /hosting/capabilities
-
Response
{ "convert-to": { "available": true, "endpoint": "/cool/convert-to" }, "hasDocumentSigningSupport": true, "hasMobileSupport": true, "hasProxyPrefix": false, "hasSettingIframeSupport": true, "hasTemplateSaveAs": false, "hasTemplateSource": true, "hasWASMSupport": false, "hasWopiAccessCheck": true, "hasZoteroSupport": true, "productName": "Collabora Online Development Edition", "productVersion": "25.04.7.3", "productVersionHash": "a0576a3364", "serverId": "00c113a0" }
-
- /browser/a0576a3364/cool.html?
- That provides 3 distinct URLs to me:
-
I discovered the
file_pathURL-Parameter in a reddit post (ugh).-
I prepared a test file in ‘/mnt/nas1/test.xlsx‘ and made it world-read/writeable.
Checking that the file exists in the container:
> docker exec -it collabora-code-1 /bin/sh $ ls -l /mnt/nas1 -rwxrwxrwx 1 1002 993 47824 Dec 13 22:06 test.xlsx -
I tried to enable filesystem access by following the ‘Backend storage configurations‘ section.
Relevant coolwsd.xml excerpt
<config> <logging> <level type="string">debug</level> </logging> <storage desc="Backend storage"> <filesystem allow="true" /> </storage> </config> -
Accessing
/browser/a0576a3364/cool.html?file_path=/mnt/nas1/test.xlsxresults in a blank editor page.
On every 2nd reload the error ‘Failed to establish socket connection or socket connection closed unexpectedly‘ is shown.relevant log output
[ websrv_poll ] DBG Local Storage is disabled in this build. Enable in the config file.| wsd/Storage.cpp:185
[ websrv_poll ] DBG No Storage configured or invalid URI [/mnt/nas1/test.xlsx]| wsd/Storage.cpp:217
-
-
I eventually discovered the admin page ‘
/browser/dist/admin/admin.html‘ here.-
This page works fine, but does not seem helpful to my specific issue.
The ‘Version Information’ just in case it helps
COOLWSD 25.04.7.3 (git hash: a0576a3364) '--build=x86_64-redhat-linux-gnu' '--host=x86_64-redhat-linux-gnu' '--program-prefix=' '--disable-dependency-tracking' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib64' '--libexecdir=/usr/libexec' '--localstatedir=/var' '--sharedstatedir=/var/lib' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--enable-silent-rules' '--with-lokit-path=bundled/include' '--disable-tests' '--with-infobar-url=https://rating.collaboraonline.com/UpdateCheck/updatecheck2.html' '--with-welcome-url=https://rating.collaboraonline.com/Welcome/welcome.html' '--with-feedback-url=https://rating.collaboraonline.com/Rate/feedback.html' '--with-poco-includes=/opt/poco/include' '--with-poco-libs=/opt/poco/lib' '--with-lo-path=/opt/collaboraoffice' '--with-max-documents=1000000' '--with-max-connections=1000000' '--with-vendor=Collabora Productivity Limited' '--with-app-name=Collabora Online Development Edition' '--enable-experimental' 'build_alias=x86_64-redhat-linux-gnu' 'host_alias=x86_64-redhat-linux-gnu' 'CFLAGS=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic' 'LDFLAGS=-Wl,-z,relro ' 'CXXFLAGS=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic' 'PKG_CONFIG_PATH=/opt/rh/devtoolset-12/root/usr/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig' 'PNG_CFLAGS=-I/home/collabora/jenkins/workspace/build_core_co-25.04_for_online_snapshot/workdir/UnpackedTarball/libpng' 'PNG_LIBS=-L/home/collabora/jenkins/workspace/build_core_co-25.04_for_online_snapshot/workdir/LinkTarget/StaticLibrary -llibpng' 'ZSTD_CFLAGS=-I/usr/local/include' 'ZSTD_LIBS=-L/usr/local/lib64 -lzstd' 'CPPUNIT_CFLAGS=-I/usr/local/include/cppunit/' 'CPPUNIT_LIBS=-L/usr/local/lib -lcppunit' 'OPENSSL_CFLAGS=-I/home/collabora/jenkins/workspace/build_core_co-25.04_for_online_snapshot/workdir/UnpackedTarball/openssl/include' 'OPENSSL_LIBS=-L/home/collabora/jenkins/workspace/build_core_co-25.04_for_online_snapshot/workdir/UnpackedTarball/openssl -lcrypto -lssl' (poco version: 1.12.5) LOKit Collabora Office 25.04.7.3 (git hash: 4ad7ba3245) '--enable-hardening-flags' '--enable-mpl-subset' '--with-vendor=Collabora' '--disable-community-flavor' '--with-branding=icon-themes/galaxy/brand_cp' '--with-system-dicts' '--with-myspell-dicts' '--with-system-zlib' '--disable-poppler' '--enable-cairo-rgba' '--without-system-cairo' '--without-system-fontconfig' '--without-system-freetype' '--without-system-graphite' '--without-system-harfbuzz' '--without-system-openssl' '--without-system-libpng' '--without-system-libxml' '--without-system-jpeg' '--without-system-expat' '--without-system-curl' '--without-system-icu' '--without-system-nss' '--without-system-jars' '--without-system-postgresql' '--without-java' '--without-junit' '--without-help' '--with-linker-hash-style=both' '--with-fonts' '--with-docrepair-fonts' '--enable-noto-font' '--with-galleries=no' '--with-theme=colibre colibre_svg' '--with-external-thes-dir=/usr/share/mythes' '--with-external-hyph-dir=/usr/share/hyphen' '--with-external-dict-dir=/usr/share/hunspell' '--disable-dbus' '--enable-extension-integration' '--disable-odk' '--disable-kf5' '--disable-gtk3' '--disable-qt5' '--disable-gstreamer-1-0' '--disable-evolution2' '--disable-gio' '--disable-gui' '--disable-scripting-beanshell' '--disable-scripting-javascript' '--disable-ext-wiki-publisher' '--disable-report-builder' '--disable-ext-nlpsolver' '--disable-sdremote' '--disable-sdremote-bluetooth' '--disable-postgresql-sdbc' '--disable-firebird-sdbc' '--disable-randr' '--enable-epm' '--enable-python=internal' '--disable-online-update' '--disable-dconf' '--enable-mergelibs' '--with-package-format=deb rpm' '--enable-release-build' '--with-lang=ar bg ca cs da de el en-US en-GB eo es eu fi fr gl he hr hu hy id is it ja ko lo nb nl oc pl pt pt-BR sq ru sk sl sv tr uk vi zh-CN zh-TW' '--disable-lotuswordpro' '--disable-lpsolve' '--enable-symbols' '--enable-sal-log' '--without-templates' '--with-buildconfig-recorded' '--srcdir=/opt/collaboraoffice/debugsource' '--enable-option-checking=fatal' 'PKG_CONFIG_PATH=/opt/rh/devtoolset-12/root/usr/lib64/pkgconfig'
-