Best sync software in my view. The only downside is that there is no good iOS app.
I think the developers made the right decision focusing the software on peer to peer sync (i.e., not expanding to nearby “cloud features”: backup, photos, videos, office, etc).
Syncthing is like the reliable, quiet roommate who always does their dishes, whereas dealing with different file systems feels like trying to figure out who left their half-eaten pizza on the couch.
"The only downside is that there is no good iOS app."
That's a dealbreaker for iOS folks, though.
I hate the mission creep Dropbox has embraced, and would definitely consider something else, but I need access to my stuff on Windows, MacOS, and iOS. Anything that doesn't hit all three notes isn't a contender.
which tool besides syncthing can do automatic backups of my phone? by automatic i mean copy photos and other data to a second device of my choosing as soon as they are created.
the primary use for syncthing on my phone is to make sure data is backed up immediately.
i have yet to find an app that has the resilience and flexibility of syncthing for this purpose.
apart from that the primary issue i have with syncthing is that the app on a device can not tell me if all data in a particular folder is fully copied to the other device. it only tells me if all local folders are complete.
it also gets confusing when you have more than a few devices and sync between all of them. i recently discovered that i had a set up A<->B<->C but A and C were not connected. i never noticed because A and C were always in sync, until device B died. but it took me some time to notice that because i didn't realize that i missed to connect A to C directly.
it would be nice to have some way to get an overview of the whole graph to see what syncs to where.
Is there a way to leverage this software and deploy something like a self hosted Google drive that also allows us to generate public links for sharing ?
It is pretty nice - I've been using it for over a year to sync files between my Windows desktop and 14" M1 Pro.
I've only come across a few hiccups:
- Sometimes MacOS updates "break" Syncthing (fairly easy to fix, just have to re-authorize permissions)
- Sometimes you end up with a (large) file/folder syncing that you don't want to sync.. Trying to sneak in an ignore rule after the fact and delete the file/folder from the device you don't want it on? That usually doesn't go over well.. I usually end up having to pause sync and fix the resulting conflict manually.
There is. Check out Mobius Sync - it’s as fast as PC on foreground and supports background syncing (albeit slower). You do have to pay a little but it’s worth the cost and you get it forever. I use it routinely to sync all my files on PC on the go.
It also phones home by default unless you turn it off (via crash and usage reporting), and in the default vendor-provided state grants arbitrary remote code execution ability to the developer (via unattended auto update which is on by default). Fortunately most distro packages and docker containers disable this dangerous behavior
Syncthing is excellent. I’ve used it for years to keep my development folders synced between mac, linux and windows, and except for some initial figuring out of ignore patterns and the occasional hiccup with filenames that windows can’t handle it has been great at doing what it needs to and getting out of my way.
(I of course also use git, but syncthing lets me choose when I push while still having all my work on all my machines.)
I use it for uploading pictures from my phone to my "private cloud" (an old RaspberryPi) and it works like a charm. I then move the uploaded pictures into organized folders, which also makes it delete the pictures from my phone, thus saving space.
Using resilio (which is NOT open source, of course and is actually kinda abandoned) until they implement selective sync (also "cloud" files browser). This is THE feature that is the deal breaker for me to switch. No, I don't sync hundreds of gigabytes from my personal cloud to my fokken phone, or even laptop, or even work PC. Still want access to all of them on demand.
My workaround with syncthing is to have several smaller folders that I only add to devices as I want them, and a common folder across all devices. It works well enough.
And - yes - a program like Resilio/Syncthing is the paradigm shift to how you use your computers, if you're a serious user and have more than one machine (incl. mobile devices).
Nextcloud also works like this on the phone. Easy to access everything, but the files only get downloaded on-demand. I love it because I also auto-upload my phone pictures, downloads and video, and sync my contacts and todo with it too. And it can share any of the files via url too. Very useful.
On PC, you also selectively sync folders. I dunno about access to all the files though. Definitely works in the browser, but on PC, you either sync the folder or don't.
Been using Syncthing for a year or so to sync plaintext notes across my phone and PCs. Worked great, so then I began using it to sync Retroarch save files between a spare Pixel 2 I use for gaming and my PC. Worked even better! I could play games on my PC, and then continue on the go.
Recently, I switched completely off cloud storage to just using Syncthing and I love it.
Despite some early mis-steps with Syncthing - mostly me just failing to understand how best to use it - I now count it as one of my favourite tools.
Rock-solid, gracefully handles long periods of one or more machines going offline (eg personal use computers in a home network), partly configurable with text files. The way it can be set for one-way syncs also opens up new use cases.
I use it for syncing documents, video capture, certain config files - even my ROM collection to my Steam Deck.
The only place you really shouldn’t use it is on Git repos - something that is probably obvious to anyone who has used a git branch, but worth re-stating. For a simple repo with only a main branch you want on just two machines - eg dev desktop and laptop - you might get away with it for a little while but it’s extremely brittle and will eventually trip you up - through no fault of Syncthing or Git, I should add. Just fundamentally incompatible paradigms.
Used syncthing to:
- transfer executables from my home to a ship (over sattelite link) in Indian Ocean. Much better alternative than sftp.
- sync filesystems while doing on-going (several months of testing) migration from on-prem to mixed cloud (google/azure).
Requires a bit of understanding why conflicts can happen (when using more than 2 hosts), once understood works like a charm. Was never disappointed, solid work.
For iOS, I placed a syncthing folder inside my iCloud directory and it works fairly well.
My MacBook, an always-on Pi, and a few other boxes run syncthing for a directory full of Markdown files that I use with Notational Velocity[0] on Mac and 1Writer[1] (highly recommended!) on iOS. Using it this way for a couple years and it works well, occasionally go through and diff the sync conflict files that slowly accumulate, small hassle that is worth the squeeze IMO.
While syncthing is excellent and I use it backup photos from my phone to my private cloud, it can sometimes glitch and delete files. I haven't got to the root cause yet, so I can't tell you what to do, but there's a way to recover your data in case of accidental deletion by syncthing. Make sure you enable "file versioning" on both your clients and server. I use the "trashcan" option. So in case a file is deleted, syncthing saves it in a folder for a pre-selected number of days instead of deleting it.
Does anyone have experience with Syncthing in high-latency connection scenarios, for example across continents? I need to bring and keep up to date tens of TBs between a couple of servers very far apart (~200ms ping). Almost everything I've tried transfers at a fraction of the speeds possible. The exception is Rclone where I'm able to properly saturate the connection.
Syncthing is amazing. Dropbox was the trail blazer, but then of course became enshittified. Syncthing is everything I could wish for, it's nerdy enough there's knobs to tweak, but it "just works" out of the box and I can install it on my Dad's laptop to back his stuff up etc.
Love, Love, Love Syncthing.
I've used Syncthing in the past to keep different volumes in "sync" in a distributed system. The API was simple enough to plug into an orchestration framework, and for quick/dirty projects it's phenomenal.
Right now I'm actually using it for a very small minecraft server on Fly.io. The game server runs on a "bigger" instance, and there's a web server running on a much smaller (and therefore "free") instance, for displaying the game map and similar things. Syncthing copies the generated squaremap tiles to the webserver, so when the game server is down, the map is still available
I remember reading somewhere that the best software does what it needs to do and then gets out of your way...and it was referring specifically to Syncthing!
I use this to exchange files with my family. We have a shared folder, like "d:\family share", and everyone can drop there whatever they want to share. Works really well with large files, I love it how gracefully it handles network events, like when the laptop drops wifi, or when you make the computer sleep during transfer.
I've been using it for a couple of years. One problem I have is that the idle cpu usage goes up to 10-20% after a while on my Mac. Drops back to ~1% after restarting the app
I sync about two hundred thousands of files without any problems, especially if your aren't changing them all the time. The only issue I can imagine is initial sync with so many files might take a while, even if total size isn't huge.
As for several terabytes, for me it's a bit less than a terabyte in total for all synced folders, but also can't see why it wouldn't scale up. I guess similar, initial hashing might take some time, but otherwise it should handle it well.
I actually have this exact use case. About 25MM files, ~20 TB total. Lot of directories. Many servers (~10), only a few that have the exact same synching file/folder setup (in other words, some servers have only video, some have only code, some have it all, etc, you get it).
It works... pretty well. I won't lie and say it works perfectly with all of our other file utilities and scripts we run, but 95-97% of the time I never think about it.
I use it with SyncTrazor on Windows Server deployments as well as Debian servers and yeah, I could be happier, but I highly doubt there's anything out there that can beat SyncThing overall.
Just know that with that many files the initial scans and DB building will be brutal, and the periodic syncs and rescans will be taxing. Highly recommend getting cheap 1-2U servers with dual sockets and lots of cores/threads - multiprocessing goes a long way in doing the file hashing.
EDIT: I will add that I only use it on servers and not on any client/desktop machines, so I can't vouch for its use there.
that is a hard problem. it depends on how frequently the data changes, because syncthing or any other backup solution may be to slow to keep up. one of my clients eventually switched from rsync to gluster. instead of making backups, gluster writes multiple storage servers in parallel when files are changed, thus ensuring that there are multiple copies right away.
it's not the perfect solution though because when one server is offline for a while and needs to catch up that too is very slow. the only solution there i find is to have enough redundant servers that you can afford to have a server go offline and not worry about getting it back online quickly.
I've been successful with syncthing up to 2tb (never tried higher) with the caveat that I only have it function between two hosts and only one host is the writer.
Litestream author here. I haven't personally tried Syncthing on SQLite databases but I suspect it wouldn't work well. Syncthing doesn't have any concept of SQLite's locks so even in the best case scenario where you only have one writer and the replica is read-only, the reader on the replica would have pages changed out from under it by Syncthing and that would appear corrupt to the reader.
One case where you could make it work is if you sync'd across multiple computers but only used one at a time. I mean, it's still dangerous but it seems possible.
Syncthing "just" syncs files. Near instantly, which could mean a delay of a few seconds to maybe even a minute. And it won't de-conflict changes beyond saving the "bad" version in a file like `sqlite.db-syncthing-conflict-20230101T043044`. (Not an issue if you only have one host changing the database file)
I like it and IMO it does what it does well. But litestream can "Continuously stream SQLite changes" (pulled from https://litestream.io/, I've never heard of it before). It seems like that's litestream's killer feature, and I think syncthing would leave you wanting.
Not really, it can't resolve a conflict inside the file and can't enforce a distributed lock on changing the file. Ultimately there will be ways for the file to corrupt or get out of sync, especially if multiple writers are present. There might be a way to make things work better with SQLite's more recent WAL mode but I'm not familiar with it.
[+] [-] aborsy|2 years ago|reply
I think the developers made the right decision focusing the software on peer to peer sync (i.e., not expanding to nearby “cloud features”: backup, photos, videos, office, etc).
[+] [-] ajd1988|2 years ago|reply
Syncthing is like the reliable, quiet roommate who always does their dishes, whereas dealing with different file systems feels like trying to figure out who left their half-eaten pizza on the couch.
Just needs the iOS app!
[+] [-] ubermonkey|2 years ago|reply
That's a dealbreaker for iOS folks, though.
I hate the mission creep Dropbox has embraced, and would definitely consider something else, but I need access to my stuff on Windows, MacOS, and iOS. Anything that doesn't hit all three notes isn't a contender.
[+] [-] em-bee|2 years ago|reply
the primary use for syncthing on my phone is to make sure data is backed up immediately.
i have yet to find an app that has the resilience and flexibility of syncthing for this purpose.
apart from that the primary issue i have with syncthing is that the app on a device can not tell me if all data in a particular folder is fully copied to the other device. it only tells me if all local folders are complete.
it also gets confusing when you have more than a few devices and sync between all of them. i recently discovered that i had a set up A<->B<->C but A and C were not connected. i never noticed because A and C were always in sync, until device B died. but it took me some time to notice that because i didn't realize that i missed to connect A to C directly.
it would be nice to have some way to get an overview of the whole graph to see what syncs to where.
[+] [-] princevegeta89|2 years ago|reply
[+] [-] Casteil|2 years ago|reply
I've only come across a few hiccups:
- Sometimes MacOS updates "break" Syncthing (fairly easy to fix, just have to re-authorize permissions)
- Sometimes you end up with a (large) file/folder syncing that you don't want to sync.. Trying to sneak in an ignore rule after the fact and delete the file/folder from the device you don't want it on? That usually doesn't go over well.. I usually end up having to pause sync and fix the resulting conflict manually.
[+] [-] gcr|2 years ago|reply
[+] [-] renonce|2 years ago|reply
There is. Check out Mobius Sync - it’s as fast as PC on foreground and supports background syncing (albeit slower). You do have to pay a little but it’s worth the cost and you get it forever. I use it routinely to sync all my files on PC on the go.
[+] [-] Reptur|2 years ago|reply
[+] [-] sneak|2 years ago|reply
[+] [-] riceart|2 years ago|reply
[+] [-] Joeri|2 years ago|reply
(I of course also use git, but syncthing lets me choose when I push while still having all my work on all my machines.)
[+] [-] dariosalvi78|2 years ago|reply
[+] [-] ceeam|2 years ago|reply
[+] [-] vorpalhex|2 years ago|reply
[+] [-] xcdzvyn|2 years ago|reply
[+] [-] ceeam|2 years ago|reply
[+] [-] npteljes|2 years ago|reply
On PC, you also selectively sync folders. I dunno about access to all the files though. Definitely works in the browser, but on PC, you either sync the folder or don't.
[+] [-] tener|2 years ago|reply
[+] [-] deluxeroyale|2 years ago|reply
[+] [-] toastercat|2 years ago|reply
Recently, I switched completely off cloud storage to just using Syncthing and I love it.
Anyway, this is great software.
[+] [-] darkteflon|2 years ago|reply
Rock-solid, gracefully handles long periods of one or more machines going offline (eg personal use computers in a home network), partly configurable with text files. The way it can be set for one-way syncs also opens up new use cases.
I use it for syncing documents, video capture, certain config files - even my ROM collection to my Steam Deck.
The only place you really shouldn’t use it is on Git repos - something that is probably obvious to anyone who has used a git branch, but worth re-stating. For a simple repo with only a main branch you want on just two machines - eg dev desktop and laptop - you might get away with it for a little while but it’s extremely brittle and will eventually trip you up - through no fault of Syncthing or Git, I should add. Just fundamentally incompatible paradigms.
[+] [-] zqna|2 years ago|reply
[+] [-] n8henrie|2 years ago|reply
My MacBook, an always-on Pi, and a few other boxes run syncthing for a directory full of Markdown files that I use with Notational Velocity[0] on Mac and 1Writer[1] (highly recommended!) on iOS. Using it this way for a couple years and it works well, occasionally go through and diff the sync conflict files that slowly accumulate, small hassle that is worth the squeeze IMO.
[0]: https://notational.net/ [1]: https://apps.apple.com/app/id680469088
[+] [-] zapdrive|2 years ago|reply
[+] [-] Arn_Thor|2 years ago|reply
[+] [-] 5e92cb50239222b|2 years ago|reply
Although in your case I would probably use ZFS snapshots through syncoid, they'd be much more efficient than anything else.
[+] [-] otbutz|2 years ago|reply
https://github.com/syncthing/syncthing/pull/8868
[+] [-] aesh2Xa1|2 years ago|reply
Garage claims performance across long distances (up to 200ms per their front page).
It's not a POSIX file system. Instead it's more like S3. You could put something in front of it, perhaps, to make it POSIX.
[+] [-] muppetman|2 years ago|reply
[+] [-] paradox460|2 years ago|reply
Right now I'm actually using it for a very small minecraft server on Fly.io. The game server runs on a "bigger" instance, and there's a web server running on a much smaller (and therefore "free") instance, for displaying the game map and similar things. Syncthing copies the generated squaremap tiles to the webserver, so when the game server is down, the map is still available
[+] [-] mteam88|2 years ago|reply
[+] [-] barbs|2 years ago|reply
[+] [-] npteljes|2 years ago|reply
[+] [-] charleshan|2 years ago|reply
[+] [-] thewataccount|2 years ago|reply
I haven't seen a ton of great options unfortunately :/
[+] [-] karlicoss|2 years ago|reply
[+] [-] icelancer|2 years ago|reply
It works... pretty well. I won't lie and say it works perfectly with all of our other file utilities and scripts we run, but 95-97% of the time I never think about it.
I use it with SyncTrazor on Windows Server deployments as well as Debian servers and yeah, I could be happier, but I highly doubt there's anything out there that can beat SyncThing overall.
Just know that with that many files the initial scans and DB building will be brutal, and the periodic syncs and rescans will be taxing. Highly recommend getting cheap 1-2U servers with dual sockets and lots of cores/threads - multiprocessing goes a long way in doing the file hashing.
EDIT: I will add that I only use it on servers and not on any client/desktop machines, so I can't vouch for its use there.
[+] [-] em-bee|2 years ago|reply
it's not the perfect solution though because when one server is offline for a while and needs to catch up that too is very slow. the only solution there i find is to have enough redundant servers that you can afford to have a server go offline and not worry about getting it back online quickly.
[+] [-] vorpalhex|2 years ago|reply
[+] [-] bityard|2 years ago|reply
[+] [-] alexbezhan|2 years ago|reply
[+] [-] benbjohnson|2 years ago|reply
One case where you could make it work is if you sync'd across multiple computers but only used one at a time. I mean, it's still dangerous but it seems possible.
[+] [-] system33-|2 years ago|reply
I like it and IMO it does what it does well. But litestream can "Continuously stream SQLite changes" (pulled from https://litestream.io/, I've never heard of it before). It seems like that's litestream's killer feature, and I think syncthing would leave you wanting.
[+] [-] qbasic_forever|2 years ago|reply
[+] [-] aynyc|2 years ago|reply
If not careful, I think you'll hit, particularly 1.2, 1.4.
[+] [-] alexbezhan|2 years ago|reply
[+] [-] tech234a|2 years ago|reply
[+] [-] gsich|2 years ago|reply