Seafile CE 11 to 12 (Docker, RPi, Webdav) - configuration ok?

Hey there. I have a Seafile CE 11 running via Docker on a RPi.
Everything is working so far.
Now I am thinking about bringing it to Version 12.

To be honest, I am a bit afraid of killing my old configuration, which is running smoothly so far.

Did anyone have done it with the same configuration as mine?

Heres my old yml:


services:
  db:
    image: mariadb:10.11
    container_name: seafile-mysql
    environment:
      - MYSQL_ROOT_PASSWORD=***
      - MYSQL_LOG_CONSOLE=true
      - MARIADB_AUTO_UPGRADE=1
    volumes:
      - /home/pi/seafile/seafile-mysql/db:/var/lib/mysql
    restart: unless-stopped
    networks:
      - seafile-net

  memcached:
    image: memcached:latest
    container_name: seafile-memcached
    entrypoint: memcached -m 256
    restart: unless-stopped
    networks:
      - seafile-net

  seafile:
    image: seafileltd/seafile-mc:11.0-latest
    container_name: seafile
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /home/pi/seafile/seafile-data:/shared
    environment:
      - DB_HOST=db
      - DB_ROOT_PASSWD=***
      - TIME_ZONE=Europe/Berlin
      - SEAFILE_ADMIN_EMAIL=***
      - SEAFILE_ADMIN_PASSWORD=***
      - SEAFILE_SERVER_LETSENCRYPT=true
      - SEAFILE_SERVER_HOSTNAME=my.cloud.com
    depends_on:
      - db
      - memcached
    restart: unless-stopped
    networks:
      - seafile-net

networks:
  seafile-net:

and my new env (didnt touched the ymls):

COMPOSE_FILE='seafile-server.yml,caddy.yml,seadoc.yml'
COMPOSE_PATH_SEPARATOR=','


SEAFILE_IMAGE=seafileltd/seafile-mc:12.0-latest
SEAFILE_DB_IMAGE=mariadb:10.11
SEAFILE_MEMCACHED_IMAGE=memcached:1.6.29
SEAFILE_CADDY_IMAGE=lucaslorentz/caddy-docker-proxy:2.9-alpine

SEAFILE_VOLUME=/home/pi/seafile/seafile-data:/shared
SEAFILE_MYSQL_VOLUME=/home/pi/seafile/seafile-mysql/db:/var/lib/mysql
SEAFILE_CADDY_VOLUME=/home/pi/seafile/seafile-caddy

SEAFILE_MYSQL_DB_HOST=db
SEAFILE_MYSQL_DB_USER=seafile
SEAFILE_MYSQL_DB_PASSWORD=***

TIME_ZONE=Europe/Berlin

JWT_PRIVATE_KEY=***

SEAFILE_SERVER_HOSTNAME=my.cloud.com
SEAFILE_SERVER_PROTOCOL=https

I am unsure about the volume paths.

And what about webdav. Is it still working? Do I have to change something?

Would be great, if someone could have a look into it.

Anything else I should check or do before?

greetings
Tibbs

I am in the same situation. I got my system upgraded from 10 standalone, to 10 docker to 11 docker. I have nginx proxy manager forwarding all my services, and as I understand it, npm is sending traffic to the nginx instance in Seafile.

I want to take caddy out of the picture and keep things the way I have it. I have cloned my Seafile 11 directory to test the upgrade, but it always has problems in the end. And like you I’m afraid of killing the config…well, more afraid of killing the datastore.

I’m in a similar situation, I’m running docker and am trying to upgrade from 11 to 12. I’ve tried doing it using HTTP only at first, to avoid any HTTPS related pitfalls. I’ve also attempted to skip caddy to simplify troubleshooting. Still, when I try to enter the “web interface”, all I get is a blank page. I’ve found no error’s in logs that seem relevant, except:

seafile-mysql  | 2025-04-17 18:06:37 13 [Warning] Aborted connection 13 to db: 'seafile_db' user: 'seafile' host: '172.29.0.5' (Got an error reading communication packets)
seafile-mysql  | 2025-04-17 18:06:37 11 [Warning] Aborted connection 11 to db: 'seahub_db' user: 'seafile' host: '172.29.0.5' (Got an error reading communication packets)
seafile-mysql  | 2025-04-17 18:06:37 14 [Warning] Aborted connection 14 to db: 'seahub_db' user: 'seafile' host: '172.29.0.5' (Got an error reading communication packets)

It looks to me like it doesn’t manage to connect to the database. I’ve tried to debug this a bit, but to no avail. I can’t even manage to log in to the database manually, neither using user root and what was the INIT_SEAFILE_MYSQL_ROOT_PASSWORD nor using seafile and what is supposed to be the current password (according to the configuration file). In addition, shortly after upgrade, the log contains a lot of SQL errors about database fields being of the wrong type.

I might be on the completely wrong track, but to me it looks like something goes wrong with the database during “upgrade”.

Luckily I’ve made a LVM snapshot of the data folder before the upgrade, so I think I’ll just revert to version 11. I’m out of ideas for how to troubleshoot this.

edit: I figured out what was the problem with the database, for some reason the “root” password of the mariadb instance didn’t correspond to the password specified in the configuration file. I have no idea what the password was, so it was quite the challenge, but I managed to set a new root password for the database (while keeping my data intact).

Once that was in place, I took another LVM snapshot and tried to upgrade to v12 again. This time I didn’t get all the SQL errors, and the response is slightly different when I try to browse the server: ERR_SSL_PROTOCOL_ERROR.

So, this is probably related to caddy somehow. I don’t think I have the patience to troubleshoot this, so I think I’ll just downgrade to v11 again. I think it would be nice if a version of the v12 configuration without caddy, so that you could continue using the existing setup, existed. Fighting with HTTPS is one of my least favorite activities. When trying to run v12 without HTTPS and connect at port 80, I get ERR_CONNECTION_REFUSED.

@Nadahar

If you delete the “caddy.yml” part here, the caddy container won’t be created.

I know, I’ve tried that. But there’s more, because the port(s) aren’t redirected at all then, not without tweaking seafile-server.yml as well. I’ve tried doing that, but still nothing. I think you need to be more familiar with docker’s networking setup than I am to get this to work. I’ve given up and reverted to v11 for now.