Synchronize your data across multiple devices with Syncthing
Sync or Swim
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.
Interface
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.
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).
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
(incl. VAT)
Buy Linux Magazine
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.
News
-
The Gnome Foundation Struggling to Stay Afloat
The foundation behind the Gnome desktop environment is having to go through some serious belt-tightening due to continued financial problems.
-
Thousands of Linux Servers Infected with Stealth Malware Since 2021
Perfctl is capable of remaining undetected, which makes it dangerous and hard to mitigate.
-
Halcyon Creates Anti-Ransomware Protection for Linux
As more Linux systems are targeted by ransomware, Halcyon is stepping up its protection.
-
Valve and Arch Linux Announce Collaboration
Valve and Arch have come together for two projects that will have a serious impact on the Linux distribution.
-
Hacker Successfully Runs Linux on a CPU from the Early ‘70s
From the office of "Look what I can do," Dmitry Grinberg was able to get Linux running on a processor that was created in 1971.
-
OSI and LPI Form Strategic Alliance
With a goal of strengthening Linux and open source communities, this new alliance aims to nurture the growth of more highly skilled professionals.
-
Fedora 41 Beta Available with Some Interesting Additions
If you're a Fedora fan, you'll be excited to hear the beta version of the latest release is now available for testing and includes plenty of updates.
-
AlmaLinux Unveils New Hardware Certification Process
The AlmaLinux Hardware Certification Program run by the Certification Special Interest Group (SIG) aims to ensure seamless compatibility between AlmaLinux and a wide range of hardware configurations.
-
Wind River Introduces eLxr Pro Linux Solution
eLxr Pro offers an end-to-end Linux solution backed by expert commercial support.
-
Juno Tab 3 Launches with Ubuntu 24.04
Anyone looking for a full-blown Linux tablet need look no further. Juno has released the Tab 3.