Synchronizing data : Dropbox-like based on open-source stack
I had to find a solution for my backup/cloud drive needs lately. Dropbox works just fine, but the pricing is going high to fast as you want more space.
A 1To / 100Mbs dedicated server is not that expensive and provides the nice perspective of more server/web oriented hacks later on.
After trying a few open source projects in this regard (Syncany, Csync or SparkleShare) and keeping away from the desire of building my own, here is my short list :
Sparkleshare is very nice for things which I want to keep versions of. I really like the fact that it's keeping everything in a git repository, any file manager providing git integration will then allow me to dig through the history of files. As I'm not interested in the fact that it works on multiple platforms (linux, mac and soon windows) I still have to check if a script launching automatic git add . && git commit && git push is not going to be as reliable as SparkleShare while being lighter.
For non versioned directories, inotifywait + csync are just fine. (incron, a cron-like tool but using filesystem events as an input did work but is not supporting recursive watching)
I also considered Syncany but did not liked the fact that server side chunks of data are used which have no standard way of being accessed beside Syncany. I quickly had the feeling that git would do just fine in this regard, especially with a few git gc --aggressive from time to time.
I'm pretty sure using the new Java 7 filesystem notifications + jgit one could very quickly build an highly efficient and multi-platform solution. I managed to refrain myself trying it, but if you do or know someone who did, please let me know ;) edit : Mikael did start such a thing on github
We'll see in a few month if I'm still happy with this solutions. Feel free to add a comment if you have other options !
Auteur d'origine: Cédric Brun