Syncthing lets you synchronize your files bidirectionally across multiple devices.

With this program, you can share folders between several devices on your network. The syncthing application consist of a command-line program and a built-in HTTP user interface. There is a user service, called syncthing.service you may need to start and enable so Syncthing can be able to start at boot.

# Systemd
systemctl --user enable --now syncthing.service

You can access the graphical user insterface by typing syncthing -browser-only. Syncthing web interface

There are applications for phones, Windows and MacOS (and, of course, Linux):

Operation is very simple: add a device (which has Syncthing installed) by typing its Device ID (available under the “Show ID” option) and a custom Device Name. Syncthing add device window

Then, add a folder to share by specifying a custom label, its path (“General” tab) and the devices you want to share the folder with (“Sharing” tab). Inside “Advanced” tab you can select if you want the folder to send and receive changes, only send or only receive changes. Syncthing add folder window

After you added a shared folder, you will receive a notification in the other device to confirm the operation and you will be able to adjust some settings like the folder path.