Skip the Cloud and Sync Your Files Directly
Syncthing is a free, open-source tool that syncs files between devices over a direct peer-to-peer connection – no cloud account, no subscription, no third-party server ever touching your data. If you have ever wanted Dropbox-style sync without handing your files to anyone, this is the cleanest way to do it.

Installing and Launching Syncthing
Syncthing runs on Linux, Windows, macOS, and Android, which means you can build a sync network across almost any combination of devices you own. On most Linux distributions, installation is straightforward. Debian and Ubuntu users can add the official Syncthing repository, run sudo apt install syncthing, and have it running in under five minutes. On Windows and macOS, the project offers downloadable binaries directly from syncthing.net – download, extract, and run the executable to get started. Android users can grab it from F-Droid or the Play Store.
Once launched, Syncthing starts a local web interface accessible at http://127.0.0.1:8384 in your browser. This dashboard is where everything happens – adding devices, creating shared folders, monitoring transfer status, and adjusting settings. You do not need to install a separate app with a separate login; the interface is just a local web page served by the Syncthing process running on your machine. It looks minimal but covers everything you need.
To keep Syncthing running automatically, you should configure it as a system service. On Linux with systemd, run systemctl enable syncthing@yourusername.service and systemctl start syncthing@yourusername.service. On Windows, the SyncTrayzor wrapper application is a popular choice – it adds a system tray icon and handles autostart cleanly. This step matters more than it might seem; Syncthing only syncs while it is running on both ends of the connection, so having it start at boot prevents you from discovering that a folder has been out of date for three days because you forgot to open it.
One thing to understand early: Syncthing identifies each device by a unique Device ID, which is a long alphanumeric string generated locally. No account, no email, no registration. When you want two devices to sync with each other, you exchange Device IDs and each side approves the connection. This is the core of how Syncthing maintains privacy – there is no central authority that knows which devices belong to you or what they are syncing.

Connecting Devices and Sharing Folders
To link two devices, open the Syncthing web UI on the first machine and click Add Remote Device in the bottom right corner. Paste in the Device ID from the second machine – you can find it under Actions > Show ID on that device. Give the remote device a recognizable name, then save. On the second device, Syncthing will display a notification asking if you want to accept the incoming connection request. Confirm it, and the two devices are now paired. They will show up as connected in each other’s dashboards when both are online and reachable.
Sharing a folder is a separate step. In the web UI, click Add Folder, choose a local path on your machine, give the folder a label, and under the Sharing tab select which remote devices should receive it. Save the configuration. On the receiving device, a notification will appear asking you to accept the new shared folder and choose where to store it locally. Once accepted on both sides, Syncthing immediately begins indexing and syncing the contents. The initial sync of a large folder can take a while depending on file count and size, but progress is visible in the dashboard.
Folder types are worth paying attention to. By default, a folder is set to Send and Receive, meaning changes made on either device propagate to the other. You can also set a folder to Send Only, which pushes changes out but ignores any modifications made on remote devices – useful for a source-of-truth machine like a desktop that should always win. Receive Only does the opposite, making a device act as a passive recipient that never pushes local changes back. These modes are useful when you want controlled sync rather than full two-way behavior, for example backing up a phone’s camera folder to a home server without the server being able to accidentally modify photos.
Syncthing handles conflict resolution by keeping both versions of a file when two devices edit it simultaneously. The file that loses the conflict gets renamed with a .sync-conflict suffix and is left in the folder for you to sort out manually. This is not elegant, but it is honest – you never silently lose data. For most personal use cases where one device does most of the editing, conflicts are rare. If you are syncing across many machines where edits could collide frequently, setting clear folder ownership with Send Only and Receive Only modes reduces the problem considerably.
Network discovery is mostly automatic. Syncthing uses a combination of local network discovery and global relay servers to help devices find each other, even across different networks. If both devices are on the same Wi-Fi network, they typically connect directly without any configuration. When devices are on different networks – like syncing a laptop at work with a home server – Syncthing attempts a direct connection through your router using UPnP or NAT traversal. If that fails, it falls back to relay servers run by the community, which pass traffic without being able to read it. For more reliable connections across networks, you can configure a static IP or point devices at each other manually under the remote device settings. If you are running Syncthing on a home server alongside other self-hosted tools, it is worth making sure your disk health monitoring is solid – check out Set Up Scrutiny for Self-Hosted Hard Drive Health Monitoring if that is something you have not addressed yet.
Ignoring Files and Keeping Sync Clean

Syncthing supports ignore patterns through a .stignore file placed in the root of any synced folder. The syntax is similar to .gitignore – you can exclude file extensions, specific filenames, or entire subdirectories. Common entries include *.tmp, .DS_Store, Thumbs.db, and application cache folders that have no business crossing devices. Adding these patterns before the initial sync is much easier than dealing with thousands of already-synced junk files later.
Versioning is an underused feature that quietly makes Syncthing safer to rely on. Under the folder settings, the File Versioning tab lets you keep old versions of files when they are modified or deleted. The Trash Can option holds deleted files for a set number of days, while Simple Versioning keeps a defined number of past versions per file. Staggered Versioning keeps versions at increasing intervals – hourly backups for a day, daily for a month, weekly beyond that – which is useful if you are syncing working documents and want a fallback without managing a full backup system separately. None of this replaces a real backup, but it does mean a bad edit or accidental delete does not immediately become a permanent problem.





