Syncthing is an open source Bittorrent Sync alternative
If you use more than one computer, be it multiple desktop PCs, mobile devices, laptops, or remote servers, you are probably using some form of synchronization to transfer data between devices.
As far as options go, there are quite a few that you can make use of for that. From built-in synchronization features of programs such as Firefox or Chrome to folder-based sync clients like Dropbox, Google Drive or OneDrive.
All have in common that you rely on third-parties to store your data on the Internet. Depending on the service, you may overcome privacy issues by using encryption, but it is not always an option. There is for instance no option to encrypt your browsing data before it gets synchronized to the cloud and from there to your other devices.
If you want to be on the safe side of things, you can also move files manually only. But that requires quite some shuffling around of data on a regular basis.
A fourth option are clients that do not store in the cloud, but synchronize only. Bittorrent Sync is probably the most popular client in this regard, but there are others.
While I enjoyed using Bittorrent Sync, it is closed source after all which is a critical issue to some.
Syncthing is a relatively new open source alternative to that. The application, available for Windows, Linux and Mac systems is in its early stage of development which you will notice when you start using it.
Syncthing uses encryption (using TLS and perfect forward secrecy) for all communication. Each node is identified by certificates, and only nodes permitted to connect can connect to the cluster of nodes.
If you are interested in detailed information, visit the protocol readme on the project website.
Below is a set up guide for Syncthing (v.0.8.5) that provides you with information on how to set it up on Windows systems.
Setting it up
- Download the latest version of the synchronization software from the official project website.
- For Windows, a 32-bit and 64-bit version are provided.
- Extract the contents of the version to your local system after download, it has a size of less than three Megabytes.
- Run syncthing.exe afterwards.
- A command window opens up which creates several directories and files on your system.
- In the end, the admin panel is opened in the default browser. You can access it here at any time: http://localhost:8080/
The default synchronization directory is c:\users\username\Sync, the user configuration directory C:\Users\username\AppData\Roaming\Syncthing
Configuring the service
You can configure the service using the web admin console. The three key options that you have here are the following:
- Add repositories (directories) to the client.
- Add nodes (other devices) to the sync process.
- Configure settings.
Adding repositories
A click on Add Repositories starts the process. You have four options on the page of which two are mandatory. You need to pick a unique ID for the repository, e.g. pictures or documents, and select the repository path (folder path).
Here you can also pick the nodes that you want to share the repository with, and make it a master repository. If you do, changes made to the repository on the computer will be synced to all other nodes, but changes made on other devices won't be synced back.
Adding Nodes
You need to add at least one node as it does not really make sense to use a synchronization client if you do not have devices to sync the data with.
A click on add node starts the process.
This process requires you to have the node ID of the other system at hand, as you need to add it to the configuration. Besides that, you can also add an identifier for that node, and decide whether you want IP addresses to be dynamic, which means auto-discovery, or static by adding addresses in the form ip:port to the addresses listing.
Settings
The settings provide you with quite a few preferences. Here you can change sync protocol listen addresses, limit the outgoing rate, disable UPnP, add an authorized user account to the web admin interface, and change GUI listen addresses as well.
Closing Words
If you do not want your data to be hosted by a third-party in the cloud, and don't like Bittorrent Sync because it is closed source, then Syncthing may be an alternative.
You can set it up on desktop machines or web servers on the Internet if you want to use a server that makes the data available 24/7.
It supports block-level synchronization, which means that if you sync encrypted TrueCrypt containers, only the modified bits and not the full container will be synchronized by the service.
I’ve been running syncthing on my AWS server to sync database backups with the machine in my office and also my laptop. It was easy to setup and has been running with no issues for 2 weeks now.
The only thing that’s stopped me using BTSync is that it doesn’t run easily/reliably as a service on Windows. It would be great if Syncthing did.
@PK. I have used btsync for about as long as it has been available. When you sync documents you set it up sync on the source machine with the data that you want, and use the string that you are given to set up other computers. I would not advise syncing “my documents” at work to your “my documents” at home.
I create folders like “work stuff” in my user folder and sync my work documents there.
I am interested in trying syncthing once it matures a bit.
I have been looking for a way to be able to work seamlessly on the road by having my desktop machine fully synchronized with my notebook. Do I need to manually make folders match before implementing this or BT Sync? I worry that if I sync the Docs folder to the Docs folder, the folder will be entirely overwritten instead of both folders having their files two-way synced. Can’t find anything online so far that addresses this.
Good to know! I looks like a good alternative in the future :D
I’ve been watching the Syncthing project with great interest for the last couple of months. I like the idea of an alternative to BTSync – and even more so if the code can be openly peer reviewed. Seems to be actively developed, with approx. 1 update each week. As soon as there is a robust mobile app to connect an Android device as a sync node, COUNT ME IN!
There already is Android app in Google Play. However recently I am having many issues, mostly nodes finding each other, even when both connected to the tracker – not syncing. Android devices many times not available… (also tracker connection problem… ) I must hold on with BT and wait for Syncthing to improve a bit. I am checking weekly.