Syncthing - Cloud-synchronisation without cloud
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:
- Copy the Device ID from device A
- On device B, go to Add Remote Device and paste the ID
- Device A will receive a connection request β confirm it
- 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:
- Click Add Folder in the web UI
- Set a local path and a shared Folder ID (must match on both sides)
- Under Sharing, select which devices should have access
- 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:
- Enable Relaying
- Global Discovery (optional β only needed if devices are on different networks)
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:
- Trash Can β deleted files are moved to a
.stversionsfolder - Simple β keeps a fixed number of old versions
- Staggered β keeps versions with increasing gaps (hourly β daily β weekly)
For most use cases, Trash Can or Staggered is a good choice.