Synchronize your data across multiple devices with Syncthing

Sync or Swim

Article from Issue 267/2023

If you need a cloudless solution for syncing data across multiple devices, Syncthing could be just the thing.

You are probably familiar with the problems of using more than just one desktop computer. You also might have a laptop, a tablet, or other computer systems. If you use these devices regularly, large datasets will quickly accumulate, causing the need to keep data synchronized across the various devices.

Permanent synchronization of personal data across multiple terminal devices was previously the domain of cloud services or dedicated server instances. With Syncthing, you can keep all your devices up to date without the hassle of setting up your own server or sharing your data with public cloud services. Syncthing [1] syncs the data directly between the systems, although the folder structures can differ. The two devices only need to be switched on and accessible on the local network.

Getting Started

The cross-platform Syncthing software is available from the repositories of all the major distributions. In addition to the 32- and 64-bit versions for the x86 system architecture, you will also find packages for the ARM platform. And you can pick up an app for Android v4.1 or newer from the F-Droid store.

If you are setting up from the repositories, the installation creates two starters in the desktop environment menu structure. If you use the software offered on the project page [2], you will need to add it to your system's menu structure manually after unpacking the tarball.

When you launch the application, Syncthing opens the comparison tool in the background and on your web browser. On first launch, the program also generates the keys and certificates that you need for secure data transfer. The dashboard appears in the browser window; you can use it to customize the program to suit your needs.

The splash page prompts you to create a username and password on first launch. To do so, press Actions in the top right corner of the browser window and select Settings from the context menu. In the dialog box that appears, switch to the GUI tab and enter the desired authentication data in the GUI Authentication User and GUI Authentication Password fields. Then press Save. After that, the window will close and you will need to authenticate when you open the web interface again.


Syncthing's web interface consists of three large panels. On the left side of the window, you will find the Folders table, which contains the local directories that you have included for synchronization. In the upper right corner is a This Device info area, which shows you some statistics for the local computer system. Below that, the Remote Devices panel shows you the connected systems with which the software can synchronize.

Right at the top of the browser window, you will find three shortcuts on the left. Actions shuts down or restarts the software, displays the logs, or opens the configuration menu. Use the General tab to specify the minimum free disk space on the local machine required for the index database. In addition to a percentage value, you can also specify absolute values in the KB to TB ranges.

To add external devices for data synchronization, press Add device in the Remote Devices section of the browser window. The software automatically searches the local network for other devices with retrievable identifiers and displays them in an overlapping window (Figure 1). To integrate new terminal devices, you need to make sure they are switched on and that a Syncthing instance is also running on them. Clicking on the identifier integrates the remote devices with the local system. Since the device name is not shown, it makes sense to assign a meaningful device name in the input line for ease of identification. Otherwise, the software will show you the device name that it uses on the terminal device, usually the hostname.

Figure 1: Syncthing's setup dialog will automatically find other devices on the local network.

The Sharing and Advanced tabs contain additional settings. For example, you can opt for unidirectional or bidirectional data synchronization by integrating the remote systems into the local installation as distribution devices. In the Advanced tab, you can also specify whether Syncthing compresses the data and what transfer limits apply to incoming and outgoing connections.

After completing the settings, press Save bottom right. On the remote device, a message will appear in the Syncthing browser window pointing to a connection attempt and prompting you to add the system by pressing Add Device. A short time after accepting the connection, both devices will show the newly connected system, with the device name and connection status.

Sharing Folders

To add local folders to the system for synchronization, click on Add Folder in the Folders area of the browser window. In the dialog, enter a name for the folder to be synchronized and specify its path. In the Sharing tab, you can then specify the end devices on the LAN with which you want to share the folder. The connected devices are listed in a table. To enable one of them, check the box to the left of its name.

In the File Versioning tab, you can specify whether or not you want to create multiple chronologically ordered versions of the same folder. The File Versioning field gives you a choice between different versioning modes, and you can choose the configuration for this in a supplementary dialog. The Ignore Pattern tab lets you use placeholders to specify which file types you want the software to ignore during synchronization. The final tab, Advanced, is where to define the scan intervals.

After completing the configuration, press Save. On the terminal device with which you want to synchronize the folder, you are now prompted in the browser whether you want to let Syncthing create the new folder. If so, another dialog box appears and prompts you for the path.

As soon as data in one of the shared folders changes, the application synchronizes the data between the computers. A click on the directory in the browser window opens a status menu showing you the software's actions. This summary includes the number of files transferred and the total amount of data transferred (Figure 2).

Figure 2: Syncthing gives users detailed information on the status of devices and file transfers in the browser window if needed.

If you connect multiple devices to Syncthing, unavailable systems will also appear in the list and will be shown with the Disconnected status. If the software is activated by the system rebooting, it automatically connects to other Syncthing instances on the intranet and synchronizes the data. Syncthing then replicates any changes following your settings. The status indicators in the web browser let you track the tool's activities.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Syncthing

    Syncthing is a free alternative to BitTorrent Sync for synchronizing data on computers and mobile devices.

  • File Exchange

    For the occasional local file transfer, a few simple tools can do the job quickly and efficiently.

  • Homegrown Notes Tool

    If you're tired of the privacy problems and feature bloat of high-end note-taking utilities, try rolling your own.

  • Charly's Column: Pulse

    Equal treatment, as sys admin Charly so boldly proposes, should be the norm. What he really wants is a free tool to sync user data across multiple computers.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More