Files
flook-stacks/stacks/seafile
2025-12-29 17:55:42 -05:00
..
2025-12-29 17:55:42 -05:00
2025-12-29 17:55:42 -05:00
2025-12-29 17:55:42 -05:00
2025-12-29 17:55:42 -05:00
2025-12-29 17:55:42 -05:00

Seafile Stack

Seafile 13 Pro with SeaDoc, SeaSearch, Notification Server, and Metadata Server.

Services

Service Port Description
seafile 8098:80 Main Seafile server
seadoc 8888:80 Document collaboration
notification-server 8083:8083 Real-time notifications
seafile-md-server 8084:8084 Metadata server
seasearch 4080:4080 Full-text search
seafile-mysql - MariaDB database
seafile-redis - Redis cache

Configuration Files

Copy these to /mnt/user/appdata/seafile/ before deploying:

  • seahub_settings.py - Seahub configuration
  • seafile.conf - Seafile server configuration

NGINX Proxy Manager Setup

fileserver.rishighan.com

Create HTTPS proxy with this Advanced config:

location / {
    proxy_pass http://192.168.1.75:8098;
    proxy_read_timeout 310s;
    proxy_http_version 1.1;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Connection "upgrade";
    client_max_body_size 0;
}

rewrite ^/seafdav$ /seafdav/ permanent;

location /sdoc-server/ {
    proxy_pass http://192.168.1.75:8888/;
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Host $server_name;
    client_max_body_size 100m;
}

location /socket.io {
    proxy_pass http://192.168.1.75:8888;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_redirect off;
    proxy_buffers 8 32k;
    proxy_buffer_size 64k;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
}

notification.rishighan.com

Create separate HTTPS proxy pointing to 192.168.1.75:8083

Migration from VM

  1. Stop Seafile on VM:
ssh rishi@192.168.1.112
cd /opt/seafile && docker compose down
  1. Create directories:
mkdir -p /mnt/user/appdata/seafile/{data,db-data,seadoc-data,seasearch-data}
  1. Copy data:
rsync -avP rishi@192.168.1.112:~/seafile/data/ /mnt/user/appdata/seafile/data/
rsync -avP rishi@192.168.1.112:~/seafile/db-data/ /mnt/user/appdata/seafile/db-data/
  1. Copy config files:
cp seahub_settings.py /mnt/user/appdata/seafile/
cp seafile.conf /mnt/user/appdata/seafile/
  1. Update NPM proxies to point to 192.168.1.75 instead of 192.168.1.112

  2. Deploy stack via Portainer

Notes

  • Notifications only work for shared library events between users
  • SeaDoc requires the /sdoc-server/ and /socket.io proxy locations
  • WebDAV is enabled on port 8080 at /seafdav