For several years, I have been searching for an efficient way of having files in sync between the computers I use. Originally, I was just searching for a way to have a synchronized music library on all my computers and phone. Afterwards, I wanted to have my Documents folder in sync between my laptop and desktop, so that I could work on both machines without having version issues. Syncthing is a powerful open-source continuous file synchronization program that is able to accomplish exactly what I wanted.
Syncthing is a program that can be downloaded on Windows, macOS, Android, and many Linux distributions. This program is open-source, so there are no worries of companies looking at your data. It stores a copy of all of the files you want synced on each of your devices, so you are able to access everything locally from any machine. This also serves as a method to backup files to a storage server over the internet quite well.
The only drawback that may deter some individuals from trying out this free program is that it is not very user-friendly. I am relatively competent in using computers, yet I still had some confusion navigating the user interface for syncthing. There are probably many settings you may need to research on the internet or in their documentation. I imagine individuals who are not very computer-literate will have difficulty using this program. The program seems like it was probably created with sys-admins in mind due to its extensive support of Linux and advanced command line interface. This isn’t much of a problem even if you’re using Windows or macOS since there are also extremely useful open-source integrations that allow the program to run in the Windows tray with SyncTrayzor for example. The documentation is all there for all of this software, but many people do not know how to read technical documentation.
Setting up Syncthing on Windows
If you are using Windows, I highly suggest using SyncTrayzor mentioned earlier. If you are just installing it for your own computer, you can download the installer here: https://github.com/canton7/SyncTrayzor/releases. You should check with their installation instructions before running the installer. When I installed it also required a specific version of .NET, which may change in the future.
You can also just get the version of syncthing that runs from command prompt if you prefer here. SyncTrayzor comes with this, so I would only recommend this option for people running a Windows server rather than as a desktop.
Example use cases
Here, I will list the use cases that I will be using syncthing for. There is massive potential for this program for anything related to transferring files between machines. The in-depth guide for setting up a shared folder is covered in the “Synchronized music library” section as an example.
General setup procedure
- Open WebUI on first machine
- Click “Add Remote Device”
- Fill out the field labelled Device ID with the ID found by clicking “Actions” > “Show ID”
- (optional) If you are setting up multiple machines, go to “Sharing” and check “Introducer” to let add the remote devices automatically when sharing a folder.
- Repeat on the other machines
- Click “Add Folder”
- Make sure the shared folder on all machines have the same Folder ID
- Select the path to the folder if it already exists
- Click the “Sharing” tab and check the devices you want to share the folder with
Synchronized music library
I listen to a lot of music on the go, so I try to download everything I listen to in order to save mobile data. I used to use music streaming services like Spotify, but I would run out of my 1GB of mobile data within a week. After I started paying for a subscription though, I realized it was much better to just download the playlists from Spotify with their built-in download feature. After a few months, I decided to stop using Spotify due to their (in my opinion) overpriced subscription costing almost as much as my cell phone plan. I prefer listening to songs that I like and the discovery features on Spotify and similar services are not very useful to me. Paying $180 a year just for the right to have music on your phone seems a bit crazy for me, so I decided to just buy high-bitrate songs I like permanently for around $1-2 a song or sometimes even for free. This way, I am able to listen to high-quality audio with no data usage without a monthly fee.
Adding machines to the network/group
Open syncthing’s web UI and click “Add Remote Device”. Now find the device ID of your first machine and type or scan it. Next, go back to your first machine and add the second machine the same way.
If you have multiple machines that you want to have connected as a network to the same folder, you can go to the “Sharing” tab and check “Introducer”. What this does is when a machine gains access to the shared folder, all of the other machines that the folder is shared with will be added to the “Remote Devices” list. This just lets you skip the “add device” step for new machines.
Starting with the files on only one computer
This section assumes you only have the files you want to share on one machine and want to share it with the second. Setting this up with syncthing is very easy. Once you have syncthing downloaded on your first machine, you will want to go to the web UI and click “Add folder” and point it to your directory with your music files.
Next, make sure syncthing is done indexing your shared folder by checking the size and number of files under “Local State”. Once it’s done indexing/scanning your files, you can click Edit > Sharing and select the device you want to share your folder with. After that, you should receive a request on your second machine to receive the shared folder. You can choose where to put the folder, just make sure the “Folder ID” doesn’t change.
Starting with two machines that have the same files
If you already have the same files on both machines, you can save a lot of time waiting for the files to transfer over the internet. All you have to do in this case is click “Add Folder” and specify the path to the folder. If you are on Windows, use “\” (backslash), and if you are on macOS or Linux, use “/” (forward slash) to separate directories in the path you provide. On Windows, you can just copy this from the address bar in File Explorer. Copy the “Folder ID” to somewhere the second machine can access it.
Next, you go on your second machine and click “Add Folder” and specify the path just like with the first machine. Paste the Folder ID from earlier into that field and save.
If the two versions of the files on the two machines are not 100% identical, syncthing will replace the older version with a newer version based on the file’s date last modified. Pick either of the machines and go to Edit > Sharing and add the other machine to the shared folder. Since the folders on both machines have the same Folder ID, the new machine should not have to download too much. There may be some downloading even if you have basically the same files where some metadata (date last opened, date last modified, etc.) might have changed.
And you’re done! Now whenever you add a song to your music library or if you rate a song on one machine, your changes will be reflected on all of your machines.
If you have a folder of documents that you often need to take with you on the go, you may want to use a shared folder between a laptop and desktop. I am currently a student, so I have a directory of school assignments that I work on regularly using my laptop in public and with my desktop at home. With syncthing, I can start writing an essay at the library using my laptop and finish it when I get home on my desktop. Since syncthing syncs files securely over the internet, my laptop and desktop can be using totally different local networks and still synchronize files. When I make a change on my laptop, the change is sent to my desktop to update immediately.
You can do this just like the synchronized music library, so please read my guide in that section.
One of the most obvious uses for this kind of software is to use as a backup server. In the case your main computer has a drive failure or something that causes a data loss, you won’t have to worry too much since you will have the same files stored on your backup server. Don’t let the word ‘server’ scare you. This can be something as simple as an old laptop, a cheap Raspberry Pi, or even an old Android phone.
To do this, you just want to find a machine to use as your backup server that has enough storage to store all of your files. You will want to set up a shared folder between the backup server and your main machine. When adding the folder on your backup server, be sure to go to “Advanced” and change the “Folder Type” from “Send and Receive” to “Receive Only”. This will make it so that if anything gets changed on the backup server, no changes will be made on your main machine.
It is usually a good idea to have a backup of your important files away from your home or work. In case there is a natural disaster, for example, you could have 4 copies of the files saved on 4 different computers, but if they are all physically in your house then they will all be lost. People usually might use a cloud service for this since there is little to no chance of losing data stored on Google Drive for example since they keep the data on several of their own servers as well. However, if you have more than the 15GB of free storage for Google Drive, you may not want to pay for their subscription service.
If you have an old computer, it would serve as a great option that you can just keep at a trusted friend or a family member’s home to keep as a backup if they allow it.
To set this up, you want to set up the shared folder between your main machine and the backup machine. When setting up the shared folder on the backup machine, go to “Advanced” and change the “Folder Type” from “Send and Receive” to “Receive Only”. This makes it so that the files on your main computer can’t be changed by changes on the backup computer.
This does mean, however, that whoever physically has your backup machine also might be able to get access to these files. There are methods to work around this, but I will not cover them here.