Seafile server and client consists of several components. Understanding how they work together will save you a lot time in deploying and maintaining Seafile.
In version 4.0, Seafile supports syncing using HTTP/HTTPS protocol. The architecture has been simplified a lot.
seaf-server
):data service daemon, handles raw file upload/download/syncingccnet-server
): RPC service daemon to enable communication among multiple components. The picture below shows how Seafile clients access files when you configure Seafile behind Nginx/Apache. The desktop client should turn the option "sync over HTTP/HTTPS" on.
fileserver
) (It is called HttpServer before version 3.1): handles raw file upload/download functions for Seahub. Due to Gunicorn being poor at handling large files, so we wrote this "FileServer" in the C programming language to serve raw file upload/download.seaf-server
):data service daemonccnet-server
):networking service daemon. In our initial design, Ccnet worked like a traffic bus. All the network traffic between client, server and internal traffic between different components would go through Ccnet. After further development we found that file transfer is improved by utilizing the Seafile daemon component directly.The picture below shows how Seafile desktop client syncs files with Seafile server:
The picture below shows how Seafile mobile client interacts with Seafile server:
The picture below shows how Seafile mobile client interacts with Seafile server if the server is configured behind Nginx/Apache:
seafile-applet
): The GUI front-endseafile
): data service daemon for clientccnet
): networking service daemon for client