"seafhttp" not working

Hi, I deployed Seafile in our Coolify server [What is Coolify? An open-source & self-hostable Heroku / Netlify / Vercel alternative] through Docker compose but although I managed to make it run, the “seafhttp” is not working and cannot view or download files.

My Seafile server config is:

SERVICE_URL:
https://seafile.<MY_DOMAIN>

FILE_SERVER_ROOT
http://127.0.0.1/seafhttp

And below is the Docker compose:

version: '3.8'
services:
  db:
    image: 'mariadb:10.11'
    container_name: seafile-mysql
    restart: unless-stopped
    environment:
      - 'MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}'
      - MYSQL_LOG_CONSOLE=true
    volumes:
      - '/opt/seafile/data/db:/var/lib/mysql'
    networks:
      - seafile-net
    healthcheck:
      test:
        - CMD
        - mysqladmin
        - ping
        - '-h'
        - localhost
      interval: 30s
      timeout: 10s
      retries: 5
    logging:
      options:
        max-size: 10m
        max-file: '3'
  memcached:
    image: 'memcached:1.6'
    container_name: seafile-memcached
    restart: unless-stopped
    entrypoint: 'memcached -m 256'
    networks:
      - seafile-net
    logging:
      options:
        max-size: 10m
        max-file: '3'
  seafile:
    image: 'h44z/seafile-ce:${SEAFILE_VERSION:-11.0.13}'
    container_name: seafile
    restart: unless-stopped
    volumes:
      - '/opt/seafile/data/seafile:/seafile'
      - '/opt/seafile/logs:/opt/seafile/logs'
    env_file:
      - .env
    depends_on:
      - memcached
      - db
    networks:
      - seafile-net
      - proxy-net
    healthcheck:
      test:
        - CMD
        - curl
        - '-f'
        - 'http://localhost:8000'
      interval: 30s
      timeout: 10s
      retries: 5
    labels:
      - coolify.managed=true
      - traefik.enable=true
      - traefik.docker.network=proxy-net
      - 'traefik.http.routers.seafile.rule=Host(`seafile.${DOMAINNAME}`)'
      - traefik.http.routers.seafile.entrypoints=websecure
      - traefik.http.routers.seafile.tls=true
      - traefik.http.routers.seafile.tls.certresolver=letsencryptresolver
      - traefik.http.services.seafile.loadbalancer.server.port=8000
  onlyoffice-documentserver:
    image: 'onlyoffice/documentserver:latest'
    restart: unless-stopped
    container_name: seafile-oods
    environment:
      - JWT_ENABLED=true
      - 'JWT_SECRET=${ONLYOFFICE_JWT_SECRET:-Supers3cr3t}'
    networks:
      - seafile-net
      - proxy-net
    healthcheck:
      test:
        - CMD
        - curl
        - '-f'
        - 'http://localhost/health'
      interval: 30s
      timeout: 10s
      retries: 5
    labels:
      - traefik.enable=true
      - traefik.docker.network=proxy-net
      - 'traefik.http.routers.seafile-oods.rule=Host(`oods.seafile.${DOMAINNAME}`)'
      - traefik.http.routers.seafile-oods.entrypoints=websecure
      - traefik.http.routers.seafile-oods.tls=true
      - traefik.http.routers.seafile-oods.tls.certresolver=letsencryptresolver
      - traefik.http.services.seafile-oods.loadbalancer.server.port=80
networks:
  seafile-net:
    name: seafile-net
  proxy-net:
    name: proxy-net
volumes:
  acme-certs: null

I also tried to set the FILE_SERVER_ROOT to https://seafile.<MY_DOMAIN>/seafhttp and this can’t be reached as well, what could be wrong in my docker-compose setup?

I’m not an expert in docker (I only know enough to really dislike it), but I think you need a section in there telling docker what port(s) to forward into the container.

Something like:

    ports:
      - "80:80"

Also, why are you using seafile version 11 instead of the current release version 12?