Really bad documentation

I’ve been using Seafile since it was first released. I managed to upgrade to each new major version with some little hickups. I was never quite happy with the docker release of Seafile back when everything was stuffed in one container. Luckily that changed.

So for the longest time I just had a little debian-slim dockerfile that served as base for the binary package. For Memcache and MySQL I just used the stock containers.

Since there is no binary for the latest version for the CE I tried to figure out how to use the official docker container over the last few days. And I’m sorry to say, the documentation ( Setup community edition - Seafile Admin Manual ) is very bad on this. I jumped from error to error to try to get some clues as to where to mount my old folders in the container.

It starts with a clear separation of which files are on the host system and which files are meant to be mounted where within the docker container. It starts with the /opt/seafile that I guess is just mentioned because the compose files are supposed to be stored there. But then there is the environment variable “SEAFILE_VOLUME=/opt/seafile-data” that is completely ignored and is very confusing since this is the path mentioned earlier.

The mention of /opt/seafile-mysql and /opt/seafile-data next doesn’t help either. It confuses the reader in thinking that the mysql folder somehow has to be mounted in the seafile docker.

The whole section about the “Seafile directory structure” is totally outdated or wrong. Also the linked “https://manual.seafile.com/12.0/repo/docker/ce/seafile-server.yml” is only medium helpful. It mentions the volume “- ${SEAFILE_VOLUME:-/opt/seafile-data}:/shared”. For a new installation this might be right. It would have saved me hours to write down that the folder /shared not only holds the old “seafile-data” (kinda unlucky to reuse this name here), but also the folders seahub-data, conf and logs.

The non-root option is also confusing, since the container itself still needs root and can not be changed to user mode (e.g. with user: “1000:1000”).

Don’t get me wrong. I love Seafile. The only reason I wrote about my troubles here is that I wish that the documentation gets better so that others might not have them and the devs have the opportunity to improve the docs. The more people use seafile, the better it gets I think.

The entry barrier to use seafile should be as low as possible. And currently it is very hard to understand the different parts.

2 Likes

I forgot to mention that I was very confused that even with all the environment variables set, the container/seafile would still try to connect to a database on localhost. Only with the config folder mounted and fully configured (why the env variables?) it finally worked.

Thanks for reporting the issue.

In each major release, we will improve the document and the configurations based on feedbacks.

In version 13.0, you can work with env variables only for database configurations. In version 12.0, the database configurations need to be specified in both the env file and the original configuration files.