The ability to easily and securely transfer files is important, and while I have been mostly happy with BitTorrent Sync, I am continually on the look out for better, open source alternatives. Over the past several months, I have been testing one such alternative and I want to share what I have learned.
I love the idea behind BitTorrent Sync, but it has always bothered me that it was closed source. Unlike the tightly controlled, proprietary hardware/software synergy that corporations like Apple excel at, a software-based sync solution is different, and is a more tractable problem for the open source community to address. Jakob Borg was one developer that was up to the challenge, and in December of 2013, he released Syncthing.
The general idea behind the product and how it operates is similar to BitTorrent Sync, but the software is open source and is licensed under the GPL. The project is hosted on GitHub, is being actively maintained, and has a healthy community of supporters. Syncthing has good documentation as well.
Using the software is cake, but the initial installation and configuration can be cumbersome. Once it is up and running, I have found that Syncthing is a reliable, efficient way to handle my data syncing needs.
Syncthing is available for Windows, Linux, OS X, BSD, and Solaris, but since I recommend the use of OS X and Ubuntu, I am going to focus on these platforms. First, head over to GitHub and grab the binary installation file for Syncthing.
Choosing the Correct Package
If you are on a Mac, you will need to grab the download that has macosx-amd64 in the file name. If you are using Ubuntu, you will have to make a choice between 3 options:
- linux-386: For 32-bit systems
- linux-amd64: For 64-bit systems
- linux-arm For ARM systems
You can determine your system type with the following terminal command:
If the result looks something like this, you have a 32-bit system:
Linux discworld 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:50 UTC 2011 i686 i686 i386 GNU/Linux
If the result looks something like this, you have a 64-bit system:
Linux discworld 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:50 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
Alternatively, you can click the gear in the top right corner of your screen and select About This Computer. Under OS type you will see 32-bit, 64-bit, or ARM.
First Run and Configuration
Note: You can store the syncthing binary file in a different location than I specify, but for organizational purposes and congruity with Syncthing's official documentation, I recommend utilizing the bin directory.
For OS X users, download the correct file and unpack it. Next, navigate to your Mac's Home folder (select the Finder and press Command+Shift+H) and create a new folder called bin (this is a common directory name for a location where binary files are stored).
Copy the syncthing binary file to the bin directory. Double-click the file to start the application and initiate the installation process. During this process, the Terminal application will open and provide feedback, like this:
[monitor] 15:56:58 INFO: Starting syncthing
15:56:58 INFO: Generating RSA key and certificate for syncthing...
[ANSMX] 15:57:05 INFO: syncthing v0.10.14 (go1.4 darwin-amd64 default) jb@syno...
[ANSMX] 15:57:05 INFO: My ID: ANSMXYD-E6CF3JC-TCVPYGF-GXJPHSJ-MKUXBUQ-ZSPOKXH-...
[ANSMX] 15:57:05 INFO: No config file; starting with empty defaults
[ANSMX] 15:57:05 INFO: Edit gs1/config.xml to taste or use the GUI
[ANSMX] 15:57:05 INFO: Starting web GUI on http://127.0.0.1:8080/
[ANSMX] 15:57:05 INFO: Loading HTTPS certificate: open gs1/https-cert.pem: no ...
[ANSMX] 15:57:05 INFO: Creating new HTTPS certificate
[ANSMX] 15:57:05 INFO: Generating RSA key and certificate for syno...
[ANSMX] 15:57:07 INFO: Starting UPnP discovery...
[ANSMX] 15:57:13 INFO: UPnP discovery complete (found 0 devices).
[ANSMX] 15:57:13 INFO: Starting local discovery announcements
[ANSMX] 15:57:13 INFO: Local discovery over IPv4 unavailable
[ANSMX] 15:57:13 INFO: Starting global discovery announcements
[ANSMX] 15:57:13 OK: Ready to synchronize default (read-write)
[ANSMX] 15:57:13 INFO: Device ANSMXYD-E6CF3JC-TCVPYGF-GXJPHSJ-MKUXBUQ-ZSPOKXH-...
[ANSMX] 15:57:13 INFO: Completed initial scan (rw) of folder default
For Ubuntu users, download the file, un-pack it, and store the syncthing binary file in a bin folder in your user directory, just like on the Mac.
Then, right-click the syncthing file and select Properties > Permissions. Make sure that the Execute: box is checked off. Finally, right-click the file, once again, and select Run.
The application's interface will open in your system's web browser. This interface is the main way that you will interact with the application.
If you are part geek, you will recognize the localhost hostname and the port for TCP/UDP. If you have no idea what I just said, do not worry. Also, bookmark this address with a descriptive name so that you can always get back to it.
After installation, a new default folder is created in your user's home directory. The Sync folder is going to be your base for all of your syncing needs. This folder is analogous to the BitTorrent Sync folder I discussed in my BT Sync post.
You can sync any folder on your system with any folder on any other system, but this is where the majority of my synced content goes. Each one of my friends' and family’s computers gets its own folder in my Sync folder, which helps me keep everything nice and tidy, as I like it.