Syncthing: Cluster Based, P2P File Synchronization
So I know I just got finished talking about Nextcloud, but just stick with me here, there’s only one more piece of software that I’m going to talk about: Syncthing.
I really can’t find a good comparison for this one, so I’m just going to talk.
Syncthing allows you to sync an arbitrary number of folders to an arbitrary number of devices, in a peer-to-peer manner.
Put simply, what I do is, after installing Syncthing on two devices, I add the other on both, and confirm it.
Now that the two can talk, I can say “this folder, ~/Pictures
, named Pictures
is to be synced with <other device>
”.
Tell the other device to accept it, and both are brought up to speed with one another.
Add a few more devices, and both my laptops, my surface, my phone, and my gaming rig can all share.
Note that a folder does not have to be shared to every device, they only share what you tell them to share.
Why does my phone need the gigabytes of NEF raw files, for example?
So, tell them not to share it, and it won’t.
There’s a lot more that you can tweak too: file versioning, compression, if a particular device can send and receive, send only, receive only.. it’s insanely configurable.
Better yet: it’s intelligent. Files are broken up into smaller blocks, and blocks will be reused even from other files if it’s already there. Why send twice what you only need to send once? Or maybe, why send what they already have? But not only that, Syncthing works like a cluster: all devices will connect to all other devices, distributing the load and constantly updating each other. The cool part: it uses a relay and NAT traversal system, so that even if your devices cannot directly connect to each other, they can both mutually agree to talk on a relay, bouncing traffic between that to maintain in sync. It’s so cool!
Now, to address the security concerns: it auto-generates a TLS certificate, and uses TLSv1.3 for communications, either over TCP direct, TCP relay, or QUIC (which none of my devices support so I can’t speak on it that much). TLSv1.3 currently does not have any known vulnerabilities, which is a requirement in the Syncthing specification. Furthermore, none of your data is actually stored on any external server (or relay), so nobody else is going to be spying on everything.
Yeah… just like Nextcloud, it’s not for everyone, but I just love it. And if I love it, I’m going to talk about it, spread the knowledge.