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
-
Systemd Fixes Bug While Facing New Challenger in GNU Shepherd
The systemd developers have fixed a really nasty bug amid the release of the new GNU Shepherd init system.
-
AlmaLinux 10.0 Beta Released
The AlmaLinux OS Foundation has announced the availability of AlmaLinux 10.0 Beta ("Purple Lion") for all supported devices with significant changes.
-
Gnome 47.2 Now Available
Gnome 47.2 is now available for general use but don't expect much in the way of newness, as this is all about improvements and bug fixes.
-
Latest Cinnamon Desktop Releases with a Bold New Look
Just in time for the holidays, the developer of the Cinnamon desktop has shipped a new release to help spice up your eggnog with new features and a new look.
-
Armbian 24.11 Released with Expanded Hardware Support
If you've been waiting for Armbian to support OrangePi 5 Max and Radxa ROCK 5B+, the wait is over.
-
SUSE Renames Several Products for Better Name Recognition
SUSE has been a very powerful player in the European market, but it knows it must branch out to gain serious traction. Will a name change do the trick?
-
ESET Discovers New Linux Malware
WolfsBane is an all-in-one malware that has hit the Linux operating system and includes a dropper, a launcher, and a backdoor.
-
New Linux Kernel Patch Allows Forcing a CPU Mitigation
Even when CPU mitigations can consume precious CPU cycles, it might not be a bad idea to allow users to enable them, even if your machine isn't vulnerable.
-
Red Hat Enterprise Linux 9.5 Released
Notify your friends, loved ones, and colleagues that the latest version of RHEL is available with plenty of enhancements.
-
Linux Sees Massive Performance Increase from a Single Line of Code
With one line of code, Intel was able to increase the performance of the Linux kernel by 4,000 percent.