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 configurationseafile.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
- Stop Seafile on VM:
ssh rishi@192.168.1.112
cd /opt/seafile && docker compose down
- Create directories:
mkdir -p /mnt/user/appdata/seafile/{data,db-data,seadoc-data,seasearch-data}
- 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/
- Copy config files:
cp seahub_settings.py /mnt/user/appdata/seafile/
cp seafile.conf /mnt/user/appdata/seafile/
-
Update NPM proxies to point to 192.168.1.75 instead of 192.168.1.112
-
Deploy stack via Portainer
Notes
- Notifications only work for shared library events between users
- SeaDoc requires the
/sdoc-server/and/socket.ioproxy locations - WebDAV is enabled on port 8080 at
/seafdav