I have been trying to integrate Collabora with Seafile and, for the most part, I think, I have been successful. Yet, I still can’t open a file. Let me explain.
I serve Collabora from collabora.xyz.tld and Seafile from seafile.xyz.com. If I visit collabora.xyz.tld and collabora.xyz.tld/hosting/discovery, I get the expected responses and all references point to https://collabora.xyz.tld:443, so Collabora works.
I am not sure. I had a look at my configs, and I don’t see anything I am sure would cause that sort of problem. My best guess is that you need to update FILE_SERVER_ROOT in that same seahub_settings.py. It’s also possible that SEAFILE_SERVER_HOSTNAME= has that port number on it in your .env file.
If it is neither of those, I would suggest you find the conf directory with the config files (the directory seahub_settings.py) is in, cd into it, and run “grep 6232 *” to see if any of the config files contain the string “6232”. If grep finds that string it will give the filename, followed by the entire line containing the match.
Serendipitously I managed to fix this problem, by restarting my server. There was no problem or omission in my Docker or Seafile/Seahub configurations. Simply restarting the Seafile Docker container, or taking it down and then up again, is not enough to apply new or changed settings in seahub_setting.py. For some reason, one has to restart Docker. Or am I doing something wrong?
I don’t know exactly how docker handles changes to the config like that, but I wouldn’t be surprised if it takes extra steps. There were several design decisions I disliked in docker, so I switched to using podman to run the containers, so I can’t even test it on mine.
# [docker_compose.yml]
collabora:
image: ${COLLABORA_IMAGE:-collabora/code:24.04.5.1.1}
container_name: collabora
ports:
- 6232:9980
cap_add:
- MKNOD
restart: unless-stopped
environment:
- server_name=${COLLABORA_SERVER_HOSTNAME:?Variable is not set or empty}:${COLLABORA_PORT:-6232}
- username=${COLLABORA_USERNAME:?Variable is not set or empty}
- password=${COLLABORA_PASSWORD:?Variable is not set or empty}
- dictionaries= en de it
- DONT_GEN_SSL_CERT=true
- TZ=${TIME_ZONE:-Europe/Berlin}
- extra_params=--o:admin_console.enable=${COLLABORA_ENABLE_ADMIN_CONSOLE:-true}
--o:ssl.enable=false
--o:ssl.termination=true
--o:user_interface.mode=classic
--o:remote_font_config.url=${COLLABORA_REMOTE_FONT:-}
--o:logging.file[@enable]=${COLLABORA_ENABLE_FILE_LOGGING:-false}
--o:logging.file.property[0]=/opt/cool/logs/coolwsd.log
volumes:
- ${COLLABORA_PATH:-/opt/collabora}/coolwsd:/etc/coolwsd
networks:
- apps_net
# [.env]
# Collabora
COLLABORA_IMAGE=collabora/code:latest # image of LibreOffice
COLLABORA_SERVER_HOSTNAME=your.domain.name
COLLABORA_PORT=443
COLLABORA_USERNAME=yourusername
COLLABORA_PASSWORD=yourpassword
COLLABORA_ENABLE_ADMIN_CONSOLE=true # enable admin console or not
COLLABORA_ENABLE_FILE_LOGGING=false # use file logs or not, see FQA
COLLABORA_PATH=./data/collabora