# 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: ```nginx 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: ```bash ssh rishi@192.168.1.112 cd /opt/seafile && docker compose down ``` 2. Create directories: ```bash mkdir -p /mnt/user/appdata/seafile/{data,db-data,seadoc-data,seasearch-data} ``` 3. Copy data: ```bash 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/ ``` 4. Copy config files: ```bash cp seahub_settings.py /mnt/user/appdata/seafile/ cp seafile.conf /mnt/user/appdata/seafile/ ``` 5. Update NPM proxies to point to 192.168.1.75 instead of 192.168.1.112 6. 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`