Sync Without the Cloud
Syncthing is free, open-source software that syncs files between devices directly – no third-party server holding your data, no subscription fee, no storage cap. It works by connecting devices over your local network or the internet using a distributed relay system, and everything transferred between your machines is end-to-end encrypted. The project has been maintained and actively developed since 2013, and it runs on Windows, macOS, Linux, Android, and even some NAS devices out of the box.
The appeal is straightforward: you own the process entirely. There is no Dropbox seeing your files, no Google Drive scanning documents, no iCloud account to sign into. If you are already running self-hosted services like Bitwarden for password management, Syncthing fits naturally into that same philosophy. This guide walks through installing Syncthing on two devices and getting a folder syncing between them from scratch.

Installation on Each Device
Start by installing Syncthing on both machines you want to sync. On Windows, download the installer from syncthing.net or install it via Winget by running winget install Syncthing.Syncthing in a terminal. On macOS, Homebrew users can run brew install syncthing, or download the binary directly. On Linux, most major distributions carry Syncthing in their package repositories – on Debian or Ubuntu, run sudo apt install syncthing and it is ready to launch. Android users install it from the Google Play Store as “Syncthing.”
After installing, launch Syncthing on both devices. On desktop systems it opens a web-based interface at http://127.0.0.1:8384 in your browser. The first launch generates a unique device ID – a long alphanumeric string that identifies your machine on the network. You do not need to create an account or enter any credentials. Each device is its own node, and device IDs are how Syncthing nodes recognize each other.
Connecting Two Devices
Open the Syncthing web UI on your first device and click Add Remote Device in the bottom right of the interface. You will be prompted to enter the device ID of the second machine. Find that ID by opening the Syncthing UI on the second device and clicking Actions in the top right, then selecting Show ID. Copy it exactly and paste it into the first device’s dialog. Give the remote device a recognizable name – something like “Laptop” or “NAS” – and click Save.
On the second device, a notification will appear almost immediately asking if you want to add the first machine as a remote device. Accept it. Both devices now know about each other and will show the connection status in the UI. If both machines are on the same local network, they will typically discover each other automatically through local discovery and connect without any additional configuration. Connection over the internet works too, routed through Syncthing’s global relay infrastructure when direct connections are not possible.
Once the devices are paired and showing as Connected, you are ready to share folders. The green “Connected” label in the UI confirms the two nodes are communicating. If you see “Disconnected” after a few minutes, double-check that the device ID was entered without extra spaces, and confirm that neither machine has a firewall blocking port 22000, which Syncthing uses for sync traffic.
Syncthing supports a concept called Introducer mode, where a trusted device can automatically introduce new devices to others in your network. This is useful when managing several machines, but for a two-device setup you can skip it entirely.

Setting Up a Shared Folder
In the Syncthing UI on your first device, click Add Folder. Give it a label (this is just for display purposes), and set the Folder Path to a directory on your local disk you want to sync – for example, /home/yourname/Documents/Shared or C:\Users\yourname\SyncFolder. The folder does not need to exist yet; Syncthing will create it. Under the Sharing tab in that dialog, check the box next to the remote device you just added, then click Save.
The second device will receive a prompt asking whether to accept the shared folder and where to store it locally. Accept the request and choose a local path on that machine. Syncthing will begin indexing the folder on both sides and transfer any files that differ between them. For large folders, the initial index can take a few minutes before the first sync pass begins.
Sync Modes and Conflict Handling
Each shared folder can be configured with a sync type. The default is Send & Receive, meaning changes on either device propagate to the other. You can also set a folder to Send Only, which makes one device the authority and prevents changes on the receiving end from syncing back. This is useful for one-directional backups, such as pushing files from a workstation to a NAS without risk of the NAS accidentally overwriting your primary copies.
When the same file is modified on two devices before they have had a chance to sync, Syncthing handles the conflict by keeping both versions. The conflicting copy is renamed with a suffix containing the device name and a timestamp, so you can see both versions and decide which to keep. This is more transparent than many cloud sync tools, which silently overwrite one version or create confusing duplicate names.
Advanced users can also configure Ignore Patterns per folder – a text-based list of file patterns Syncthing should skip. This is handy for excluding things like .DS_Store files on macOS, temporary editor files, or large build output directories that do not need to travel between machines. Patterns follow a gitignore-style syntax and can be edited directly in the folder settings UI.





