I can't start Seadoc docker (seafile 13)

Good afternoon. I’m testing seadoc, but I can’t stock up. There is a docker compose configuration (incomplete file):

  COMPOSE_FILE='seafile-server.yml,notification-server.yml,seadoc.yml'                                                                                                                                                                                    
  COMPOSE_PATH_SEPARATOR=','
  SEAFILE_SERVER_HOSTNAME=sfile.xxx.ru                                                                                                                                                                                                               
  SEAFILE_SERVER_PROTOCOL=https
  ...
  ENABLE_SEADOC=true

Seadoc has just started setting up (everything else is already working)

 seadoc:                                                                                                                                                                                                                                                 
   image: ${SEADOC_IMAGE}                                                                                                                                                                                                                                
     container_name: seafile-seadoc                                                                                                                                                                                                                        
     restart: unless-stopped                                                                                                                                                                                                                               
     volumes:                                                                                                                                                                                                                                              
       - ${SEADOC_VOLUME}:/shared                                                                                                                                                                                                                          
 #    ports:                                                                                                                                                                                                                                               
 #      - "8082:80"                                                                                                                                                                                                                                        
     environment:                                                                                                                                                                                                                                          
       - DB_HOST=${SEAFILE_MYSQL_DB_HOST:-db}                                                                                                                                                                                                              
       - DB_PORT=${SEAFILE_MYSQL_DB_PORT:-3306}                                                                                                                                                                                                            
       - DB_USER=${SEAFILE_MYSQL_DB_USER:-seafile}                                                                                                                                                                                                         
       - DB_PASSWORD=${SEAFILE_MYSQL_DB_PASSWORD}                                                                                                                                                                                                          
       - DB_NAME=${SEADOC_MYSQL_DB_NAME:-${SEAFILE_MYSQL_DB_SEAHUB_DB_NAME:-seahub_db}}                                                                                                                                                                    
       - TIME_ZONE=${TIME_ZONE}                                                                                                                                                                                                                            
       - JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY}                                                                                                                                                                                                                
#      - NON_ROOT=${NON_ROOT:-}                                                                                                                                                                                                                           
       - SEAHUB_SERVICE_URL=${SEAFILE_SERVER_HOSTNAME}   
 seafile: 
   - ENABLE_SEADOC=true                                                                                                                                                                                                                               
   - SEADOC_SERVER_URL=${SEAFILE_SERVER_PROTOCOL:-https}://${SEAFILE_SERVER_HOSTNAME}/sdoc-server             

The containers are in the same network.
As an nginx proxy, seadoc is available from the nginx container.

....
  location / {                                                                                                                                                                                                                                         
          proxy_pass         http://seafile:80;                                                                                                                                                                                                            
          proxy_set_header   Host $host;                                                                                                                                                                                                                   
          proxy_set_header   X-Real-IP $remote_addr;                                                                                                                                                                                                       
          proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;                                                                                                                                                                                   
          proxy_set_header   X-Forwarded-Host $server_name;                                                                                                                                                                                                
  #       proxy_set_header   X-Forwarded-Proto $scheme;                                                                                                                                                                                                    
          proxy_set_header   X-Forwarded-Proto https;                                                                                                                                                                                                      
          proxy_set_header   Connection "";  
....
 location /sdoc-server/ {                                                                                                                                                                                                                             
         proxy_pass         http://seafile-seadoc:80/;                                                                                                                                                                                                    
         proxy_redirect     off;                                                                                                                                                                                                                          
         proxy_set_header   Host              $host;                                                                                                                                                                                                      
         proxy_set_header   X-Real-IP         $remote_addr;                                                                                                                                                                                               
         proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;                                                                                                                                                                                 
         proxy_set_header   X-Forwarded-Host  $server_name;                                                                                                                                                                                               
         proxy_set_header   X-Forwarded-Proto $scheme;                   
....
 location /socket.io {
         proxy_pass http://seafile-seadoc:80;
....

If you open the link - https://sfile.xxx.ru/sdoc-server/
Welcome to sdoc-server. The current version is 2.0.9

But the Wiki does not work and gives errors Internal Server Error
seahub.access.log

                                                                                                                                                        
 192.168.4.142 172.18.0.7 [02/Apr/2026:11:51:17 +0500] "GET /api/v2.1/wiki2/691b6c91-2c84-447d-b792-b4b01e0a7f61/config/ HTTP/1.1" 200 340 "https://sfile.xxx.ru/wikis/691b6c91-2c84-447d-b792-b4b01e0a7f61/rkh5/" "Mozilla/5.0 (Windows NT 10.0;      
    Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36" 0.015                                                                                                                                                                 
 192.168.4.142 172.18.0.7 [02/Apr/2026:11:51:17 +0500] "GET /api/v2.1/wiki2/691b6c91-2c84-447d-b792-b4b01e0a7f61/page/rkh5/ HTTP/1.1" 200 738 "https://sfile.xxx.ru/wikis/691b6c91-2c84-447d-b792-b4b01e0a7f61/rkh5/" "Mozilla/5.0 (Windows NT 10.0;   
    Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36" 0.019                                                                                                                                                                                                                                                           

sdoc-server.log

[2026-04-02 11:51:17] [ERROR] index.js[177] - Service unknown error
[2026-04-02 11:51:17] [ERROR] index.js[178] - error_type:  UNKNOWN_ERROR
[2026-04-02 11:51:17] [ERROR] index.js[179] - error_message:  Invalid URL
[2026-04-02 11:51:17] [ERROR] index.js[180] - error_stack:  TypeError: Invalid URL
     at new URL (node:internal/url:806:29)
     at dispatchHttpRequest (/opt/sdoc-server/sdoc-server-2.0.9/sdoc-server/node_modules/axios/dist/node/axios.cjs:2927:20)
     at /opt/sdoc-server/sdoc-server-2.0.9/sdoc-server/node_modules/axios/dist/node/axios.cjs:2847:5
     at new Promise (<anonymous>)
     at wrapAsync (/opt/sdoc-server/sdoc-server-2.0.9/sdoc-server/node_modules/axios/dist/node/axios.cjs:2827:10)
     at http (/opt/sdoc-server/sdoc-server-2.0.9/sdoc-server/node_modules/axios/dist/node/axios.cjs:2865:10)
     at Axios.dispatchRequest (/opt/sdoc-server/sdoc-server-2.0.9/sdoc-server/node_modules/axios/dist/node/axios.cjs:4323:10)
     at Axios._request (/opt/sdoc-server/sdoc-server-2.0.9/sdoc-server/node_modules/axios/dist/node/axios.cjs:4623:33)
     at Axios.request (/opt/sdoc-server/sdoc-server-2.0.9/sdoc-server/node_modules/axios/dist/node/axios.cjs:4478:25)
     at Axios.<computed> [as get] (/opt/sdoc-server/sdoc-server-2.0.9/sdoc-server/node_modules/axios/dist/node/axios.cjs:4649:17)
     at Axios.request (/opt/sdoc-server/sdoc-server-2.0.9/sdoc-server/node_modules/axios/dist/node/axios.cjs:4483:41)                                                                                                                                     
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)                                                                                                                                                                        
[2026-04-02 11:51:17] [ERROR] document-controller.js[56] - Get doc download link error                                                                                                                                                                   
[2026-04-02 11:51:17] [ERROR] document-controller.js[64] - Get doc download link error. request url is: sfile.xxx.ru/api/v2.1/seadoc/download-link/9934849e-1e33-4c4c-816f-dbafc19ecbbf/                                                              
[2026-04-02 11:52:39] [INFO] document-manager.js[104] - 0 docs saved.                                                                                                                                                                                    
[2026-04-02 11:52:39] [INFO] excalidraw-manager.js[101] - 0 docs saved.      

I have updated the document on how to debug the issue: SeaDoc Integration - Seafile Admin Manual

Can you give it a check?

Another question is that have you modified the default yml files?

The correct content is:

services:

  seadoc:
    image: ${SEADOC_IMAGE:-seafileltd/sdoc-server:2.0-latest}
    container_name: seadoc
    restart: unless-stopped
    volumes:
      - ${SEADOC_VOLUME:-/opt/seadoc-data/}:/shared
    # ports:
    #   - "80:80"
    environment:
      - DB_HOST=${SEAFILE_MYSQL_DB_HOST:-db}
      - DB_PORT=${SEAFILE_MYSQL_DB_PORT:-3306}
      - DB_USER=${SEAFILE_MYSQL_DB_USER:-seafile}
      - DB_PASSWORD=${SEAFILE_MYSQL_DB_PASSWORD:?Variable is not set or empty}
      - DB_NAME=${SEADOC_MYSQL_DB_NAME:-${SEAFILE_MYSQL_DB_SEAHUB_DB_NAME:-seahub_db}}
      - TIME_ZONE=${TIME_ZONE:-Etc/UTC}
      - JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY:?Variable is not set or empty}
      - NON_ROOT=${NON_ROOT:-false}
      - SEAHUB_SERVICE_URL=${SEAFILE_SERVICE_URL:-http://seafile}
    labels:
      caddy: ${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty}
      caddy.1_handle_path: "/socket.io/*"
      caddy.1_handle_path.0_rewrite: "* /socket.io{uri}"
      caddy.1_handle_path.1_reverse_proxy: "{{upstreams 80}}"
      caddy.2_handle_path: "/sdoc-server/*"
      caddy.2_handle_path.0_rewrite: "* {uri}"
      caddy.2_handle_path.1_reverse_proxy: "{{upstreams 80}}"
    depends_on:
      db:
        condition: service_healthy
    networks:
      - seafile-net

networks:
  seafile-net:
    name: seafile-net

You have modified the line SEAHUB_SERVICE_URL