Syncthing is an open source tool that synchronises data across multiple devices. It transfers your files peer-to-peer, without the requirement to upload your information to the cloud. Packages are available for Android, Windows, macOS and Linux (including Synology DSM).
The usefulness of this project cannot be overstated.
Running the Syncthing stable channel
Syncthing is included in the Debian and Ubuntu repositories, respectively. These instructions are targeting the latest release of the Syncthing stable channel. It is therefore necessary to add the Syncthing repository to your list of APT sources.
In the following example, bookworm is the local username.
Step 1
Add the Syncthing release key for validation of packages downloaded from the Syncthing repository.
$ sudo curl -o /usr/share/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg
Step 2
Add the Syncthing repository.
$ echo "deb [signed-by=/usr/share/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list
Step 3
Install Syncthing on your system.
$ sudo -- bash -c 'apt update && apt install --yes syncthing apt-transport-https'
Step 4
Enable Syncthing for the local user bookworm.
$ sudo -- bash -c 'systemctl enable syncthing@bookworm.service && systemctl start syncthing@bookworm.service && systemctl status syncthing@bookworm.service'
Step 5
You may need to edit your firewall settings to open ports for incoming and outgoing traffic.
If you are using ufw as a host-based firewall
Configure ufw to allow connections to Syncthing.
$ sudo ufw limit syncthing
If you are using firewalld as a host-based firewall
Configure firewalld to allow connections to Syncthing.
$ sudo -- bash -c 'firewall-cmd --zone=public --add-service=syncthing --permanent && firewall-cmd --reload && firewall-cmd --info-zone=public'
Step 6
Access the Syncthing configuration page by using your browser to navigate to the following address:
http://localhost:8384
Step 7
Complete your setup by referring to the Syncthing documentation.