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
-
NVIDIA Released Driver for Upcoming NVIDIA 560 GPU for Linux
Not only has NVIDIA released the driver for its upcoming CPU series, it's the first release that defaults to using open-source GPU kernel modules.
-
OpenMandriva Lx 24.07 Released
If you’re into rolling release Linux distributions, OpenMandriva ROME has a new snapshot with a new kernel.
-
Kernel 6.10 Available for General Usage
Linus Torvalds has released the 6.10 kernel and it includes significant performance increases for Intel Core hybrid systems and more.
-
TUXEDO Computers Releases InfinityBook Pro 14 Gen9 Laptop
Sporting either AMD or Intel CPUs, the TUXEDO InfinityBook Pro 14 is an extremely compact, lightweight, sturdy powerhouse.
-
Google Extends Support for Linux Kernels Used for Android
Because the LTS Linux kernel releases are so important to Android, Google has decided to extend the support period beyond that offered by the kernel development team.
-
Linux Mint 22 Stable Delayed
If you're anxious about getting your hands on the stable release of Linux Mint 22, it looks as if you're going to have to wait a bit longer.
-
Nitrux 3.5.1 Available for Install
The latest version of the immutable, systemd-free distribution includes an updated kernel and NVIDIA driver.
-
Debian 12.6 Released with Plenty of Bug Fixes and Updates
The sixth update to Debian "Bookworm" is all about security mitigations and making adjustments for some "serious problems."
-
Canonical Offers 12-Year LTS for Open Source Docker Images
Canonical is expanding its LTS offering to reach beyond the DEB packages with a new distro-less Docker image.
-
Plasma Desktop 6.1 Released with Several Enhancements
If you're a fan of Plasma Desktop, you should be excited about this new point release.