Open Rec #2: Open-source File Sync: Hi, Syncthing!

Syncthing?
![]() |
|
---|---|
Open-source? | ✅ |
Cost estimation | 🆓 |
Author | The Syncthing Foundation |
Usage Case | Cross-platform File Synchronisation |
Dependency | Functional Web Browser |
Advantages
- Functions over LAN/internet
- Supports all main-stream OS
- Free and open-source
- Large and active support community
- Graphical/Commandline interface
- Easy setup
- Lightweight
Platforms supported
Windows | Mac | Linux | Android | iOS | |
---|---|---|---|---|---|
Availability | ✅ | ✅ | ✅ | ✅ | ✅ |
Open-source | ✅ | ✅ | ✅ | ✅ | ✅ |
Price | 🆓 | 🆓 | 🆓 | 🆓 | 🆓 |
Case for Syncthing
If you have more than one device, you will move files between them.
Solutions there are plenty:
Plug it in | Email/ message yourself | xyz drive | LAN/bluetooth file sharing | Syncthing | |
---|---|---|---|---|---|
Min Price | 🆓 | 🆓 | 🆓 | 🆓 | 🆓 |
Available open-source? | ✅ | ✅ | ✅ | ✅ | ✅ |
Advantages | Simple, fast, and reliable | No code | Chimpanzee friendly options available | Easy-setup | Fast & boundaryless |
Disadvantages | Cumbersome | File duplication | Slower, limited mobile integration | Just a specialised app to email/message yourself | Mostly for single user |
No matter how much you invest in Wi-Fi, wired connections will still be much faster and more reliable. If physically plugging devices in to transfer files works for you, then it does. Close this article and call it a day.
However, if you prefer wireless connections, read on.
The simplest wireless solution is self-emailing/messaging, which works fine for occasional file transfers a few megabytes in size: a photo, a PDF with a dozen pages, and single-song recordings. However, frequent transfers or larger files via this method entail disastrous storage implications. Each email or message sent to yourself can create 4 duplicate files: the original, the copy in the sending device's email/message record, the copy in the receiving device's email/message record, and the file saved on the receiving device via 'save as'. The wastage adds up.
Network drives or cloud storage services mitigate file duplication. Instead of sending files to another device, you upload them to a server. The file can then be downloaded to another device or even accessed directly on any device.

There are now numerous commercial offers: Google Drive, OneDrive (Microsoft), Baidu Netdisk, etc. Most are freemium, offering 2 GB (Dropbox) to 25 GB (Hivenet) of free storage for free and more for a fee. If you are tech-literate and confident about your home security*, you can also self-host.
*: You are effectively turning your home into your own data centre.
The problem with network drives and cloud services is that they are not good file synchronisers.
The first concern is mobile integration. I have yet to find network drive software that actually synchronises Android directories. Onedrive, Google Drive, etc., only support manual upload to their server, which is not the same as synchronisation. To have file changes made on my phone reflected on other devices, I have to manually re-upload the file and overwrite the older version.
The second concern is speed. With an external cloud provider, synchronisation speed is limited by your internet speed and their bandwidth quota, whichever is lower. Hosting your own local server can bypass this limitation, but not the fundamental one: all network drives depend on the client-server model, which means a file must be uploaded to the network drive before being downloaded to the receiving device, which is expectedly about twice as slow as peer-to-peer (P2P) file transfer.
Talking about peer-to-peer (P2P) file transfer, there are plenty of solutions. The most famous example is AirDrop, the needlessly exclusive Apple P2P file-sharing feature. There are also free and open-source solutions, such as LocalSend by Tien Do Nam.
However, while the P2P apps mitigate the speed issue of network drives, they re-introduced the multiple file version issue. The recipient receives a copy of the original file, and whatever modification is made on the receiving device will not be reflected on the original. Most P2P apps also require devices to be connected to the same LAN (such as the same Wi-Fi network).
That is where Syncthing comes in. Syncthing is a free and open-source file synchronisation tool that combines the advantages of P2P file transfer apps and network drives and surpasses both. The data transmission is P2P and, therefore, rapid, like in P2P file transfer apps. However, unlike said apps, it works when devices are not connected to the same LAN, and no multiple file versions are created, like network drives.
Also, most importantly, unlike network drives, Synthing is fully integrated into mobile platforms running Android or iOS. It can directly access and update local file directories, which means any file changes made on mobile are almost immediately reflected on my desktop and vice-versa. For me, this is a game changer. When I am writing and in need of a hand-drawn illustration or a photo, I used to do it on my tablet or phone, upload it to my network drive, wait a couple of minutes for it to sync to my laptop, and then add the graphic to my article; With Syncthing, I can close the article on my laptop, open it on my mobile and add the graphics, close it, then reopen it on my laptop, and boom, the illustration is there. All the energy saved from the network drive hassle redirected toward creativity.
How is it possible?

When devices are connected to the same LAN, Syncthing works more or less like a P2P file transfer app but automated: the file transfer is continuous. If a shared file is modified on any synchronising device, the change is automatically sent to all devices, thanks to filesystem watchers. The watchers detect changes made to the local copy of shared files and automatically send the changed part to other devices. The other devices will incorporate the change into their own copies of the file once the integrity of the received change is verified. You can find out more in the official documentation:
When devices are not connected to the same LAN, the revolutionary global discovery servers, maintained by the Swedish non-profit Syncthing Foundation, come in. Those servers allow any two devices connected to the Internet to discover each other and establish P2P connections as if they were on the same LAN.

The global discovery servers (GDS) are like gigantic global switchboards. Devices contact the server once they start Syncthing and then periodically announce their addresses (IP and available ports), which, once verified, are saved in a central database. Paired-up devices can then query the database for each other's address and connect to each other directly to transmit data and synchronise files. The GDS does not handle any data transmission, so the data transmission, purely P2P, is much faster than the client-server-client model for synchronisation via network drives.
So, Syncthing is fast, automated, and universally available. Are there any disadvantages?
Although most users agree that Syncthing is superior to self-emailing/messaging or traditional P2P file transfer, many are quick to point out that Syncthing cannot replace network drives because it cannot be used to backup data or offer on-demand streaming (viewing files without downloading the entire file).
However, those are misconceptions. Backup can be done by adding a storage server to the list of synchronising devices, which, although more technical than a no-code freemium xyz drive, is not terribly complicated. Regarding on-demand streaming, although it is not supported by the official Syncthing apps, some forks, such as Tommy Vorst's Sushitrain, add this capability.
The true limitation of Syncthing is its lack of support for multi-user collaboration. Network drive software locks files whenever a user is editing them, preventing simultaneous edits that create conflicting versions. Some, such as Google Drive and Microsoft Onedrive, even offer synchronous collaboration, which allows multiple users to edit together and see changes reflected in real-time. Syncthing has neither of those two capabilities.
Also, when synchronising between multiple devices, Syncthing requires each two devices to be paired up for security purposes. Combinatorics tell us that this is a recipe for trouble once there are more than 3 devices.
For those reasons, although I love Syncthing, most of my files are still stored on a separate network drive. I use Syncthing just as it is intended for: rapidly sharing files between two devices, for instance, sending raw recordings from my phone to my laptop for editing.
In short, Syncthing is THE solution for sending files between devices, but cannot fully replace network drives if multi-user collaboration is desired. If you feel Syncthing, read on for setup instructions.
Setup
Always prefer package managers to standalone installers for organisation and ease of management. If you are unfamiliar with package managers, consult this guide:

Windows installation
Windows installation
With Winget package manager:
winget search syncthing
->
Nom ID Version Correspondance Source
---------------------------------------------------------------------
Syncthing Syncthing.Syncthing 1.29.2 winget
syncthingctl Martchus.syncthingctl 1.4.12 Tag: syncthing winget
Syncthing Tray Martchus.syncthingtray 1.7.2 Tag: syncthing winget
SyncTrayzor SyncTrayzor.SyncTrayzor 1.1.29.0 Tag: syncthing winget
The version numbers and headings you see will differ as updates roll out, and your system language differs from mine.
The first package, ID = Syncthing, is the official standalone application, which includes a graphical and command-line interface (GUI + CLI). The other packages are various enhancement forks based on the same open-source Syncthing core.
You can find out more about each fork:
winget show [PackageID]
Further instructions concern the official version (Syncthing.Syncthing). Other forks may differ slightly.
winget install Syncthing.Syncthing
Once installed, visit http://localhost:8384 in your browser.
If you see the Syncthing management console, also called the 'admin GUI':

Then your installation is successful. Now set up Syncthing on your other device. Once you have set up two devices, you can start syncing!
Mac installation
Install Homebrew if you have not already:

Then:
brew install syncthing
brew services start syncthing
Once the commands are executed successfully, visit http://localhost:8384 in your browser.
If you see the Syncthing management console, also called the 'admin GUI':

Then your installation is successful. Now set up Syncthing on your other device. Once you have set up two devices, you can start syncing!
Linux installation
Install Homebrew if you have not already:

Then:
brew install syncthing
syncthing
Once the commands are executed successfully, visit http://localhost:8384 in your browser.
Android installation
The official Android app was retired in October 2024.

However, forks are available.
I recommend:
The built-in setup guide with guide you through the process once you have installed the app.
iOS installation
There is no official iOS app for Syncthing. However, Tommy Vorst is developing an open-source fork called Sushitrain, which is currently in public beta.
If you are happy to pay for a proprietary UI wrap, Mobius Sync is more mature.
After installation
After installation, you must pair devices up and configure shared folders. The process is similar across devices; some forks may do it for you. I will explain the pairing up process for generic desktop device A and generic mobile device B via the standard Syncthing admin GUI.
On A, which could be running Windows, Linux, or MacOS, access http://localhost:8384.
Click on 'Identification' to see the Syncthing ID of your device:

You will see something like this:

Now on your device B, which could be running iOS or Android, open the Syncthing app you have installed and click on '+Add Remote Device':

Enter the device ID of your first device, and optionally add a nickname, then click 'Save'.

And that's it! You have successfully added A to B's sync list. Now,must you need to repeat the process to add B to A's sync list, as Syncthing require two-way authentification for security purposes.
You can repeat the process with additional devices. To invite a third device, C, in, you must pair up A & C and B & C. As previously explained, Syncthing is geared toward personal use and would not be convenient for multi-user sharing between many devices.
Once you have added all devices to each other's sync list, click 'add folder' to configure shared folders. The process is self-explanatory.


Ensure that sharing is enabled in the 'Sharing' tab after configuring the 'General'. The folder remains private until you explicitly instruct Syncthing to share it with other devices.

After you have configured the shared folder, it is time to try out your new Synchronisation superpower! Try creating a 'test.txt' file on device A. Write the line 'Hello World!' and close it. Then see if you can open the file on device B and read the line. If you can, write 'Hello yourself!' and close it.
Now open again on device A, and if you see 'Hello yourself!', then congratulations—you have successfully set up Syncthing! Now, start enjoying the full power of real-time synchronisation!
Starting Syncthing automatically on device startup (optional)
If you would like to keep the folders constantly synchronised in the background with Syncthing, you should configure Syncthing to start automatically on device startup.
On Android and iOS, the exact procedure differs between operating systems and versions. The general direction is go to 'Settings' and allow background app activity for Syncthing. You may wish to search on Google 'How to enable background activity on Android/iOS (version number)'.
On Windows, follow this tutorial.
On Mac OS:
brew services start syncthing
On Linux*:
Homebrew Linux does not come with the services
module. You must install homebrew/services
tap manually:
brew tap homebrew/services
Then
brew services start syncthing
And
sudo systemctl enable homebrew.mxcl.syncthing
*: These steps apply to:
- Ubuntu (starting from version 15.04)
- Debian (starting from version 8 "Jessie")
- Fedora (starting from version 15)
- Arch Linux
- Red Hat Enterprise Linux (RHEL) (starting from version 7)
- CentOS (starting from version 7)
- openSUSE (starting from version 12.2)
- Manjaro
For more information, see this guide.
Copyright Statement
Énoncé du droit d'auteur

Much of our content is freely available under the Creative Commons BY-NC-ND 4.0 licence, which allows free distribution and republishing of our content for non-commercial purposes, as long as Ronzz.org is appropriately credited and the content is not being modified materially to express a different meaning than it is originally intended for. It must be noted that some images on Ronzz.org are the intellectual property of third parties. Our permission to use those images may not cover your reproduction. This does not affect your statutory rights.
Nous mettons la plupart de nos contenus disponibles gratuitement sous la licence Creative Commons By-NC-ND 4.0, qui permet une distribution et une republication gratuites de notre contenu à des fins non commerciales, tant que Ronzz.org est correctement crédité et que le contenu n'est pas modifié matériellement pour exprimer un sens différent que prévu à l'origine.Il faut noter que certaines images sur Ronzz.org sont des propriétés intellectuelles de tiers. Notre autorisation d'utiliser ces images peut ne pas couvrir votre reproduction. Cela n'affecte pas vos droits statutaires.
Member discussion