OpenSourcePicks

Open source alternatives to popular software, with live GitHub data

GitHub stats refreshed every day

Syncthing

Peer-to-peer folder sync between your own devices, with no server or cloud account

Visit SyncthingGitHubDocumentation

Main features

  • Continuous two-way sync of folders between devices
  • No central server, data stays only on your devices
  • TLS connections with perfect forward secrecy
  • Devices identified by certificates and approved explicitly
  • Encrypted copies on untrusted devices (beta)
  • Trash can, simple, staggered and external versioning
  • Browser-based interface for setup and monitoring
  • Relays when a direct connection is not possible
  • Open, documented Block Exchange Protocol
  • Signed release binaries

What Syncthing does

Syncthing keeps folders identical across your own computers, servers and phones. Every change on one device is copied to the others, in both directions, without a central server or a cloud account in the middle. There is no web drive, no user accounts and no share links: it is a synchronization tool, not a hosting platform.

You set it up through a web interface that runs locally on each device. Each device has an ID derived from its certificate, and two devices sync only after both sides accept each other. Folders are then shared with chosen devices, with options such as send-only or receive-only.

Versioning protects against accidental changes. Syncthing can move replaced or deleted files to a trash can, keep simple or staggered versions, or hand them to an external script.

Security and privacy

All traffic between devices is encrypted with TLS using perfect forward secrecy, and devices authenticate with certificates rather than passwords. The project’s site states that your data is never stored anywhere other than on your own computers.

To find each other, devices use public discovery servers by default, and when no direct connection is possible traffic goes through public relays. Relayed data stays end-to-end encrypted, but relays are slower. You can run your own discovery and relay servers.

A folder can also be shared with an untrusted device, such as a rented server, so that it stores only encrypted data and file names it cannot read. The documentation still labels this feature as beta.

Self-hosting Syncthing

There is nothing to host in the usual sense. Syncthing is a single Go program with no database. Release binaries cover Windows, macOS, Linux, FreeBSD, OpenBSD, Solaris and other systems, and a Docker image is available. Releases are GPG-signed, and Windows and macOS binaries are code-signed.

To get something like a cloud drive, people often run Syncthing on an always-on machine at home or on a server, so that changes reach other devices even when the laptop is closed.

Hosted version

There is no hosted service. The Syncthing Foundation supports the project.

Limitations

Because there is no server, at least one other device must be online for changes to sync. There is no browser access to files from someone else’s computer, and no way to share a link with a person who does not run Syncthing. The official Android app was discontinued with the December 2024 release. The documentation points to community apps such as Syncthing-Fork for Android and Synctrain for iOS, iPadOS and macOS. Encryption for untrusted devices is still beta.

Who it suits

Syncthing fits individuals and technical users who want their files on all their devices without trusting a provider or running a web server. It is not a Dropbox replacement for teams that need sharing links and accounts; for that, look at Nextcloud or Seafile. It also pairs well with a file server such as copyparty, whose README suggests combining the two.

Technical details

Built with

  • Go

GitHub topics

  • go
  • p2p
  • peer-to-peer
  • synchronization

Reviewed by the OpenSourcePicks editors from the project's repository and documentation. Something out of date? Tell us.