Build Your Own Real-Time Filesharing and Automatic Backup System

A few months ago, Heidi and I bought a desktop computer. We each have working laptops, and while my trusty old Surface Pro 2 shows no sign of slowing down, I’m doing more with 4K video these days and needed something with a little more power. As fast as today’s laptops are, yesterday’s desktop computers offer considerably more bang for your buck, especially with the ability to cheaply add more RAM, more screens, more hard drives, and more GPUs, which are pretty useful for video production.

Since Heidi and I were going to share this machine, I wanted a way to put all of our laptop files on it, so each of us would have all of our work available, regardless of which computer we were using. The tricky part is keeping all of those files up-to-date, so that any change that Heidi makes to a spreadsheet on her laptop get synchronized to the copy of that spreadsheet sitting on the desktop computer. The easy way to do this is simply to store all the files on the desktop and let the laptop just open them over the network, but then she wouldn’t see any of her files if the desktop computer was off or she wasn’t connected to the network.

Today, most people solve this problem by storing files on Google Drive or Dropbox, or some other file sharing service in The Cloud. In addition to keeping files synchronized between as many computers as you like, it also lets users see those files from any web browser. This is handy, but there are several downsides. Dropbox is not secure, only as fast as your internet connection, and, if you’ve got hundreds of gigabytes of video files for each project, kind of expensive. Even for smaller files, it’s remarkably inefficient. From here in Tennessee, my data usually has to hop through more than a dozen servers just to get to Dropbox in San Francisco. I’d rather not send a sensitive document all the way across the country and then back, especially when I’m just moving it to a laptop sitting five feet away.

The best solution I have found is FreeFileSync. It is, as the name suggests, free, and it’s also open source, and operates without ever needing to connect to the internet. Its main downside is a lack of comprehensive documentation for what I wanted to use it for, so it took me a bit of experimenting to get it set up, and that’s why I’m writing these instructions now. If you want real-time file-syncing between more than two computers, read on.

Continue Reading