Syncthing works brilliantly! The web UI is excellent, warns you when you're about to do something ill-advised, and stuff like QR codes makes adding clients and folders fairly easy. The separation between folders and devices is handled well. You can easily have half a dozen shared folders between several computers with any mix-and-match combination including which one is 'authoritative' and so on.
I used to use it on Android to keep my 'camera roll' synced to my desktop. I preferred setting the ignore file to exclude android's thumbnails directory, but otherwise it worked great. I'd take a photo with my phone and almost before I could open the shortcut on the desktop, boom, the photo was there, since the android client detects changes in the filesystem.
I also used it to sync my password database, and a cross-platform notebook app's database. Worked flawlessly for all of them.
Ditto for a folder shared between my MacOS laptop and Windows desktop.
Lots of controls, especially in the forked android client. Don't want the sync client to run on any network other than your home network? Done. Don't want your syncthing clients to try and do NAT transversal / discovery outside whatever network it's on? No problem.
The biggest bummer is that there's no iOS client. Had to switch to Nextcloud, which so far has been working OK, but the number of people that have problems with the iOS client is quite high (problems such as syncs being so slow it takes days to sync a camera roll), and it's generally sluggish and doesn't work in the background (yes, I know, Apple's fault.) However, Nextcloud does allow me to sync contacts and calendars (I think. I haven't tried to set it up yet.)
One warning: Sycnthing really does not like it when you delete the dotfile folder inside the shared folder(s). Don't do that :)
I would not qualify the web UI of "excellent" : understanding the relations between paired devices, remote devices, folders you want to sync, and so on is harder than what it should be.
Likewise, the android application is so bad the best way is to open the web UI on your phone to do stuff (and sometimes, it's the only way to achieve some goals).
There is definitely a lot of room for improvement for easier adoption, yet, this is one of the few sync app that work for me, even behind NAT, with closed ports, and so on.
The first thing I really like about syncthing is that it does what it is supposed to do very well (besides very seldom glitches), while not being dropbox, nextcloud, owncloud, etc. but p2p and entirely independent of any external tools/devices/etc.
The second thing I like is that it is a successful FOSS project, meaning it works and is being regularly and often improved by its users.
Your comment, as helpful as you may feel it is, is contradictory to my second - very strong - feeling.
I really think to UI works quite good, and by god, if a better solution is so obvious to you, why haven't you proposed it yet, or - god forbid - made a merge/pull request??
Perhaps "entitled to ask" is a poor choice of words. Yes, freedom of speech allows bipson to ask about contributing. It still comes across as entitled. The question was clearly laden with some expectation that Reventlov should go do work for syncthing instead of sharing an opinion on Hacker News.
We're just here having a conversation. The expectation that a user MUST do something for an open source project because they have an issue is a tired take. It's not as though Reventlov is blowing up Syncthing's development team with demands about how to make it better. And, for all any of us know, Reventlov may have already submitted PRs or opened issues for Syncthing. Or, it could be the case that there's a different piece of software suiting their needs better, and that's fine. Or, Reventlov maybe just doesn't possess the technical skill to contribute in that way. And that's okay too.
Bludgeoning people with an open source virtue-stick for sharing an opinion isn't helpful.
But just as much as you consider an "expectation that a user MUST do something for an open source project" is a tired point, I consider the endless ranting by entitled FOSS users an obnoxious trend.
And btw. I never said something about "must", I asked why not choosing - OK, maybe strongly suggesting - another option.
Maybe you took my question the wrong way, but (maybe just as much misguided) I took the "opinion"/"discussion" not as opinion, but for the lack of any helpful suggestion as merely a rant.
I was raised not to needlessly complain about free things, without considering to take things into my own hands.
And even if you don't know how to code, suggestions and discussions are better had in an issue tracker, right? Otherwise, what's the point?
If one is not a user, and considers something else to be better, why voice such a strong opinion?
> I consider the endless ranting by entitled FOSS users an obnoxious trend.
There is a massive difference between voicing your opinion about something in a public discussion forum and hounding the developers of a project because they don't fix bugs or implement new features on your say-so. One of those is making conversation, the other is entitlement.
> Maybe you took my question the wrong way, but (maybe just as much misguided) I took the "opinion"/"discussion" not as opinion, but for the lack of any helpful suggestion as merely a rant.
Sometimes, you can recognize that something is bad without knowing the best way to fix it.
> I was raised not to needlessly complain about free things, without considering to take things into my own hands.
Okay, so that was how you were raised and how you operate. I don't see the reply as needless complaining. It is a critique of some specific issues. It was constructive criticism, because it presented a specific set of things that could be improved upon. I happen to agree with those criticisms, even though I generally think Syncthing is a great piece of software.
> And even if you don't know how to code, suggestions and discussions are better had in an issue tracker, right? Otherwise, what's the point?
What's the point that any of us are here talking about anything?
> If one is not a user, and considers something else to be better, why voice such a strong opinion?
Because people make conversation and have opinions. Are you familiar with socializing? It's okay to not like something. It's okay to not like _parts_ of something.
There is a discussion being had. This guy was sharing his opinion about syncthing. That still doesn't obligate him to open a bug or do any work for the project.
Okay, I guess I should qualify that and say that there's no iOS client that is actually practical to use.
NextCloud integrates into iOS's Files app pretty tightly as a 'storage provider' or whatever Apple calls it. End result is that my password database is magically up-to-date whenever I go to use it in my password manager, probably because Files sees an app trying to access the file, pings NextCloud to say "yo, is this shit up to date?", and then my password manager opens the file. I don't have to worry myself about background sync and such.
I didn't have to do jack shit to open the database the first time; the built-in iOS file-picker that came up let me select nextcloud as a source, and then my password database. Done. It is two taps to get that database open now - one to hit "passwords" in the keyboard area, and the second is me TouchID'ing to unlock the database.
Looking over the Mobius faq, it appears to be vastly inferior, with no guarantee your files are synced at any point in time, and you have to manually push files from Mobius to Files, and then access them in apps from there:
> iOS apps cannot access each others’ files. This means you will need to copy files in and out of Syncthing using the Apple Files app.
I wouldn't do that even if the software was free. And they want me to pay for that? No?
I sometimes have the same problem with Android apps that store their files into their private folders, protected by the OS. I can't use Syncthing to backup those files to my computer. Either the app lets me configure the storage location to something that the other apps can access or I uninstall it and use a different app that lets me do that. If the OS gets into the way of what I want to do, oh well, that's one of the reasons why I'm using Android and not iOS. Android gets in the way but not at much as iOS seems to do.
A better way should be creating a whitelist of apps that can access the storage of other apps. Gpx tracker app? Add Syncthing to its whitelist, and the file manager I use instead of the system one.
It's Apple. You are of course welcome to pay their exorbitant development fees yourself, go through the insane review process and publish your own competing app!
You can't publish your own competing app. The desired behaviour requires running a background service (not allowed) that watches arbitrary folders (not allowed).
Third party iOS apps do in fact have access to background tasks. There’s even a variant dedicated to longer-running tasks, like lengthy file syncs.
The difference is that instead of having an ever-running daemon, the developer schedules tasks with the system, and system decides when to run them based on network availability, battery charge, etc as well as the app’s behavior (badly written/inefficient background tasks and frequent high intensity task requests are penalized).
It may be the case that file eventing now works, but a quick check with an iOS dev friend suggests that the filesystem sandboxing is too restrictive to be meaningful anyway.
Further on this issue, consider that a functioning syncthing client is a node in a p2p network, so must be able to advertise and listen to requests in the background as well as the background jobs that NextCloud requires (as NextCloud is centralised it doesn't need node level co-ordination) - so a partially working NextCloud client is good enough, but a partially working Syncthing client is woefully broken.
Full agreement the above sounds silly. So really it comes down to line between the responsibility of the consumer, and the duty of the product creator to say what the product can or can not do.
If you really care about replacing parts in your car like the satnav, should you need to do research before buying instead of assuming it works that way?
Or should we have rules that all sat navs need to be replaceable so consumers don't need to do that?
I honestly can't draw the line myself, I just try my best to identify what I want in a product before purchasing. Especially huge purchases like a car.
For engaging in anti-competitive behavior. Forcing a single App Store on an os is much less draconian than offering a broken interface to basic OS functionality in order to prop your own product above others. Imagine if Windows downclocked whenever you wanted to use an office alternative. This is not much different.
correction: 30% of your revenue for certain business models. Still too much, but let's at least be somewhat accurate. Plenty of apps make tons of money on the App Store without every paying a dime to Apple beyond the $99.
Files sees an app trying to access the file, pings NextCloud to say "yo, is this sh* up to date?"
What does it do if you're not connected? Don't mind it checking whether the local copy is up to date, but I'd be concerned if the sync trigger is you opening the app.
How is "you have to manually copy files around every time you want to use them" "works flawlessly"? Have you not seen how stuff is supposed to work with cloud storage providers in iOS? Because it's indistinguishable in function from local on-device storage.
Yes that was annoying to me at first. The official client seems to still get updates, so you don't immediately see anything wrong with it, but has a couple really annoying issues that have been fixed in Syncthing-fork for years.
I tried Syncthing, then I tried Nextcloud, and for the goal of just syncing camera roll and backing up my password manager, they were both a bit of a hassle.
Now I use Minio with FolderSync (Android App, I use the paid one, but the free is perfectly capable) to backup my camera roll and I wrote a very simply WebDAV server in Go to backup my (Android) password manager DB which only supports WebDAV, I sit NGINX in front of them both to terminate TLS and to handle basic auth for the WebDAV server, though I could easily implement basic auth in that too (again, my password manager only supports basic auth).
If someone can suggest a better password manager for Android with a good UI, good integration (e.g. auto-fill), has a Linux desktop app and can backup to WebDAV or Minio I'd jump in a heartbeat.
I considered Bitwarden, but I don't want to run the Mono/Windows server container, and I don't want to rely on the Rust port which is behind in features and is susceptible to the upstream breaking APIs.
Keepass2Android/KeepassDX with Nextcloud? I don't understand how running Minio with a custom built webdav server is easier than Nextcloud has integrated WebDAV access.
I used to run Nextcloud. Nextcloud did a bunch of stuff I didn't need, is a larger attack vector and usually took an entire afternoon/evening every time I needed to do an upgrade. So far I spent less time setting all this up, and writing a WebDAV server than any one upgrade of Nextcloud took me.
Minio is zero-maintenance, if it needs an upgrade I just pull a newer Docker image. My WebDAV server is fewer than 100 lines of Go and extremely easy to maintain.
I run Nextcloud in a docker image (on unRaid). Upgrades are a docker pull away too, never had any issues.
I use Nextcloud on my phone (Android) to backup my camera too, the automatic sync is wonderful and works well. It does stuff I don't need too, but it's pretty easy to use and setup and it integrates well with the OS (Windows and Mac at least).
> I considered Bitwarden, but I don't want to run the Mono/Windows server container, and I don't want to rely on the Rust port which is behind in features and is susceptible to the upstream breaking APIs.
Seems like alternative DB providers is in alpha stage right now.
Mono and netcore is not the same, netcore is one of the more wonderful things I've worked with if I'm to be completely honest. Then again, I also kinda like PowerShell
The thing with the .stfolder file is annoying as hell. I use it to sync the build output folder for my Android builds but sometimes I need to run a clean and it wipes out the folder. Syncthing's developers for whatever reason just can't seem to grasp that sometimes I could careless about a folder's history and just need my files synced.
My fix it to run `touch .stfolder` in the build directory which fixes it but seriously Syncthing? Just put in some reasonable defaults and call it a day.
yes the .stfolder is a minor nuisance most of the time, but it's a lifesaver if for some reason or other your folder gets removed or a mounted device is no longer there, or one of a hundred other things that can go wrong with a folder.
then you _really_ want syncthing to stand back and hold its hands up, instead of syncing deletion events to all connected devices or sending all your friends your entire home directory or something like this.
imo, it's a good safety tradeoff, and like so many of those (e.g. short vs long passwords) they might seem annoying most of the time, but prevent incredible damage that _one_ other time.
I understand all these things because I've done this professionally for quite some time. However I've just explained that this is my build directory which means it can be deleted and I won't care. Every build quite literally overwrites all the output files so it's destructive by it's very nature. Syncthing already has an option where it won't sync deletes as well. I just don't understand why it must absolutely have an stfolder path. There should be a destructive sync option where it won't care and will just sync.
Yea but it doesn't matter. The clean from gradle deletes the folder entirely and creates a new one in it's place. I don't care. Just sync the path. That's all I need. Instead Syncthing literally stop syncing ALL folders because "oh no something went wrong".
For whatever reason open source software always has these weird edge case engineering "solutions" that really aren't that great. If someone was actually a paying customer and asked for this the engineers would just figure something out instead of making excuses for why it is the way it is.
If a build system produces an adverse outcome, it is often possible to customize it so that it does not delete things which you would rather not have deleted. (I've no idea whether this is specifically easy or not in gradle)
Commercial products usually aim to satisfy its paying customer's needs. FOSS is, not always but most times, about satisfying one's own needs. So it won't be that easy to change a developer's mind who is determined about their way of doing things even if it is not the best way for others.
It's also kind of arrogant of FOSS advocates to say "just make a pull request" whenever there's criticism of anything FOSS. You could spend weeks working on something only to have the maintainer say no and I've seen this happen and every time it does I just think to myself "welp there's another person who will never make another pull request again".
As a FOSS maintainer I always try to make it clear that before trying your luck with a PR, you should always first engange in a conversation with me.
Seems kind of obvious to my eyes, asking, talking, discussing about some change before doing the actual work. But as it seems, "obviousness" is in the eye of the beholder...
That's fine and all except that the typical refrain from internet folks is that if something is free then you are not allowed to critique, comment, or request changes. If you really care about freedom you can handle a little bit of online banter.
> The clean from gradle deletes the folder entirely and creates a new one in it's place.
That's really bizarre behavior. If the folder has no files or zero byte files then it might make sense, but if gradle's deleting non-empty files that don't concern it, that seems to be more of a problem with gradle.
I get the point though; if there's no versioning, why bother having an empty folder?
My iOS Nextcloud is stealthily paused when in the background (a few kb/s e.g. just enough for notices) as I think most iphone apps. So it is not competitive with apple backuo.
I used to use it on Android to keep my 'camera roll' synced to my desktop. I preferred setting the ignore file to exclude android's thumbnails directory, but otherwise it worked great. I'd take a photo with my phone and almost before I could open the shortcut on the desktop, boom, the photo was there, since the android client detects changes in the filesystem.
I also used it to sync my password database, and a cross-platform notebook app's database. Worked flawlessly for all of them.
Ditto for a folder shared between my MacOS laptop and Windows desktop.
Lots of controls, especially in the forked android client. Don't want the sync client to run on any network other than your home network? Done. Don't want your syncthing clients to try and do NAT transversal / discovery outside whatever network it's on? No problem.
The biggest bummer is that there's no iOS client. Had to switch to Nextcloud, which so far has been working OK, but the number of people that have problems with the iOS client is quite high (problems such as syncs being so slow it takes days to sync a camera roll), and it's generally sluggish and doesn't work in the background (yes, I know, Apple's fault.) However, Nextcloud does allow me to sync contacts and calendars (I think. I haven't tried to set it up yet.)
One warning: Sycnthing really does not like it when you delete the dotfile folder inside the shared folder(s). Don't do that :)