Explanation of Seafile 12.0 new Docker deployment approarch

Have you used the example configuration here? S3 Backend - Seafile Admin Manual

Do you mean you can list directories and upload files etc. but only GC fails?

I do confirm only GC fails while storage works when using path style enabled.

I’m having a problem I just can’t seem to solve. I went through the upgrade documentation I did the files I changed all the env variables and everything appears to be booting up however the log just spams [Warning] Access denied for user ā€˜seafile’ and it never comes fully online.

I pulled the password right out of the old seafile.conf for the user, and the root from the old yaml. I’ve triple checked they are correct. I made sure the path was correct as well for db location I’m not sure what else to do

This is a bug that will be fixed in 12.0.7 version. The current code is incompatible with v4 authentication + path_style_request when listing objects.

It seems that the ā€œURLā€ topic is gone from the admin webui (SERVICE_URL).

I can only set those through environment variables.

Is that by design?

It is by design. It is documented in the upgrade notes (Upgrade notes for 12.0.x - Seafile Admin Manual)

Dammit I tried to find the documentation, sorry.

You better update this screenshot:

under ā€œServer Configuration and Customizationā€ on v.12

Thanks for the notification. We will upgrade it soon.

1 Like

After upgrading to 12 version … LDAP users cant see his libraries
It created new users , when logged in with LDAP user
Also from admin user transfer lib to another user is not working !
Can you help me , Why @daniel.pan

Is it possible bypass the built-in nginx and use my own? I see the built-in nginx conf file but if I try to do the same config with my own nginx (on the same docker network), it does not work.

I would really like to avoid:
user → nginx → nginx → seafile
when it could simply be:
user → nginx → seafile.

Also feel like nginx should be its own service in the yaml, especially as docker is not designed for multiple processes in a single container.

1 Like

Yes, it is possible to bypass the nginx that is inside of the seafile container, but you can’t as easily stop it from running. The default seafile docker config has this section:

    # ports:
    #   - "80:80"

This ā€œportsā€ section configures what ports inside of the container are available outside of docker. It is commented out because the default setup uses another container running caddy as the reverse proxy, and one container can access anther without needing the ports declared like this. So I set mine to:

    ports:
      - "8000:8000"
      - "8082:8082"

And then my reverse proxy (which is another machine on the network, not a container) can talk to ports 8000 and 8082 on the docker server’s IP. So the nginx config looks like you see in the documentation for seafile 11, with lines like:

    location /seafhttp {
        rewrite ^/seafhttp(.*)$ $1 break;
        proxy_pass http://10.10.10.10:8082;

And there you go. Nginx doing TLS and being the reverse proxy talking straight to seafile without another reverse proxy in there causing confusion.

1 Like

For some reason I’m unable to reverse proxy using my own nginx container on the same docker network. It works from outside of the docker network using ports as you suggest, though. It’s a bit odd. I’m sticking with the dual nginx setup for now.

Hopefully in the future Seafile will separate out their nginx process into its own container which can be optionally stripped out by those of us with our own nginx.

Thank you for the response.
However, I believe it becomes unnecessarily complicated when using only seaf-server and seahub.

You can simply expose the ports of Nginx within the seaf-server container. There’s no need to manage two different reverse proxies. And if you’re not familiar with Caddy, it can be quite a headache, especially when migrating from Seafile 11 to 12 (and you already had setup everthing with the internal nginx of seafile 11), where a lot has changed.

It took me around 5 to 6 hours to migrate from Seafile 11 to 12, and I’m still facing issues. For example, OnlyOffice can’t save files. Apart from OnlyOffice (what worked in my Seafile 11 instance), everything else works fine now. But I would really appreciate it if updates could be as simple as pulling the latest Seafile image and recreating the container, without major configuration changes that require manual steps.

In my opinion, one of the best features a product can have is a smooth, automated and fast update process. These kinds of major changes risk driving some users away, simply because not everyone has the time to debug why an upgrade doesn’t work.

I’ve been using Seafile for three years now, and all previous updates were as easy as recreating the container with the latest image. That was it. If it’s possible to maintain this simple update procedure in future major releases, it would be greatly appreciated and much easier to manage as a customer.

2 Likes