Seafile docker and other software behind nginx - but how? :-)

Thank you for sharing your experience with Docker and Seafile! I noticed your interest in running multiple instances and services behind NGINX.

I’ve actually written a detailed guide that might be helpful for your setup, which you can find here: Deploying Seafile CE 11 with Docker and SWAG as a Reverse Proxy

Multiple Seafile Instances

To run multiple Seafile instances, the key points are:

  1. Use different container names (e.g., seafile-personal, seafile-pro)
  2. Ensure proper NGINX configuration
  3. Connect all containers to the same Docker network

Here’s an example NGINX configuration for SWAG:

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    http2 on;

    server_name seafile-personal.domain.com;

    # SSL standard config
    include /config/nginx/ssl.conf;

    client_max_body_size 0;

location / {
    # Use Docker's internal DNS resolver
    include /config/nginx/resolver.conf;

    # Proxy configuration for Seafile container
    set $upstream_app seafile-personal;
    set $upstream_port 80;
    set $upstream_proto http;
    proxy_pass $upstream_proto://$upstream_app:$upstream_port;
}
...

Reverse Proxy Options

For managing multiple services, you have several excellent options:

SWAG: A comprehensive solution that makes it easy to manage multiple services.

NGINX Proxy Manager: A user-friendly alternative with a nice GUI.

Standard NGINX: Manual configuration option for those who prefer more control.

Mail Server Experience

Regarding Mailcow - while I successfully set it up with SWAG, I ultimately switched to Mailu which I found to be a superior choice:

  • Significantly lighter on resources
  • More modern and cleaner interface
  • Easier to maintain
  • Better overall user experience

My guide on the Seafile forum provides detailed instructions for setting up SWAG as a reverse proxy, which should help you get multiple instances running smoothly!