Need Help: Collabora Online Integration with Seafile Pro 12 (Docker, Traefik)

I’m trying to integrate Collabora Online with my Seafile Pro (v12) server, both running as Docker containers on the same host, behind Traefik. I followed the official documentation but I can’t get online editing to work. When I click on a .docx file, I get “Online view is not applicable to this file format”.

Here is my Collabora service in docker-compose:

  collabora:
    image: ${COLLABORA_IMAGE:-collabora/code:24.04.5.1.1}
    container_name: ${APP_NAME}-collabora
    environment:
      - domain=${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty}
      - username=${COLLABORA_USERNAME:?Variable is not set or empty}
      - password=${COLLABORA_PASSWORD:?Variable is not set or empty}
      - DONT_GEN_SSL_CERT=true
      - extra_params=--o:admin_console.enable=${COLLABORA_ENABLE_ADMIN_CONSOLE:-true}
        --o:ssl.enable=false
        --o:ssl.termination=true
        --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}/logs:/opt/cool/logs/" # chmod 777 needed
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.${SUBDOMAIN_NAME}-collabora.rule=Host(`${SEAFILE_SERVER_HOSTNAME}`) && PathPrefix(`/hosting/discovery`, `/lool`, `/loleaflet`, `/browser`, `/cool`)"
      - "traefik.http.routers.${SUBDOMAIN_NAME}-collabora.entrypoints=websecure"
      - "traefik.http.routers.${SUBDOMAIN_NAME}-collabora.tls=true"
      - "traefik.http.services.${SUBDOMAIN_NAME}-collabora.loadbalancer.server.port=9980"
      - "traefik.http.middlewares.${SUBDOMAIN_NAME}-collabora-stripprefix.stripprefix.prefixes=/hosting/discovery,/lool,/loleaflet,/browser"
    networks:
      - seafile-net
      - traefik-net
    cap_add:
      - MKNOD
    depends_on:
      - seafile

And here is my seahub_settings.py:

OFFICE_SERVER_TYPE = 'CollaboraOffice'
ENABLE_OFFICE_WEB_APP = True
OFFICE_WEB_APP_BASE_URL = 'https://seafile.company.com/hosting/discovery'
WOPI_ACCESS_TOKEN_EXPIRATION = 1800
OFFICE_WEB_APP_FILE_EXTENSION = ('odp', 'ods', 'odt', 'xls', 'xlsb', 'xlsm', 'xlsx', 'ppsx', 'ppt', 'pptm', 'pptx', 'doc', 'docm', 'docx')
ENABLE_OFFICE_WEB_APP_EDIT = True
OFFICE_WEB_APP_EDIT_FILE_EXTENSION = ('odp', 'ods', 'odt', 'xls', 'xlsb', 'xlsm', 'xlsx', 'ppsx', 'ppt', 'pptm', 'pptx', 'doc', 'docm', 'docx')
  • I can access https://seafile.exemple.com/hosting/discovery but the page is : Sorry, but the requested page could not be found.
  • Seafile and Collabora are on the same Docker host, and both are on the seafile-net and traefik-net networks.
  • Traefik handles HTTPS termination.
  • HTTPS is enable in my .env
  • http://collabora:9980/hosting/discovery or *http://container_name:9980/hosting/discovery don’t work : collabora ’s server IP address could not be found. I can ping container_name from the Seafile container.
  • https://seafile.company.com/hosting/discovery don’t work : Online view is not applicable to this file format

What am I missing?

  • Are my docker-compose and seahub_settings.py correct?
  • Is there something else I should check in Traefik or Collabora configuration?
  • Any advice on troubleshooting this integration?

The problem has been resolved. The issue was in the router rules declaration

  • “traefik. http.routers.${SUBDOMAIN_NAME}-collabora.rule=Host(${SEAFILE_SERVER_HOSTNAME}) && (PathPrefix(/hosting/discovery) || PathPrefix(/lool) || PathPrefix(/loleaflet) || PathPrefix(/browser) || PathPrefix(/cool))

And not :

  • “traefik.http.routers.${SUBDOMAIN_NAME}-collabora.rule=Host(${SEAFILE_SERVER_HOSTNAME}) && PathPrefix(/hosting/discovery, /lool, /loleaflet, /browser, /cool)”