Syncthing - Cloud-synchronisation without cloud

Syncthing - Cloud-synchronisation without cloud

πŸ“… 2025-03-16 ✏️ 2026-07-11 ✍️ Andreas Wittmann πŸ‘οΈ ... linux syncthing

I recently stumbled upon this tool again β€” something I had heard about a while back but never really tried. In the past I used bsync, unison, and a few others, but none of them truly clicked. More often than not I ended up going back to good old rsync. With Syncthing I’ve finally found something I want to roll out across my entire infrastructure.

Syncthing synchronizes files directly between devices β€” no cloud service, no third-party server, no account required. Everything stays within your own network. It runs on Linux, Windows, macOS, and Android.

Installation

On Debian/Ubuntu, install from the official Syncthing repository to get current versions:

curl -s https://syncthing.net/release-key.txt | sudo gpg --dearmor -o /usr/share/keyrings/syncthing-archive-keyring.gpg
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
sudo apt update && sudo apt install syncthing

Running as a systemd service

Enable and start Syncthing for your user (replace username with your actual username):

sudo systemctl enable syncthing@username
sudo systemctl start syncthing@username

Once running, the web interface is available at http://localhost:8384.

To access the web interface from another machine (e.g. on a headless server), forward the port via SSH:

ssh -L 8384:localhost:8384 user@server

Adding devices

Each Syncthing installation has a unique Device ID β€” a long alphanumeric string visible in the web UI under Actions β†’ Show ID. To connect two devices:

  1. Copy the Device ID from device A
  2. On device B, go to Add Remote Device and paste the ID
  3. Device A will receive a connection request β€” confirm it
  4. Repeat in the other direction if needed

Syncthing will then negotiate a direct connection between the two devices.

Sharing folders

Once devices are paired, you can share folders between them:

  1. Click Add Folder in the web UI
  2. Set a local path and a shared Folder ID (must match on both sides)
  3. Under Sharing, select which devices should have access
  4. Choose a sync type: Send & Receive, Send Only, or Receive Only

The remote device will receive a share request and must confirm it before syncing begins.

Disabling relay servers

By default, Syncthing can route traffic through public relay servers if a direct connection is not possible. To keep synchronization strictly within your own network, disable relays:

Go to Actions β†’ Settings β†’ Connections and uncheck:

With relaying disabled, devices only sync when they can reach each other directly. This is also a small security improvement since no traffic ever leaves your network.

Excluding files

Syncthing reads a .stignore file in the root of each shared folder. Patterns work similarly to .gitignore:

# compiler output
*.o
*.a
*.so

# build directories
/build/
/dist/

# editor temporaries
*.swp
.DS_Store

The .stignore file itself is not synchronized β€” each device maintains its own.

Versioning

Syncthing can keep previous versions of changed or deleted files. Under Edit Folder β†’ File Versioning, several strategies are available:

For most use cases, Trash Can or Staggered is a good choice.