Seafile blocks on HDD and indexes on SSD

Hello,

I’ve been running seafile CE for years in binary for me and my family. But I just “upgraded” to docker then to seafile 13.

I always hated docker because I find it scary and very hard to debug, seems like a black box to me.

Before that migration I had my seafile-data under /data/seafile-data (where /data is a partition linked to my hdd raid array). And my seafile system under /opt/seafile.

A symlink in /opt/seafile/seafile-data was linked to /data/seafile-data.

In the migration I tried to simplified the thing and since I can only give a single path in the .env file I guess I don’t really have a choice.

So here I come, is it worth it to separate the data itself (blocks) on HDD, and config and indexes on my main NVMe ?

If yes, how to do it properly without breaking docker :smiling_face_with_tear:. Can a symlink still work inside a docker, should it point the destination inside the container (/shared..) or the destination on the host (/data..)

Thanks

I hate the block box nature of docker too, and the running even more stuff as root, and several other aspects of docker. You might be interrested in this post I made about how I switched to the docker version, but running in podman instead of docker.

And for splitting your data up to put some on the HDD and some on the NVME, I think this can work. Docker can be weird with links, so rather than using a link, I would suggest defining a different path as a mount point. I think it would look something like this:

    volumes:
      - /path/to/hdd/seafile-data:/shared
      - /path/to/nvme/commits:/shared/seafile/seafile-data/storage/commits
      - /path/to/nvme/fs:/shared/seafile/seafile-data/storage/fs

Okay so basically I should have a README file next to the compose file to know what did I modified. Hopefully I did the 12 to 13 update just after the migration from standalone to docker. But if I hadn’t done it like this I just wouldn’t remind it what I changed in the compose file that needs to be overwritten on each update.. The whole caddy disable stuff, the whole mysql disabling too..

Well.. I still think I will do this trick if I find the whole thing too slow.