Set Up Private File Sync with Syncthing

Sync files directly between your own devices with an open-source tool that avoids the usual cloud storage middleman.

SyncthingPrivate file syncOpen-source workflow
What you learn

How to install Syncthing, pair devices, share folders safely, and avoid the most common sync mistakes before they cost you data.

Best for

Personal documents, working directories, photo drops, and home-lab workflows where privacy and control matter more than polished vendor lock-in.

Risk to watch

Sync is not the same as backup. If a file is deleted or corrupted on one device, that change can spread.

Before you begin

  • At least two devices you control, such as a laptop and a home server.
  • Enough free space on both sides for the files you plan to sync.
  • A basic understanding that sync is for mirrored availability, not archival protection.
  • Permission to keep Syncthing running in the background on the devices involved.

Many people want Dropbox-style convenience without handing private files to a third-party storage service. Syncthing exists for exactly that. It is a free and open-source tool that syncs data directly between your devices over encrypted connections. There is no required central cloud account, no monthly fee for the software itself, and no need to trust a vendor with every file.

Why private sync is useful

Syncthing is appealing because it gives you control over where files live. If you want a folder to exist only on your laptop and a home server, that is your choice. If you want a third device for extra availability, you can add it. This makes it especially good for privacy-conscious workflows, local-first setups, and self-hosters who want a simple way to keep active files available across machines.

Expected outcome: Two of your devices trust each other, a chosen folder syncs automatically, and you understand how to pause, inspect, and troubleshoot the relationship instead of treating it like magic.

Step 1: Install Syncthing on each device

On Ubuntu or Debian-based systems, install the package:

sudo apt update
sudo apt install syncthing -y

Start it once for your user account:

syncthing

This initial run creates the configuration directory and device ID. Press Ctrl+C after confirming it started. Then enable the user service so it runs in the background:

systemctl --user enable syncthing
systemctl --user start syncthing
systemctl --user status syncthing --no-pager

If you are installing on a desktop, you can also use the official desktop package for your platform. The core concept stays the same: every device gets its own Syncthing instance and device ID.

Step 2: Open the web interface safely

By default, Syncthing’s web UI listens on localhost. On the machine itself, open:

http://127.0.0.1:8384

If the instance runs on a remote server, tunnel the UI over SSH instead of exposing it directly:

ssh -L 8384:127.0.0.1:8384 youruser@your-server-ip

Then open the same local URL in your browser. Inside the web interface, set a GUI username and password under settings before doing anything else. If the server is remote, keeping the UI behind SSH is usually the simplest safe approach.

Step 3: Pair your devices

Each Syncthing node has a device ID. In the web interface, copy the device ID from the first machine. On the second machine, click Add Remote Device, paste the ID, and give it a recognizable name.

Repeat in the opposite direction, or accept the incoming pairing request if it appears automatically. Once paired, the devices should show a connected or idle state when they can reach each other.

If you prefer the command line to inspect the config location:

ls -lah ~/.config/syncthing/

But for first setup, the web UI is usually easier and less error-prone.

Step 4: Share a folder and choose the right sync mode

On the source device, click Add Folder. Choose a local path and a simple folder label, for example:

~/Sync/Documents

Select the remote device that should receive it. On the other device, accept the folder share and choose the local storage path there.

Pay attention to folder type options:

  • Send & Receive is the normal two-way sync mode.
  • Send Only is good when one device should act like the authoritative source.
  • Receive Only is useful for a passive replica or review machine.

For the first test, create a small text file in the shared folder on one device:

echo "Syncthing test" > ~/Sync/Documents/test.txt

Within a short time, that file should appear on the other device if both are online and connected.

Expected outcome and verification

A healthy Syncthing setup usually means:

  • Each device shows the other as connected or recently connected.
  • The shared folder is in sync or actively syncing.
  • Files created on one device appear on the other as expected.
  • The web interface is protected and not casually exposed to the internet.

Useful checks include:

systemctl --user status syncthing --no-pager
ss -tulpn | grep 8384
ls -lah ~/Sync/Documents
journalctl --user -u syncthing -n 50 --no-pager

Troubleshooting common Syncthing problems

The devices never connect.
Check that both instances are running and that neither local firewall nor router policy is blocking Syncthing’s traffic. If one device is a server, make sure it has stable outbound access.

The folder is shared, but files do not appear.
Confirm both sides accepted the same folder, and that the destination path is writable by the Syncthing user.

You exposed the web UI publicly.
Back that out. Bind it locally, protect it with credentials, and use SSH port forwarding for remote access.

Files were deleted everywhere.
That is the sync-versus-backup problem. Check Syncthing versioning options if enabled, and restore from a real backup if needed.

Warning: Syncthing is excellent for keeping active files available, but it should sit beside backups, not replace them. Fast sync can also spread fast mistakes.

What to do next

If you like private file control, the next useful skill is sending copies offsite for disaster recovery. Continue with Use rclone for Offsite Server Copies to S3 or Backblaze B2.