Syncthing – a free OSS alternative to 3rd-party cloud syncing

So maybe you guys all already know about Syncthing, but I had never heard about it before.

Syncthing in essence does something very similar to Dropbox, iCloud, or OneDrive, but it does so directly between your various devices (no iOS yet though) without involving any 3rd parties and their clouds where you’re effectively handing your data over to somebody else. Syncthing is open source, free, and it supports macOS, Win, Linux, and Android. Syncing is configured through a very simple web interface, the actual syncs are encrypted of course. Versioning, access control/permissions, and extra options like send/receive only are included.

Leo Laporte did a brief but very interesting segment about it on his show this week (that’s how I learned about it).

https://syncthing.net

3 Likes

Syncthing is excellent. I’ve been using it for a few years. Among other things, I can keep my MoneyDance files synced between four computers (which I could do with MoneyDance’s built-in DropBox sync) and two user accounts (which I could not do with MoneyDance.). I also sync my Desktop and Documents folders between my user account on four computers. I could use iCloud for that, but this saves iCloud space.

So since there’s no iOS app yet, I assume you can access and manage your files through a web browser on iPhone/iPad?

The problem is that an iOS app would be required to run the daemon. Although you configure it through a browser, you still need the daemon to run on each device (otherwise there’s nothing to configure) and for that you’d need an iOS app. I suppose the daemon aspect is exactly the problem with getting it into the app store (but likely not the only one, I’m not sure how much Apple wants the FS to be exposed to users).

Thanks, that makes sense…

How do non-local machines keep track of each other, through the usual IP changes that ISPs do? Are they always checking with a central syncthing directory server? Documentation on github is not clear on this.

I haven’t researched the details yet myself on this, but I see that each client creates a unique ID. My suspicion is that the daemon updates a central repository with the current IP for each client ID. Your other clients can then get their IP table updates from there. In fact, I recall seeing an advanced option for how often to check for changes.

There’s a similar product from the Bittorrent folks called Resilio Sync (formerly Bittorrent Sync). I’ve been using it for a number of years with good results. They have iOS and Android clients, macOS, Linux, FreeBSD, and Windows. It’s been trouble- free for me now for about the last 3-4 years (I initially had some strange things happen). There are free and “Pro” versions; so far I haven’t run into anything that would justify Pro.

It’s encrypted (AES-128) peer-to-peer syncing, so there’s no cloud servers involved. It also includes camera syncing. I do have it running on a couple of my servers just to be sure there’s always a remote peer available, but I don’t think this wouldn’t matter much to most folks. If you have a supported NAS device, there’s even a client that will keep your shared files and folders on your NAS.

One oddity vs. Dropbox is that the iOS client will only initiate a sync when the iOS app is open. So, for example, if you take some pictures they won’t be saved or show up on your desktop machine until you launch the app.

NAT traversal and dynamic IP addresses are automatically and robustly handled by the Bittorrent protocol. There are no size limits and transfers seem to be quite fast.

https://www.resilio.com/individuals/

2 Likes

Yes, syncthing uses what they call discovery servers to help local peers find each other. Discovery servers do not store any user data, nor do they have the keys to be able to see any data that gets transferred between peers (though as I understand it they wouldn’t see traffic anyway - your machine connects to a number of discovery server and they are used merely for machines to find each other.)

Thanks for the info. That sounds like what Resilio does too. The only problem I could see is if there was any retention of metadata on the discovery servers that could indicate who was talking to whom, when, for how long, etc.

Syncthing has documentation listing what sort of security vulnerabilities that are exposed within a local network, communicating to discovery and relay servers, etc.

https://docs.syncthing.net/users/security.html

The entire documentation doesn’t take much time to read really.

Also, one key difference between synthing and resilio is that syncthing is open source and resilio is proprietary.

1 Like

A big, important difference to me. I didn’t know about Syncthing (thanks, OP!) and I’ll be looking at it as a replacement for Resilio.

Does Syncthing use the cloud and Resilio does not?

Do either require an account?

Diane

Neither use the cloud - they are for syncing your own content between your own devices. Basically you are your own cloud, using your own storage. No account for syncthing; it’s been a while since I used BitTorrent Sync/Resilio, so I don’t know if you need an account.

There used to be a third party iOS client that was supposed to work with syncthing, but it never worked well and it no longer exists. If you need access to the files on iOS then obviously Syncthing is not the solution.

While YMMV, a friend and I spent a couple of years trying to get Syncthing to work reliably over the internet, and finally gave up. Maintaining a connection was finnicky and unreliable for us and we could never figure out why, despite a great deal of time in the documentation and in forums.

While I would have preferred to stay with an open source program, eventually we moved to Resilio Sync, which has been reliable for us over the internet.

If one doesn’t work well for someone, I think it’s worth trying the other.

Again YMMV.