// Engineering Log

Self-hosted cloud: Part 2 — File syncing with Syncthing

Published on 2026-09-21

Syncthing — a free open-source program (MPL 2.0) for synchronizing folders between computers, servers and network-attached storage. Files are transferred directly between your devices: there is no central server that would store a copy of the data. If you don’t need a full cloud service with web access and public links, but just identical contents of work folders on multiple devices, Syncthing solves this without subscription fees and without sending files to a third party.

How Syncthing works

Each device has a unique identifier (Device ID). To start exchanging data between two devices, you need to add them to each other and confirm the connection on both sides. After that, you choose which folders to synchronize and with which devices.

Syncthing monitors changes in folders, splits files into blocks and sends only the changed blocks to other devices. Connections are encrypted with TLS.

Discovery servers are used so devices can find each other over the internet. If a direct connection cannot be established, for example both devices are behind NAT, traffic goes through a relay. According to the Syncthing documentation, relays do not see the transmitted data: they only receive an encrypted stream. The project maintains public discovery servers and relays, and if needed they can be deployed privately.

Advantages

  • Files do not leave your devices. Copies are stored only where you sync them.
  • No single point of failure. Failure of one device does not stop exchange between the others.
  • Speed on a local network. If devices are on the same network, data is transferred directly without going out to the internet.
  • Flexible configuration. For each folder you can set which devices, sync mode, exclusions and versioning to use.
  • Free of charge. No licenses or subscriptions.

Limitations

  • Syncthing is not a backup. The documentation states this explicitly: any changes, including deletions, propagate to all devices. A mistakenly deleted or corrupted file will disappear everywhere. Versioning mitigates the risk but does not replace a backup on a separate medium.
  • Devices must be online at the same time. If a laptop and a home computer are never on at the same time, changes will not be transferred between them. A common solution is an always-on node: a server, VPS or NAS.
  • No web access to files and no public share links. You cannot open a file from a browser on someone else’s computer or send a client a download link.
  • No centralized management. Each device is configured separately; this is inconvenient for dozens of employees.
  • Conflicts when editing simultaneously. If the same file is changed on two devices before synchronization, Syncthing will keep both versions: one of them will have sync-conflict in the filename, and you will have to resolve it manually.

Android app

The official Syncthing app for Android ceased development in December 2024. The developer explained this by difficulties publishing to Google Play and lack of active maintenance. Installed copies continue to work, but there will be no further updates.

Development continues in Syncthing-Fork — an app maintained by the community. It is distributed via F-Droid and the release page on GitHub and is protocol-compatible with other devices. To migrate, simply export the settings from the old app and import them into Syncthing-Fork.

What changed in version 2.0

Syncthing 2.0 was released in August 2025:

  • the internal database was changed from LevelDB to SQLite; on first run in a large installation a one-time migration may take a noticeable time;
  • information about deleted files is now forgotten after six months; the interval can be changed with the --db-delete-retention-interval parameter;
  • prebuilt builds for Windows on ARM, NetBSD and Solaris are no longer released.

How to deploy

  1. Install Syncthing on all devices. Builds for Windows and macOS are available on the official website. On Debian and Ubuntu it is more convenient to add the official repository:

    bash
    sudo mkdir -p /etc/apt/keyrings
    sudo curl -L -o /etc/apt/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg
    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
    sudo apt-get update
    sudo apt-get install syncthing
  2. Configure autostart. On a server run Syncthing as a system service under a separate user so it runs without logging in:

    bash
    sudo systemctl enable syncthing@myuser.service
    sudo systemctl start syncthing@myuser.service

    On a workstation a user service is sufficient: systemctl --user enable --now syncthing.service.

  3. Open the web UI and set a password. By default the interface is only accessible from the same device at http://127.0.0.1:8384. It is convenient to connect to a remote server via an SSH tunnel: ssh -L 8384:127.0.0.1:8384 user@server, after which the interface opens in the browser on your computer at the same address.

  4. Add devices. Copy the Device ID of one device, add it on the other and confirm the request.

  5. Add a folder and choose a mode. “Send & Receive” — the normal two-way synchronization. “Send Only” is suitable for a source whose changes should not be overwritten. “Receive Only” is for a copy that is not edited manually.

  6. Enable versioning. Syncthing offers four options: “Trash Can” (deleted and replaced files are moved to the .stversions folder), “Simple” (a specified number of versions is kept), “Staggered” (older versions are kept less frequently) and “External” (versioning is handled by your program or script).

  7. Set exclusions. Temporary files, caches and build directories are listed in a .stignore file in the root of the folder.

Always-on node without access to the data

If an always-on node is a rented VPS to which you don’t want to trust the contents of files, you can use the untrusted devices mode: such a node stores and forwards only encrypted data, and the folder password is set on trusted devices. In the documentation this feature is still marked as beta, so you should test it first for important data.

Common mistakes

  • Treating synchronization as a backup and not making separate copies.
  • Exposing the web UI to the network without a password. Whoever gains access to it controls all the device’s folders.
  • Synchronizing files that the program keeps open and constantly modifies, e.g. database files. The copy on another device may be in an inconsistent state.
  • Editing the same document simultaneously on multiple devices and then losing changes among files labeled sync-conflict.

Who Syncthing is for

Syncthing is well suited for entrepreneurs and professionals who need to keep identical work folders on a laptop, home computer and a server; small teams exchanging project files without an external cloud; owners of network-attached storage who need synchronization with work computers.

If you need browser access to files, public share links for clients, collaborative document editing and centralized user management, it’s better to choose a full-featured cloud storage on your own server, for example Nextcloud.

// Contact

Need help?

Get in touch with me and I'll help solve the problem

I reply within one business day (03:00-13:00 GMT)

Или оставьте заявку здесь:

Confirm that you are not a bot.

Write and get a quick reply