Hacker News new | past | comments | ask | show | jobs | submit login
[dupe] Syncthing: An open source Dropbox replacement (syncthing.net)
68 points by jseliger 65 days ago | hide | past | web | favorite | 41 comments

I've been using the syncthing for years, and in my opinion it's so much better than a solution like Dropbox. If you want, everything can be done on your lan, it offers encryption, compression, and the ton of customizability. You can synchronize directories individually, and ignore certain files. It's from a centralized option like Dropbox, since it's not using a single location to store your files, but if you want a "centralized" set up you can still make it work by using a server which all your clients connect to instead of connecting them individually.

Great project and I would highly recommend giving it a try.

rcloud (https://rclone.org) is great too if you want an open source client solution for syncing to the commercial storage service. If you can setup your own server for rcloud like you'd do with Syncthing, rcloud can be enough.

Syncthing is not a Dropbox replacement, but it is an excellent file syncing system (more similar to BitTorrent Sync). I use it to sync my main source code directories and .emacs.d, and it does a tremendous job of that.

I'm looking at the practicalities of offering a hosted Syncthing service, as I've begun doing something like that just for my company. I think that if commodity Syncthing hosting becomes a reality, Syncthing is basically unbeatable.

I took a quick look at the documentation, and it sounds pretty much like an open source version of BitTorrent/Resilio Sync.

Their documentation mentions they use an open protocol. Is this thing just running on P2P?

it syncs directly between devices. a relay server is only used when the devices can't talk to each other (because thy are both behind a different NAT for example).

that's pretty much the definition of P2P, i'd say.

> because thy are both behind a different NAT for example

More specifically, a case where they are both behind different NATs which both do not respond to UPnP.

No hole punching? Huh.

That too, having never implemented NAT traversal I guess my mind always considered them the same mechanism.

"That too"? From what I can see hole punching is pretty far from being implemented: https://github.com/syncthing/syncthing/issues/4259

Edit: Oh wait this exists https://github.com/syncthing/syncthing/pull/5737

Calling it a Dropbox replacement is inaccurate, it is a decentralised file synchronization system. A Dropbox replacement would be Nextcloud

Most people I know use Dropbox precisely just for that, and little more. For them, Nextcloud would be closer to a Google Drive replacement.

(Yes, I'm well aware Dropbox is way more than file synchronization, but try to change how people use things...)

I've been using syncthing for a couple of years for sharing files between my various devices. Couldn't recommend it more!

I do use Syncthing as a Dropbox replacement because that was my original use case.

My original user case was to sync files between my computers at work and home and it worked perfectly for that. Extremely reliable as others have mentioned.

But today when I started the program on my laptop while Syncthing was running on my computer it suggested the shared folder on my computer to sync. I knew it did LAN sync but I didn't know about the discovery. It was awesome.

Thanks to everyone who created this wonderful software.

While at the start it was just a synching folder, nowadays dropbox’s value proposition is:

- having a client in any mildly popular operating systems.

- having a fast and simple file sharing mechanism with co-workers/clients

- having high quality native apps, in particular on iOS, to the point that until Files came around Dropbox could be seen a make do file manager to switch files between application even locally.

Anything that doesn’t have full native iOS and android support is providing a different service. Let’s just call it another “desktop file synching” service and not a Dropbox replacement.

Hey, sorry to go a bit off topic here, but it has been on my mind a lot and besides Nextcloud (Virtual drive, little supported and imo not great for other reasons) and Seafile (part commercial, confusing package) I haven't been able find any viable solutions for this.

My problem seems simple. I'd like to only really synchronize a few (selected) files and directories, while other files are simply shown as stubs and only downloaded on request.

I've seen that there is a Syncthing explorer that only downloads files on demand. Is it possible to build a hybrid and how difficult would it be?


Syncthing is amazing. Have it running on a few machines. It's been Rock solid for the last 6 months. I primarily use it to sync org-mode files on different machines. The client worked great on Android too when I last used it. Syncthing-fork package from f-droid to be exact.

The web client lacks authentication last I checked. It is far from a Dropbox replacement

You can turn it on in the settings. I have it on a couple of servers.

I’m still looking at Dropbox replacements, is it easier to admin than Seafile? Along with native iOS/Android/win/macOS/Linux clients (not 3rd party)?

It is. The first thing you do is create/select an existing directory on one of the devices to sync. Then you introduce each device (via device IDs/QR codes) to each other one time so they trust each other. Lastly you share the folder with all of the trusted devices.

From there it is entirely fire n forget. The result of folders that just magically sync is not dissimilar to Dropbox.

The plus side is you pay no subscription, you have no limit to how much data you can sync aside from bandwidth and local storage on each device, and you can control oodles of settings you cannot on other more centralized clients.

I don’t see iOS clients, not even third parties. Am I missing something ?

No you are not. I'm using a Nexus 6 (Android) so I was unaware that there is not a native iOS client yet. There are in progress talks to build one but apparently it is a high lift to get done.


Been using it for like 2 years. Extremely pleased.

Is the third-party iOS client working well and trustworthy? Does it hook into the Files app?

Last time I checked the only iOS client was defunct and not even on the App Store. The issue discussing a native iOS app on github is tagged with not-our-bug.


If there's a new client out I'd love to know about it.

How does it differ from Nextcloud?

https://nextcloud.com/compare/ gives a good answer to that.

nextcloud does not support local sync, and it has a bunch of other features that you may or may not need.

but most importantly, i understand that nextcloud needs to be hosted on a public server, and all your devices use a client to connect to that server, whereas syncthing is peer-to-peer (except for the use of a discovery server, or a relay server when needed)

i wonder if it would be possible to drop the requirement of a discovery server. i'd like syncing to work in a LAN without internet access. it should be possible to use zeroconf for the discovery.

i just read in the docs that it is possible to run your own discovery server and to configure the client to use it and also to remove the built-in discovery server list.

There are options in Syncthing's settings to disable both the local and global discovery servers.

you can remove the default discovery server and rely on your own. i'd like to not have a discovery server in the first place. it shouldn't be needed for syncing between machines in the same LAN, nor for syncing with a server on a public network.

the only common situation where a discovery server is needed is to sync between a machine at home and a machine in the office. and in that case, most likely also a relay server is needed since both will be behind NAT.

I've only recently started using Syncthing so I might be wrong, but I think you can not use a discovery server at all. The only requirement is that your Syncthing devices must have static IP addresses configured in their respective settings pages on Syncthing. Once that is done, you can disable both local and global discovery servers in the settings panel.

static ip addresses are a blocker. i want my phone to sync to my laptop when i am traveling, connected to whatever wifi is available, without needing to rely on internet working.

another comment suggests that it should work with avahi/bonjour. if that's the case, that would solve my problem.

Again, not an expert on Syncthing, but I'm pretty sure that Avahi/Bonjour do pretty much exactly what Syncthing's local discovery protocols do.

edit: here's a discussion on GitHub about adding avahi support: https://github.com/syncthing/syncthing/issues/5460

It seems they've dismissed it as unnecessary:

>Avahi as far as I understand is essentially the same as Bonjour/mDNS/dns-sd. Regardless, bonjour is just multicast unicast bla bla thingy, same like we do with local discovery, the only difference is that bonjour/mDNS/dns-sd etc has support in the routers to forward the service announcements to other subnets, which they won't do for syncthings local discovery.

But that thread does have some other information if you want to continue trying to use avahi/bonjour

edit again just to be clear: there's a difference between local and global discovery. Global Discovery is the "discovery server" you're referring to. Local Discovery is simply your device sending an announce packet on your local network with your device ID, so that other Syncthing device's on the same network can see it. Local Discovery does not run a "discovery server". I'm not sure exactly what your requirements are, but I would think that just using local discovery would be what you're looking for, or at least worth looking more into.

yes, local discovery without needing a server is exactly what i am looking for. thank you!

i mentioned avahi/bonjour mainly as a point of comparison for something like it. i don't care about the implementation details as long as it works :-)

Doesn't it use UDP broadcasts for that? Does your lan support stuff like avahi/bonjour?

i didn't see anything in the syncthing documentation about that. that's exactly what i mean. if it can use avahi/bonjour that would be awesome.

it's nice, but not great for old hardware. quite CPU intensive.

Applications are open for YC Winter 2020

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact