How to configure Syncthing and get the most out of it

Last update: 27/05/2026

  • Syncthing allows you to synchronize folders across multiple devices without using the cloud, keeping your data under your control.
  • The setup involves securing the GUI, adding remote devices, and defining folders with appropriate synchronization modes.
  • The file versioning system is key to preventing data loss, but it must be properly adjusted to avoid filling up the disk.
  • Syncthing is a great synchronization tool, although it should always be complemented with external backups.
syncthing

There is an excellent solution for Sync folders across multiple devices without relying on the cloudYour name: SyncthingIt works on almost any modern operating system, keeps your data under your control, and, when properly configured, is so automatic you can forget it's even there.

In the following lines you will see How to install, configure, and get the most out of Syncthing step by step in different environments (GNU/Linux, Windows, Android and ZimaOS/Zimaboard), how to share directories, which advanced options to use and, very importantly, how to use the file versioning system to avoid filling up the disk or losing data due to carelessness.

What is Syncthing and how does it work internally?

 

Syncthing is a open source file synchronization tool It allows you to keep one or more folders up to date across multiple devices: desktop computers, laptops, servers, Android phones, etc. It doesn't use a central cloud server like Dropbox, but is based on a BYO (Bring Your Own) cloud model: you provide the machines where the data will be stored.

The project is licensed under the Mozilla Public License 2.0 and it is developed in Go. It uses its own Block Exchange Protocol, which allows it to send only the parts of the files that change, reducing traffic and speeding up synchronizations when modifying large files.

Each device runs a Syncthing daemon This daemon listens for incoming connections and communicates with the other nodes in the cluster. It can be controlled via a web interface (GUI accessible from a browser) or through desktop frontends, typically using GTK on GNU/Linux, which add an icon to the system tray and make it easy to see the synchronization status at a glance.

All data that travels between devices goes encrypted using end-to-end TLSEach machine is identified by a unique device ID: a long alphanumeric string that acts as a fingerprint. For two nodes to exchange data, they must mutually approve each other, adding an extra layer of security against unauthorized connections.

Syncthing is compatible with both IPv4 as with IPv6 And, in networks with NAT, you can use relays and global discovery to help two nodes find each other even if they are behind home routers. In simple local networks, local discovery is usually sufficient: devices discover each other and automatically propose to join.

configure syncthing

Syncthing's objectives and design philosophy

 

The Syncthing project is built around a series of fairly clear principles which are noticeable in its daily operation. It's not just "another file synchronizer," but rather it seeks to cover several specific objectives.

On one hand, it aims to keep you safe from data lossIt attempts to prevent destructive changes and offers options like version control to recover deleted or overwritten files. However, for this to work properly, versioning must be configured carefully, something we'll discuss later.

It has also been designed with security in mind. Syncthing should be Robust against external attackersso that no one can listen to or manipulate your files without authorization. Hence the mandatory use of TLS, the need to approve devices, and the absence of central servers with your data in the hands of third parties.

Another objective is the ease of useThe idea is that someone without in-depth networking knowledge can set up a reasonably powerful synchronization system. This is achieved through a clear web interface, automatic device detection on the LAN, and sensible default settings, minimizing unusual configurations.

Finally, the project aims to be as universal as possibleIt runs on any reasonably modern computer, even modest hardware. Binaries are available for GNU/Linux, Windows, macOS, BSD, Solaris, Docker containers, and, on the mobile side, an official Android app. All of this is without assuming the user always has the latest technology or high-end internet connections.

Installing Syncthing on GNU/Linux

In GNU/Linux, you have several ways to install Syncthing, depending on the distribution. Most current distributions include it. official or third-party packages in their repositories, and it is also possible to download pre-compiled binaries from the official website if you prefer.

In Debian-based distributions (Debian, Ubuntu, Linux Mint, MX Linux, etc.) it is usual to Add the official Syncthing repositoryImport the PGP key, update, and install. Afterward, you can enable the systemd service to start automatically with the system using the drive that is usually installed in /lib/systemd/system/[email protected], replacing "username" with your username.

In Fedora the process is simplified because Syncthing is usually already in the repositoriesUsually, a single installation command using the distro's package manager is sufficient, and if you want it to start on boot, you activate the corresponding service with systemd, just as in the previous case.

In Arch Linux and derivatives like Manjaro, the official package is found in the distribution's repositories. Additionally, it is often also offered syncthing-gtk as a graphical frontendHowever, not all distributions include it. If it's not available, you can always manage it from the web interface without any problems.

Once the necessary packages are installed, it is common to find several entries in the distribution menu: one for launch the Syncthing daemonOne command opens the GTK interface if you have it installed, and another opens the web GUI directly in a browser. In many desktop environments, starting the GTK GUI will trigger the daemon in the background if it wasn't already running.

Exclusive content - Click Here  What is the SetupDiag file and how to use it to analyze update failures

configure syncthing

Web interface and remote access to the GUI

The most standard way to manage Syncthing is through its web interface accessible in the browserBy default, it listens on 127.0.0.1:8384which means that it can only be opened from the computer on which the daemon is running.

To log in, simply open your favorite browser and visit the local address, something like http://127.0.0.1:8384/On the first load, it is highly recommended to configure a username and password for the GUI, so that if you later expose it to the network, not just anyone can access it.

The interface language is usually adjusted automatically to the regional settings of your systemSo you shouldn't have any problems with English text unless your environment is configured that way. From the main screen, you'll see the status of the local device, the synchronized folders, and the list of remote devices.

If you want to manage Syncthing from another computer on the network, you can change the GUI's listening address and set it to, for example, 0.0.0.0:8384 To allow connections from any IP address on the LAN, go to "Actions" → "Settings", "GUI" tab. Be careful not to open this without authentication, as anyone on your network could potentially modify the settings.

In SSH-managed server environments, a clean way to access the interface without exposing it is create a local port SSH tunnelYou redirect port 8384 from the server to your machine and enter http://127.0.0.1:8384 as if it were running locally. This way you don't have to modify the Syncthing settings or open additional ports.

Installation on Windows, macOS, and other systems

On systems like Windows or macOS, the fastest way is to download a Package already compiled from the official Syncthing websiteYou'll find versions for different systems (Windows, Linux, macOS, BSD, Solaris) and also ready-to-use Docker containers.

On Windows, after downloading the installer or compressed file, you extract or run it and follow the typical installation steps. The first time it starts, Syncthing automatically generates the encryption keys and an initial configuration file in the user profile, usually in paths like C:\Users\tu_usuario\AppData\Roaming\Syncthing.

By default, the program will create a shared folder called Sync to your user directoryusually something like C:\Users\tu_usuario\SyncThat will be the first synchronized folder you'll work with, although you can delete it or replace it with others when you set up your own directories.

On macOS or BSD, the process is similar: you download the appropriate binary, install it, and when you open the web GUI, the welcome screen appears. From there, you can add devices, configure folders, and adjust general settings, just like on GNU/Linux or Windows.

If you use Docker, you can deploy Syncthing as a containerThis involves mapping port 8384 and the volumes where the data will be stored. It's also crucial to correctly define the UIDs/GIDs that the container will use to ensure proper file permissions, especially when sharing volumes with the host. configure syncthing

First steps: securing the GUI and identifying the device

The first time you open the web interface, it's a good idea to pause for a minute to secure the GUIIn the "Actions" → "Settings" menu, under the "GUI" tab, you can set a username and password. Even if you only plan to use it locally, it's a basic security measure.

Each Syncthing installation comes with a Unique Device ID It's automatically generated. To view it, in the web GUI go to "Actions" → "Show ID". A long alphanumeric string will appear, along with a QR code that's perfect if you want to add the device from an Android phone without typing the string of characters.

It's advisable to have the IDs of all the devices you plan to connect on hand, especially if your network is complex or if you don't trust automatic discovery. This way, you can add devices manually without relying on them to be detected automatically.

If you are using a GTK graphical frontend in GNU/Linux, many of these steps can also be done from the program menus, even though the underlying interface is the same embedded web GUI.

Once you know your team ID, you're ready to begin. form your device cluster, adding remote nodes and configuring shared folders between them.

Add and approve remote devices

In Syncthing, a set of devices that share folders with each other is called clusterEach device needs to know and approve the others before it can exchange data, which helps maintain control over who has access to your directories.

To add a new device from a team's web interface, go to the bottom of the page and click on "Add remote device". There you will be able to manually paste the device ID from the other computer or select one that has been automatically detected on the local network.

When Syncthing detects devices on the LAN, it usually displays them with part of their ID and name, so you only need to Compare the displayed characters with the actual ID of the device you want to add. If they match, you select it and that's it, saving you from copying and pasting long codes.

In the "General" tab of that window you can set a descriptive name for the device (for example, "Laptop", "NAS Server" or "Android Mobile") and adjust connection parameters such as addresses (usually "dynamic" works well and lets Syncthing itself find the other node).

After saving, a will appear on the other device. notification requesting to approve the connectionUntil both sides accept the request, the devices won't be considered permanently paired. Once both have accepted each other, you'll see each machine listed in the "Remote Devices" section of the other devices.

Exclusive content - Click Here  Professional AI presentations using Beautiful.ai

Create and share synchronized directories

Once two or more devices are connected, it's time to choose which folders you want to syncSyncthing works at the folder level, and you can share different directories with different subsets of devices depending on your needs.

For organizational purposes, many people create a base directory in their home directory, something like ~/syncthingand within it all the subfolders you're going to share. This way you maintain some order and don't end up with Dozens of routes scattered throughout the systemwhich ends up being a headache in the medium term.

A shared folder doesn't have to have the same name or path on all computers. You could share ~/syncthing/dir1 from a computer and that in another it is saved as ~/Backup/OtherThingsFor Syncthing purposes, both directories are linked, although you will have to remember what you named them so as not to put files in the wrong place.

To add a new folder to a device, at the bottom of the folder list, click "Add Folder". On the "General" tab, you define a internal folder name (may match the folder name in the file system) and the actual path in the file system where the data will be stored.

In the "Sharing" tab you choose With which remote devices do you want to share that folder?For example, if you previously added a laptop named "Devuan," you select it there and save. The other computer will receive an invitation to accept that folder, at which point it will have to specify where it wants to save it on its own file system.

Folder synchronization modes and advanced options

During the setup of a shared folder, in addition to the path and devices, you can adjust several important details, including the synchronization typeSyncthing offers three basic modes: send and receive, send only, and receive only.

The default mode is "Send & Receive", which implies bidirectional synchronizationAny change on one device (creation, modification, or deletion of files) will be propagated to the others. This is ideal for collaborative work folders or when you want your desktop and laptop to always be identical.

If you choose "Send only", the device acts as source that only sends changesThe other devices can receive new files or modifications, but they cannot send changes back. This is useful, for example, for a mobile phone to upload photos to a computer without the risk of accidental deletion on the PC being replicated on the phone.

The "Receive only" mode does just the opposite: the device only receives updates from the rest and never sends changes to the cluster. This can be used for a machine that acts as a backup receiver, where you don't want anything that happens there to propagate to the source machines.

In the "Advanced" tab of a folder's settings you'll find other fine-tuning options: the scan interval (how often Syncthing checks the folder for changes), disk space limits, file verification rules, and parameters for how metadata such as permissions or owners are synchronized on supported systems.

From there you can also touch on aspects such as the priority order when verifying files, or combine the folder with versioning mechanisms, which we will see in more detail, to better control what happens when files are deleted or overwritten.

Ignore files, share with more devices, and basic management

Each Syncthing folder can have its own file ignored patternsIn the "Ignore Patterns" tab, within the folder settings, you can define which files or paths you don't want to be synchronized, using wildcards and expressions similar to those in a... .gitignore.

This is very useful for excluding temporary files, caches, compilation files or anything that doesn't make sense to replicate between computers. This reduces traffic, CPU usage, and disk space, both locally and on remote devices.

If at any point you decide that a folder you already share between two devices should be available on a third team added laterSimply edit the folder on the original device, go to the "Sharing" tab, and select the new device as well. Syncthing will then send it all the necessary content and keep it up to date.

From the folder's main menu, you can temporarily pause, resume, or delete synchronization using the "Remove" button. Removing the folder from one device won't automatically delete it from others, but it will stop synchronizing from that specific device.

It's a good idea to check the status of each folder in the web interface from time to time: there you'll see the synchronization progress, the amount of data transferredThe calculated hashes and, if there are problems, error messages indicating what went wrong, such as insufficient permissions or paths that no longer exist.

File versioning in Syncthing

Syncthing's file versioning system is a key feature for protect yourself from accidental deletions and overwritesHowever, if configured incorrectly, it can become a disk space black hole. Understanding how it works will save you from unpleasant surprises.

By default, when a file is modified or deleted in a synchronized folder, Syncthing simply Replicate that change on the rest of your devicesThis means that if you accidentally delete an important file on one computer, it will disappear from the rest once synchronization is complete, with no option for recovery unless you have an external backup.

When you enable File Versioning for a folder, Syncthing stops overwriting or directly deleting the original file. Instead, Move the previous version to a special directory called .stversions within the shared folder itself. This way, you maintain a version history that you can refer back to if you regret a change.

Exclusive content - Click Here  How to search bookmarks in Chrome and other browsers from Flow Launcher

The problem is that if you work with very large files (for example, videos or audio) and don't set any limits, the folder .stversions It can grow uncontrollably for months, occupying tens or hundreds of gigabytes. There are real cases of users who have seen how The versioning process consumed 160 GiB of space in a single directory because they had never cleaned up old versions.

To avoid this scenario, Syncthing offers several versioning modes with different cleanup criteria: no versions, trash, single version, staggered, and external. Each has its own specific use case, and one or another will be more suitable depending on how you use the folder.

Available versioning modes and which one to choose

If you don't want any kind of history, you can leave the folder in mode "No Versioning"In that case, a deletion is a deletion, and an overwrite is permanent, at least as far as Syncthing is concerned. It's the simplest method, but also the riskiest if something goes wrong with one of the devices.

With "Trash Can" mode, every time a file is deleted or replaced, Syncthing moves it to the .stversions folder without ever deleting it automaticallyIt's useful when you have plenty of disk space and want to save the entire history just in case, but be aware that you'll have to manually clean it up from time to time.

"Simple Versioning" allows you to define basic retention rulesYou can specify how many days you want to keep older versions or the maximum number of versions per file allowed. You also adjust the interval at which Syncthing checks whether to delete versions that no longer meet those criteria.

Staggered versioning is more sophisticated. Syncthing stores versions based on their age, with a policy similar to some backup systems: it maintains very frequent versions at the beginning and it spaces them out over time. For example, during the first hour it saves a version every 30 seconds, during the first day one per hour, during the first 30 days one per day, and, up to the maximum age, one per week.

Finally, the "External" mode allows you to delegate version management to a external script that you write yourselfEach time a file needs to be versioned, Syncthing calls your command with the original path and the path where the version has been placed. This option is useful if you want to integrate Syncthing with your own backup systems, cold archiving, advanced compression, or any other custom logic.

Practical uses of Syncthing in everyday life

Syncthing has been running stably for years in many home and professional environments, and real-world use cases give a good idea of how far can it be taken advantage of without the need for commercial clouds?Let's look at some typical scenarios.

A very common use is to maintain a shared directory between the desktop computer and the laptop For video, audio, or other demanding projects. You copy the raw files to a shared folder, process them wherever you need (sometimes on your laptop, sometimes on your desktop), and let Syncthing handle the changes without you having to worry about USB drives or external hard drives.

Another common scenario is having a folder synchronized across all your devices with key documents: for example, the your KeePass password manager databasetemplates, configurations, or small scripts that you want available on any machine without depending on services like Dropbox, Google Drive, or Mega.

On Android phones, Syncthing is widely used for synchronization the camera photos with a PC or your own serverYou configure the camera folder on your mobile phone in "Send only" mode and a directory on your computer in "Receive only" mode, so that everything you photograph is automatically copied to your main machine, but no error on the PC causes deletions on the phone.

Finally, some have completely replaced their workflows with the cloud: before they uploaded content to proprietary services and now They directly replicate files between their computers. using Syncthing, thus maintaining control over where your data is stored and how it is transmitted.

Safety recommendations and information on using it as a backup

Although Syncthing is a robust and secure synchronization tool, it's important to be aware that It is not a backup system in the strict sense.Its job is to replicate the state of folders across multiple computers; if something is deleted or corrupted, it is very likely that this change will spread to all nodes.

If you want to use it more for backup purposes, you can set up schemes where the directories on the source machines are in "Send Only" mode and on a central server in "Receive Only" mode. This reduces the risk of a deletion on the server propagating to the clients, but still It does not protect you from errors originating in the user's own equipment..

The key is that, for your really important files, you must keep Syncthing standalone backupsWhether on a disconnected external drive, another server with snapshots, or a trusted remote backup service, Syncthing is one more piece of the puzzle, not a replacement for backups.

In environments with many devices or less technical users, it's advisable to provide some training on how the system works, what deleting files from shared folders entails, and where to go if they need to recover something from the versioning system. A basic understanding of how to use the system prevents disasters.

Using Syncthing with these precautions, taking advantage of its versioning options and organizing the folders well, you can set up a Powerful, private, and flexible file synchronization, without depending on third parties and with total control over your data and its locations, something that is increasingly valued in a world where everything tends towards the commercial cloud.