BFTS (GitHub) is my take on file backup. I know that there are plenty of backup softwares around, but I never found what I was searching for, so I decided to create my own. I'm already using it at home, but at the moment it's still a prototype. Here's what I'm asking it:

  • don't be resource hungry, especially on the client;
  • allow me to backup on a local/usb/lan drive, but also on another computer, local or remote, running the same software;
  • allow me to synchronize directories between computers, but only after having backed them up (BFTS = backup first, then sync);
  • be cross-platform;
  • deduplicate the whole backup thing;
  • be nice with the upload bandwidth, skipping files already in the backup;
  • encrypt the backup.

And here's what I'm not asking it:

  • backup my files in realtime (although I implemented some realtime backup capabilities in Windows);
  • sync my files in real time (sync will take time, as it can happen only after both sync source and destination have been backed up correctly). Let's say that files will eventually sync.

This is by choice since I had many issues with file watching, especially in Linux. Both CrashPlan and SpiderOak failed on my PC, even after configuring inotify as required. And if I want to backup a network folder that can be modified by multiple sources, things get even more complicated. So I decided to simplify my scenario and rely on a polling crawler that turned out to be very gentle and effective.