Privacy Tools #Syncthing#file sync#privacy

Syncthing: Private File Sync Without Cloud Services

Set up Syncthing for private, encrypted peer-to-peer file synchronization between your devices—no cloud middleman, no subscriptions, no data collection.

6 min read

Syncthing is a free, open-source file synchronization tool that syncs files directly between your devices using TLS encryption — no cloud service, no company servers, no subscription. Your files go straight from your laptop to your NAS to your home server without passing through anyone else’s infrastructure. This guide covers setting up Syncthing between two devices and configuring it for reliable, secure sync.

How Syncthing Works

Unlike Dropbox or OneDrive, Syncthing operates peer-to-peer. Each device has a unique cryptographic Device ID. You connect devices by exchanging these IDs, and Syncthing negotiates a direct encrypted connection. If a direct connection isn’t possible (e.g., both devices are behind NAT), it uses a relay server temporarily — but the data is still end-to-end encrypted.

  • No central server — files never pass through a third party unless relays are needed
  • TLS encrypted — all transfers use TLS with device certificate pinning
  • No registration — Syncthing doesn’t know who you are or what you’re syncing
  • Open source — code is audited and available on GitHub

Installing Syncthing

Linux (Debian/Ubuntu)

# Add Syncthing's official repository
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

Enable as a user service:

systemctl --user enable syncthing
systemctl --user start syncthing

Access the web UI at http://127.0.0.1:8384.

Windows

Download the installer from https://syncthing.net/downloads/. SyncTrayzor is a recommended Windows wrapper that adds a system tray icon and auto-starts Syncthing.

winget install Syncthing.SyncTrayzor

macOS

brew install syncthing
brew services start syncthing

Or download the official macOS app from syncthing.net.

Android

Available on F-Droid (privacy-preferred) or Google Play as Syncthing or Syncthing-Fork.

Initial Setup

When you open the Syncthing web UI (http://127.0.0.1:8384), you’ll see:

  • Your Device ID (a long alphanumeric string) — share this with devices you want to connect
  • A default Default Folder pointing to ~/Sync
  • No connected devices yet

Setting a Web UI Password

Go to Actions (top right) → SettingsGUI tab → set a GUI Authentication User and Password. This prevents other apps on your machine from accessing the Syncthing interface.

Connecting Two Devices

Device A (e.g., your laptop):

  1. Copy your Device ID from the web UI (Actions → Show ID)
  2. Note it for use on Device B

Device B (e.g., your NAS/home server):

  1. Click Add Remote Device
  2. Paste Device A’s Device ID
  3. Give it a friendly name (e.g., “Laptop”)
  4. Click Save

Back on Device A:

Syncthing detects an incoming connection request from Device B. A notification appears: “New Device wants to connect: [Device B ID]”. Click Add Device and confirm.

Both devices are now connected and will show in each other’s “Remote Devices” list with a green status.

Sharing a Folder

On Device A:

  1. Click Edit on the folder you want to share (or Add Folder to create a new one)
  2. Go to the Sharing tab
  3. Check the box next to Device B
  4. Click Save

Device B receives a prompt: “Device A wants to share folder ‘Documents’”. Accept and choose where to store it locally.

Syncthing immediately begins syncing. The first sync transfers all files; subsequent syncs only transfer changed blocks.

Folder Types

TypeBehavior
Send & ReceiveFull bidirectional sync
Send OnlyFolder is the master; remote changes don’t sync back
Receive OnlyRead-only mirror of the other device

Use Send Only for a “source of truth” device (e.g., your main laptop). Use Receive Only for a backup destination that shouldn’t push changes back.

Ignoring Files

Create a .stignore file in any synced folder to exclude files:

# .stignore
*.tmp
.DS_Store
Thumbs.db
node_modules/
.git/
*.log

Patterns are gitignore-compatible. Ignored files aren’t synced and don’t cause conflicts.

Conflict Resolution

If two devices modify the same file before syncing, Syncthing creates a conflict copy named like filename.sync-conflict-20260419-143022.ext. You need to manually review and merge conflicts — Syncthing doesn’t auto-merge.

For text files and code, use the Syncthing GTK UI or periodically run:

find ~/Sync -name "*.sync-conflict-*" -type f

Relays and Discovery Servers

By default, Syncthing uses:

  • Global Discovery — finds your devices’ current IP addresses when they change
  • Relay Servers — assist with NAT traversal when direct connection isn’t possible

For maximum privacy, you can disable both and use only local discovery (LAN sync) and direct IPs:

SettingsConnections:

  • Disable “Global Discovery”
  • Disable “Enable Relaying”
  • Add devices by direct IP in Advanced → Addresses field: tcp://192.168.1.50:22000

This prevents Syncthing’s discovery servers from knowing your devices exist, but requires both devices to be reachable at known addresses.

Syncthing vs. Nextcloud

FeatureSyncthingNextcloud
ArchitectureP2P, no server neededServer-client
Web access to filesNoYes
File browser UINoYes
Setup complexityLowHigh
Mobile clientGoodGood
PrivacyExcellentGood (self-hosted)

Choose Syncthing for pure sync without web access. Choose Nextcloud if you want to access files via browser from anywhere.

Syncthing is one of the most reliable and privacy-respecting file sync tools available. Once set up, it runs silently in the background and keeps everything in sync without any intervention.

#P2P encryption #self-hosted #privacy #file sync #Syncthing