Why Syncthing Beats Cloud Storage for Privacy-Conscious Users
Cloud storage services are convenient until you start thinking about what happens to your files once they leave your device. Every major provider scans, indexes, and in some cases trains AI models on user data. Syncthing takes a fundamentally different approach: it syncs files directly between your own devices, with no third-party server ever touching your data. There are no subscriptions, no storage caps, and no company privacy policy to read through carefully and then ignore anyway.
Setting up Syncthing does require a bit more effort than installing Dropbox, but the payoff is a file sync system you fully control. It works across Windows, macOS, Linux, Android, and even headless servers. Whether you are syncing documents between a laptop and a home server, or keeping project files in sync across multiple workstations, the setup process follows the same core logic. This guide walks through installation, initial configuration, and connecting devices so you can get a working sync environment running in under an hour.

Installing Syncthing on Your Primary Machine
The fastest way to get Syncthing running on most systems is through the official packages available at syncthing.net. On Linux, the Syncthing project maintains its own APT repository, so you can install via your package manager and get automatic updates. On Windows and macOS, the standard installer handles everything. After installation, Syncthing runs as a background process and exposes a local web interface at http://127.0.0.1:8384, which is where all configuration happens. There is no separate app to manage – the browser UI is the control panel.
On Linux servers without a desktop environment, you will want to run Syncthing as a systemd service so it starts automatically on boot. The command sudo systemctl enable syncthing@yourusername followed by sudo systemctl start syncthing@yourusername handles that. Once the service is running, you can access the web interface remotely by SSH-tunneling to port 8384, or by temporarily binding it to a non-localhost address in the configuration. For a home server setup, binding to your local network IP and restricting access by firewall is a reasonable approach that avoids exposing the GUI to the open internet.
Navigating the Web Interface and Adding Folders
The first time you open the Syncthing web interface, it will prompt you to set a GUI password. Do this immediately. Even on a local network, leaving the admin interface open without authentication is a security gap worth closing in the first minute. Once logged in, the dashboard shows two columns: devices on the right, and shared folders on the left. At first, both are empty except for the default folder Syncthing creates pointing to a directory called “Sync” in your home folder.
Adding a folder to sync is done through the “Add Folder” button on the left panel. You give the folder a label for easy identification, then specify the full path to the directory you want to sync. Syncthing does not move or copy the folder – it syncs it in place, so you can point it at an existing directory full of files. The Folder ID field is auto-generated but can be customized. This ID is how Syncthing identifies which folder on one device corresponds to which folder on another, so consistency matters when you are managing multiple sync pairs.
Within each folder’s settings, the “File Versioning” tab is worth paying attention to. Syncthing supports several versioning modes: simple (keep a fixed number of old versions), trash can (soft deletes go to a hidden folder), staggered (increasingly spaced backups over time), and external (hand off to a custom script). For most setups, trash can versioning is the safest default. It means that if you accidentally delete a file or overwrite it on one device, the previous version is preserved on the other device rather than being permanently wiped from both.
The “Ignore Patterns” option in folder settings is useful for excluding OS-generated noise like .DS_Store files on macOS or Thumbs.db on Windows. You can also exclude build directories, cache folders, or any subdirectory you do not want synced. Patterns follow a glob-style syntax, and Syncthing applies them per-folder, so you can customize exclusions independently across different sync pairs. A developer syncing a code project, for example, would typically exclude node_modules or any other dependency directory that should be rebuilt locally rather than transferred.

Connecting a Second Device
Pairing two Syncthing instances requires exchanging Device IDs. Each installation generates a unique cryptographic device ID, visible in the web interface under “Actions” then “Show ID”. It appears as a long alphanumeric string, often displayed with a QR code for mobile setups. To add a remote device, click “Add Remote Device” on the dashboard and paste in the other machine’s Device ID. Syncthing will then send a connection request, and the other device’s interface will show a prompt to accept it. Both sides must approve the pairing before any sync can happen.
Once two devices are paired, folders are not automatically shared between them. You have to explicitly share each folder with each device. Open a folder’s settings, go to the “Sharing” tab, and check the box next to the device you want to sync with. On the receiving device, a notification will appear asking whether to accept the shared folder and where to store it locally. This two-step consent model means no device can silently push files to another – both sides have to agree, which matters a lot if you are connecting devices that belong to different people or are used for different purposes.
Securing Your Setup and Managing Relay Connections
By default, Syncthing uses a network of community-operated relay servers to help devices find and communicate with each other when they are behind NAT or on different networks. This does not mean your files pass through those relays unencrypted – Syncthing uses TLS for all transfers, and relay servers only see encrypted traffic. But if you want zero reliance on any external infrastructure, you can disable relay usage entirely in “Settings” under the “Connections” tab, and instead configure direct IP addresses or use a VPN to ensure devices can always reach each other. Pairing Syncthing with a self-hosted VPN, such as a Headscale control server, gives you reliable direct connections without exposing any ports to the public internet.
The GUI also lets you set bandwidth limits per device, which is helpful if one of your sync peers is on a slower connection or a metered data plan. Limits are configured under each device’s “Edit” settings and can be set separately for upload and download. Syncthing also supports scheduled syncing through external tools on Linux – you can pause the service during working hours and resume it at night using systemd timer units, keeping sync activity from competing with active work on the same machine.
One configuration detail that catches new users off guard is the distinction between “Send Only”, “Receive Only”, and “Send and Receive” folder types. A folder set to “Send Only” will push its contents to peers but refuse to accept any changes back – useful for backup scenarios where one machine is the authoritative source. “Receive Only” does the opposite, making the folder a read-only mirror that pulls from peers but never modifies their data. The default “Send and Receive” is a true two-way sync, where any change on any connected device propagates to all others. Choosing the wrong type here can cause confusing behavior, particularly when one device shows an “Out of Sync” status despite having a healthy connection.

If you are syncing a folder that two devices are actively writing to at the same time, Syncthing handles conflicts by keeping both versions – it appends the conflicting device’s ID and a timestamp to the filename rather than silently overwriting. This means you never lose data, but you will occasionally find a file named something like document.sync-conflict-20240812-143022-DEVICEID.txt sitting next to the original. Resolving those conflicts is a manual step, and for teams or households where multiple people edit the same files frequently, that friction adds up quickly. For those cases, a dedicated collaborative editing tool is a better fit – but for personal backups, media libraries, and configuration sync across machines you personally manage, Syncthing’s conflict approach is more than good enough.
Frequently Asked Questions
Does Syncthing store my files on any external server?
No. Syncthing syncs files directly between your devices. Relay servers may assist with connectivity but never store or access your file contents.
Can Syncthing sync files between different operating systems?
Yes. Syncthing runs on Windows, macOS, Linux, and Android, and syncs across all of them without any compatibility issues.
What happens if two devices edit the same file at the same time?
Syncthing keeps both versions, renaming the conflicting file with a timestamp and device ID. You then resolve the conflict manually.





