The Seafile software system comes in three parts: the server software, the desktop, and mobile syncing apps, and the Drive software. This last is for desktops only and creates a virtual drive for accessing and uploading files stored on your Seafile server.
This review deals with the 100% free and open-source community edition of Seafile. This is released under the GNU Affero General Public License v3, with community support provided by the Seafile forum.
There is also a proprietary Linux-only Professional Edition which includes email support and some additional features aimed enterprise environments.
If you host Seafile on a third-party server then there will, of course, be associated server rental costs.
- Cross-platform syncing with full support for Windows, macOS, Linux, Android, and iOS
- Virtual drive mapping
- Client-side (end-to-end) encryption
- Built-in support for Wiki documents
- File versioning and snapshots
- File locking to prevent concurrent editing of files from generating conflicts
- Audit Log for monitoring your system
- Mobile photo upload
- File Sharing and Permission Control
- Two-factor authentication
- Built-in virus scan
- WebDAV support
Notably missing from Seafile is contact and calendar syncing, although many consider Seafile maintaining its purity as file-syncing software to be a feature. Nextcloud, which does support this and other features not supported by Seafile, is regarded as over-bloated by Seafile fans.
Unlike Nextcloud (we have yet to review Owncloud at time of writing), Seafile is self-hosted only - be it on your own or a third party server) There are no partner companies offering fully-hosted pre-configured instances of the platform.
Sync and SeaDrive (see below) apps are available for Windows, macOS and Linux systems. In Linux, GUI versions of these apps (which are basically identical to their Windows and macOS counterparts) are available for Ubuntu, Debian, CentOS, and Fedora. A command-line client is also available for all flavors of Linux.
SeaDrive - virtual drive mapping
Rather than accessing uploaded files via the desktop sync client, the SeaDrive app for Windows, macOS, and Linux mounts your SeaDrive folder as a drive for easy access. This doesn’t add any core functionality over the regular sync client (which does not automatically sync files locally, either), but it does provide a convenient alternative method for accessing your files.
Built-in support for Wiki documents
You can save and edit Wiki documents inside a library using the built-in WYSIWIG Markdown editor. These can seamlessly link to files stored inside a library, thus removing the bane of many traditional Wiki systems – attachment size limitations.
File versioning and snapshot
Whenever you change a file in a synced library, a new file is created. The original file is kept and can be accessed whenever you want. If you become a victim to a ransomware attack, you can simply restore pre-attack versions of your files. Versioning is also useful just for accessing earlier drafts of your work.
In addition to simple file versioning, Seafile takes a snapshot of your entire library whenever you make a change to that library. This means that all files can be restored, not just ones which have been changed.
Past file versions and Snapshots are only available through the web interface, where you can also define how long past versions of files in each library are kept (as measured in days).
Online editing and co-authoring
Files (including Microsoft Office files) can be created, edited, and collaborated on via integration with Microsoft Office Online Server, OnlyOffice, or Collabora Online server. This does, of course, require some setup to deploy.
The Seafile web client also includes built-in preview support for a variety of video, audio, PDF, image and text file formats.
Mobile photo upload
The Android and iOS apps allow you to auto-upload photos and videos to a library of your choice. You can upload via WiFi only or also use mobile data, and you can allow the app to guess camera albums or pick them yourself.
File Sharing and Permission Control
Files and folders can be readily shared from unencrypted libraries via a URL or “internal link.” This allows other Seafile team members to open the link in the desktop client. Encrypted files and folders can be shared by “internal link” only.
You can password-protect shares and set an expiry limit on the links. Enterprise customers have some additional more fine-grained share options.
Two-factor authentication (2FA)
Two factor authentication is easily enabled, requiring the use of Google Authenticator (or presumably any other OTP authenticator app) to sign-in to accounts. Seafile also supports 2FA via the Twilio service.
When deployed, WebDAV support allows you to sync data with WebDAV-enabled apps. As already noted, though, there is no CalDAV or CardDAV support for syncing calendars and contacts
One of the main reasons to use a self-hosted solution such Seafile, rather than a fully-hosted solution such as any regular file syncing or cloud back up service, is that you have complete control over your own data.
You can install the Seafile server software on hardware you physically own, or on rented server space.
If you install Seafile on rented server space then, in principle, data stored there is subject to whichever laws and surveillance operations are practiced in the country the server and /or server operator is based.
Seafile offers optional strong end-to-end encryption, however, so your data is securely encrypted before it is uploaded to the server. This means it cannot be accessed server-side by a third party, making concerns about jurisdiction rather irrelevant.
Libraries are not encrypted at rest by default but can be. This encryption is performed client-side. Data at rest is encrypted using AES 256-CBC and secured with a key file.
The key file is encrypted using a password and an AES-CBC cipher before being sent to and stored on the server. A key pair is also created from the password itself using PBKDF2 with 1000 iterations of SHA256. This encrypted password key pair is required to decrypt the encrypted key file, which is then used the decrypt your data.
If performing the encryption/decryption in the desktop or mobile apps then the password never leaves your device. When using the web (Seahub) client however, a hashed version of your password is stored server-side for one hour.
This is clearly not as secure as the password never leaving your system, but since the stored password is hashed using PBKDF2 with 1000 iterations of SHA256, it is nevertheless pretty secure. And, of course, you have control over the server, anyway.
It is worth noting that the contents of files are encrypted, but file names and directory structure are not.
Data in transit should be secured using HTTPS, although since you are self-hosting, you will need to obtain an SSL cert signed by a Certificate Authority and configure this on your server’s system for yourself.
Of course, data in encrypted folders will remain encrypted even if the transfer process is not secured.
The first line of support is a recently updated and expanded online manual. This contains a great deal of information, including detailed setup guides.
We nevertheless encountered issues which were not covered by the manual which is where the active community forums come in. An annoyance, though, is that most links in past forum threads relate to the old version of the manual and are therefore no longer useful.
Ease of use
To use Seafile you must first self-host an instance of its server software. This can be done in generic Linux and Raspberry Pi in a number of ways, but for home users (the focus of this article), it is recommended to deploy in Linux using SQLite. This is all well and good (and is quite easy), except that HTTPS deployment instructions are only available for the Nginx or Apache methods.
The manual also recommends deploying using the native Windows client, but no links are provided for this. On further investigation, this is because the Windows server software is now deprecated and will not be supported in the future, although if you hunt hard enough it is still available.
Comprehensive setup instructions are provided for all supported platforms, although it has to be said that no matter which platform you choose this is really a job for more experienced computer technicians and enthusiasts.
Instructions are provided in the Seafile Manual for enabling HTTPS on Linux servers using Nginx or Apache, but these assume you deployed Seafile using those platforms. If you deployed it using SQLite, Docker, or in Windows, it is far from clear whether it’s even possible to enable HTTPS.
A number of guides are available online for enabling HTTPS for Seafile Windows Server using the Microsoft IIS suite, but these are all quite a few years old.
The web interface
The web interface is the core means of accessing and managing your files, and of administering your account settings.
You can create new libraries, download files, or drag-and-drop upload to libraries.
The desktop syncing apps
You can sync any folder on your system simply by drag-and-dropping it to the client, where you can view, manage and share files.
One of the most useful features of Seafile is the ability to create virtual drives in Windows, macOS, and Linux. These behave like a regular local drive except that data stored in them is saved to your Seafile server.
An icon next to each file indicated its status: cloud-only, downloaded, or partially downloaded (for folders).
The mobile apps
The Android and iOS apps are very similar. In both apps, you can view, manage, and download files synced to your cloud server.
In Android, it is possible to upload any file on your device, although we are a little disappointed to note that it is not possible to automatically sync folders. In iOS, you are limited to uploading photos and videos.
Both apps support auto-upload of photos and videos.
In use, Seafile works very well and we welcome the fact that files synced to the cloud are not automatically synced across all connected machines. Its interface is intuitive and easy to use, and its apps are very slick. We particularly appreciate strong support for Linux, with GUI versions of both the Sync and SeaDrive software.
We are a little disappointed, however, that you can’t automatically sync folders from Android devices (a feature we know iOS would never support anyway).
We understand why people like the fact that Seafile avoids mission creep, but we do miss calendar and contact syncing. We know this can be achieved using other software alongside Seafile, but this requires additional server-level deployment.
Which brings us to the big hurdle with Seafile – deployment. Unlike with Nextcloud, there are no hosted options available for the casual user. Seafile is a self-hosted cloud storage solution, only. Which means that a fair amount of technical knowledge is required to set it all up. Especially if you want to secure the connection with HTTPS.
If you have the know-how, then Seafile is an elegant, free, and secure cloud hosting solution (assuming you deploy HTTPS and use e2e encryption. Otherwise, there will likely be a better cloud service out there for you.