It's important to know that in the context of WikiSuite, we already have two Software Components that manage files
- ClearOS Flexshare, which provides s standard file server, with three interfaces (1- Web (HTTP/HTTPS), 2- FTP (FTP/FTPS) 3- File Shares (Samba)
- However it had the weaknesses of standard files and folders (no meta data, file needs to be in only one folder, or it's duplicated, hard to segment permissions, etc.
- Tiki File Galleries, which provide virtual folders and sub-folders which are web accessible. This abstraction layer permits multiple features: search within files, permissions, archives (previous versions of a file can still be accessed), check-in / check-out / lock, etc.
- However, it has the weakness that the only reliable interface is the web interface, which forces to download files, edit them locally, and re-upload. WebDAV support is meant to solve this, but it's not been the most reliable. The main Free / Libre / Open Source library in PHP is
Syncthing's P2P design is awesome.
- P2P by default, so same software on all nodes. Central server is just a convention.
- This is much less work that having different code bases to manage
- Syncthing is written in Go, which has fantastic performance (which is important when you have a lot of files)
- Default interface is a Bootstrap admin panel, and clients can make alternate interfaces such as Syncthing-GTK for better integration with operating system.
- https://github.com/syncthing/syncthing/blob/master/GOALS.md
Why not ownCloud / Nextcloud
- This would have been easier since there was already an app for ClearOS but
- WebDAV is not an ideal protocol. Tiki has tried to use for it for years, but not so great results (performance, reliability, etc)
- The server and clients are different code bases, which is bigger long term workload.
- Can't do P2P sync. Everything needs to go via central server.
Why not Seafile
- Seafile is an interesting project but
- The server and clients are different code bases, which is bigger long term workload.
- Can't do P2P sync. Everything needs to go via central server.
Why not Pydio
- Pydio is an interesting project but
- The server and clients are different code bases, which is bigger long term workload.
- Can't do P2P sync. Everything needs to go via central server.
Why not SparkleShare
- SparkleShare is an interesting project but
- It's based on Git whereas Syncthing uses the Block Exchange Protocol which is more suited for this use case
- Can't do P2P sync. Everything needs to go via central server.
Why not LinShare
- LinShare is an interesting project but it is for file sharing and not file sync. File sharing is covered by Tiki file galleries
See also