Great project and I would highly recommend giving it a try.
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.
Their documentation mentions they use an open protocol. Is this thing just running on P2P?
that's pretty much the definition of P2P, i'd say.
More specifically, a case where they are both behind different NATs which both do not respond to UPnP.
Edit: Oh wait this exists https://github.com/syncthing/syncthing/pull/5737
(Yes, I'm well aware Dropbox is way more than file synchronization, but try to change how people use things...)
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.
- 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.
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?
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.
If there's a new client out I'd love to know about it.
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)
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.
another comment suggests that it should work with avahi/bonjour. if that's the case, that would solve my problem.
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.
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 :-)