Syncthing: Synchronize Files Between Computers Without the Cloud

Syncthing: Synchronize Files Between Computers Without the Cloud

Bitnesia Software Sep 16, 2026 19 ID

Third-party cloud storage services are indeed practical, but there is a price to pay: limited quotas, monthly subscription costs, and our files being stored on someone else's server. For sysadmins or developers who are accustomed to managing their own data, this kind of dependency feels awkward. Fortunately, there is Syncthing, a file synchronization application that works directly between devices without a central server. This article discusses how Syncthing works, its advantages and disadvantages, as well as installation and configuration steps from scratch.

What is Syncthing

Syncthing is an open-source application to synchronize files continuously between two or more devices without passing through a third-party server. All processes run in a peer-to-peer (P2P) manner: data flows directly from one device to another as soon as file changes occur, whether over a local network or the internet.

Because there is no intermediary server storing a copy of our data, this model automatically eliminates the privacy risks that usually arise in third-party commercial cloud services. We are also not restricted by specific storage quotas, except for our own devices' storage capacity.

How Syncthing Works

To understand why Syncthing is safe to use, we need to know its two core mechanisms: how devices connect to each other, and how that communication is secured.

Peer-to-Peer Connection

When two devices are paired, Syncthing creates a direct connection between them using a protocol called Block Exchange Protocol (BEP). This protocol splits files into small blocks, then copies only the changed blocks whenever a modification occurs. This approach makes the synchronization process far more efficient than re-copying the entire file every time there is a change.

If both devices are on the same Wi-Fi or LAN network, file transfers run locally, extremely fast, and do not consume any internet quota at all.

Security and Privacy

Every device running Syncthing has a unique public-private key pair based on Ed25519. From that public key, Syncthing calculates a SHA-256 hash and encodes it into a string called a Device ID, for example MFZWI3D-BONSGYC-YLTMRWG-C43ENR5-QXGZDMM-FZWI3DP-BONSGYY-LTMRWAD. This Device ID is what we share with other devices when we want to pair them, not a username or password.

Inter-device connections are protected via a TLS handshake, where both parties exchange and verify certificates before data transmission begins. Because identity verification relies on the Device ID and these certificates, devices that we do not explicitly add will not be able to participate in synchronization even if they are on the same network.

Community and Ecosystem

Its open-source status allows Syncthing's code to be audited by anyone, and its development is supported by an active community in the Syncthing GitHub repository. This transparency is crucial for sysadmins managing sensitive data, as we do not need to blindly trust the security claims of closed-source vendors.

Advantages and Disadvantages of Syncthing

Before deciding to use Syncthing for daily needs or office infrastructure, it is a good idea to weigh its benefits and challenges.

Syncthing Advantages

  • Free and subscription-free: storage capacity depends entirely on your own device's storage, with no monthly fees.
  • Maximum privacy: data never passes through third-party servers due to its P2P model.
  • Saves local network bandwidth: synchronization between devices on the same LAN/Wi-Fi runs quickly without touching the internet quota.
  • Highly customizable: features include file versioning, ignore patterns to exclude specific files/folders, and bandwidth limit settings.

Syncthing Disadvantages

  • Both devices must be turned on: synchronization only runs if both the sending and receiving devices are active and connected.
  • Less beginner-friendly: the Web GUI interface takes a bit of time to adapt to compared to conventional cloud applications that require just a click.
  • No link-sharing feature: Syncthing is designed for synchronization between your own devices, not for sharing files publicly via links.

Installation on Various Operating Systems

To download the official installer, always use the Syncthing Downloads page to avoid modified files from unknown parties.

Installation on Windows

  1. Download Syncthing Windows Setup from the official downloads page, or use a third-party GUI wrapper like SyncTrayzor v2 if you want Syncthing to run as a background service complete with a tray icon. Choose this v2 version because the original SyncTrayzor version has been declared unmaintained by its author.
  2. Run the installer and follow the installation process like standard Windows applications.
  3. To make Syncthing run automatically on computer startup, enable the start automatically option in SyncTrayzor v2, or add an application shortcut to the Windows Startup folder.

Installation on macOS

  1. Download the syncthing-macos package from the official downloads page, then install it like standard macOS applications.
  2. Alternatively, sysadmins who are comfortable with package managers can install it via Homebrew:
    brew install syncthing
  3. When first launched, macOS may ask for network and specific folder access permissions (System Permissions). Allow these permissions so that the folder synchronization process runs normally.

Installation on Debian/Ubuntu

Although Syncthing is available in the default Debian/Ubuntu repositories, its version often lags behind several releases. To get the newest version and faster updates, sysadmins should install it via the official repository apt.syncthing.net. This repository provides several channels, one of which is stable-v2 containing stable releases that are typically updated every first Tuesday of the month.

  1. Create a keyring directory and download the official Syncthing GPG key to verify package authenticity:
    sudo mkdir -p /etc/apt/keyrings
    sudo curl -L -o /etc/apt/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg
  2. Register the apt.syncthing.net repository with the stable-v2 channel:
    echo "deb [signed-by=/etc/apt/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable-v2" | sudo tee /etc/apt/sources.list.d/syncthing.list
  3. Update the package list, then install Syncthing:
    sudo apt-get update
    sudo apt-get install syncthing
  4. Optionally, if the distribution already has an older version of the syncthing package and you want to ensure apt always prioritizes this official repository, add a pinning file:
    printf "Package: *\nPin: origin apt.syncthing.net\nPin-Priority: 990\n" | sudo tee /etc/apt/preferences.d/syncthing.pref

After the package is installed, enable Syncthing as a systemd service. For desktop usage, run it as a user service active after user login:

systemctl --user enable syncthing.service
systemctl --user start syncthing.service

If Syncthing is installed on a server without an interactive login session, use a system service so it runs starting from boot:

systemctl enable [email protected]
systemctl start [email protected]

Check its status via journalctl if there are issues, as systemd logs all Syncthing output to the journal.

Installation on Other Linux Distributions

Besides Debian/Ubuntu, Syncthing is also available in the default package managers of many other distributions, for example pacman -S syncthing on Arch Linux. The steps to enable its systemd service are the same as on Debian/Ubuntu.

Installation on Android

It should be noted that the official Syncthing-Android application was declared discontinued by its developers in December 2024, and its repository is now a read-only archive. Sysadmins or users who still want to synchronize Android devices are recommended to use community fork applications like Syncthing-Fork, available via F-Droid or GitHub Releases, whose development is actively continued by the community. Before installing, check the latest status of the fork project because open-source ecosystems like this can change at any time.

Connecting Devices and Synchronization

After Syncthing is installed on two or more devices, the next step is to pair those devices with each other and create folders to synchronize.

  1. Open the Syncthing Web GUI (usually at http://localhost:8384), then copy that device's Device ID from the Actions > Show ID menu.
  2. On the second device, click Add Remote Device, then paste the Device ID from the first device. Confirm the pairing request that appears on both devices.
  3. Create a new folder via the Add Folder button, specify the local path you want to synchronize, then check which devices are allowed to share that folder (Share Folder).
  4. Monitor synchronization status on the dashboard: Up to Date means all files are identical across all devices, Syncing means transfers are still running, and Idle means Syncthing is waiting for new file changes.

Conclusion

Syncthing is suitable for anyone concerned about data privacy, sysadmins and developers accustomed to managing their own infrastructure, photographers or videographers needing fast local backups, and users wanting to build a private cloud without subscription costs. Its P2P model and TLS encryption keep data entirely under our control, with the consequence that both devices must be active when the synchronization process runs. For advanced configuration guides such as file versioning or ignore patterns, we can refer directly to the official Syncthing documentation.

Help me create more! Your donations go directly toward better equipment and research for future tutorials.

Support future guides

Related Posts