I’d like to sync my markdown notes between devices (laptop and phone), which service is better: Nextcloud or Syncthing? Any other important idea I should know?, like latency times, or maximum number of synced devices, what if I edit the same note from both places without internet and then both get connected to a network… For example, I know Nextcloud let me have a history of the notes.
Syncthing is fantastic… once you get it set up.
First, the rough stuff. Syncthing is not user friendly to set up and use. If you want to sync something, you have to go to every device you want to share with and enable the share… for every folder. You can get through this by doing the Dropbox method of just sharing a single folder, but that will have it’s own challenges if you want to only share certain files with certain devices or apply different versioning methodologies. All in all, it can get cumbersome.
Secondly, it’s a dumb sync tool, meaning that it’s not content aware. In your “editing the same note” example, Syncthing will fail. You’ll get a conflict notification and be prompted to to pick which version is correct… and even that will be buried in Syncthing’s interface that you’ll have to go looking for. That specific scenario isn’t what it was designed for.
Lastly, Syncthing will occasionally get hung up on syncing a file and clearing the error isn’t straight forward.
Alright now for the good stuff. Once you get through all the above stuff, it just works. I throw it on every computer, phone and tablet I own, and I get (mostly) worry-free backups of all my important files synced to my NAS. And it has saved me MANY times.
There are multiple versioning methods, so you can be sure that if you accidentally delete something, it’ll be there for you. You can set it to encrypt files on specific destinations, so if you wanted to sync to a VPC, you can ensure your folders are protected from prying eyes. You can exclude files, so those annoying .DS_Store files that macOS throws around don’t end up on your other devices.
I use it to backup my Obsidian vault, but I don’t use it to sync my vault to other computers. I pay for Obsidian Sync for that.
best description I have ever read of syncthing. they should put this in their readme or about page. describes the pros & cons in an honest way. I’ve had all the problems you describe and will probably have them again in the future, be confounded, be frustrated.
I get (mostly) worry-free backups
except this; it’s sync not back up. ;) but it is very backup-like and in some situations does the job as well or better than backups
I <3 syncthing nevertheless
Sync isn’t backup, but proper versioning can be a very simple backup.
Thank you so much for such a complete answer!! I think I’ll give a try! BTW, why using Synching for different devices but not different computers?
I mostly agree with @shadejinx. I would add that when editing the same note on two separate devices syncthing will at least fail kind of gracefully in that you’ll whatever.md will still be there but you’ll see an additional whatever-conflict-hash.md along side it so you can easily fix it up. Synctrayzor for windows will give you a nice notification and UI with which to resolve.
Nextcloud is great but it’s a real behemoth. Loads of stuff you don’t need.
IDK what you mean exactly but I sync between computers and devices just fine.
I sync multiple computers but not directly. Everything goes to the NAS and then anything I want to share comes from the NAS. That way versioning is on one device and not spread out all over.
I use Joplin (hosted on my home Nextcloud server) and its very good, so far. I haven’t had it long. Nextcloud also has a native Notes app that is decent but not very featureful. Joplin works well for me, as I already had a Nextcloud instance.
Syncthing has been much more reliable for me. It syncs extremely fast, picks up changes nearly instantly, and just works so well I never really even think about it.
Nextcloud has caused outright data loss once for me (all of my data was corrupted by nextcloud and then synced to my devices, had to completely recover from a backup), and broken due to updates several other times. It’s overall very slow, and a pain to maintain through updates.
what if I edit the same note from both places without internet and then both get connected to a network…
Syncthing will handle duplicates by renaming the older copy, and also has modes for versioning and deleted file recovery that you can enable and customized how you want to.
Thanks, I’ll give a try! I was thinking maybe I could use both: syncthing for devices and nexcloud to have a backup
Nextcloud isn’t a backup solution, so I wouldn’t go that route.
For backups look at Restic, Kopia, or Borg. They work great and are very lightweight.
borg is fab; i don’t think there is a mobile component tho?
restic iirc is complicated and more advanced
don’t forget rsync which is sync but is the basis of various back up tools
Why do you think that Nextcloud is not a good backup solution?
Backups means you have history snapshotted in time.
Nextcloud does have done simple file versioning and a “trash” for deleted files, so you could get some simple protection from mistaken deleted files. But it’s more “best effort” than “designed for backups”.
I had some files which rot away over the years, who knows which update borked them, i use it as a cache for real backups for important files
Because it’s a file sync program, not backup. There’s a huge difference between the two.
Backups are a snapshot of your files at a specific point in time, generally backups will be done incrementally and then compressed and deduplicated, so multiple versions of a file don’t take up massive amounts of space. Once a backup is taken it isn’t modified again, so you can just roll back to a point in time and restore your files exactly as they were.
Plus, Nextcloud has had at least one bug in the past that corrupted all the files stored in it, so if you didn’t have a real actual backup in place you were completely screwed because all the versions were corrupted too.
A self hosted Joplin sync server is also pretty nice.
does it support plain markdown?
IME joplin has its own format
I use syncthing, it works fine, but sometimes it doesnt sync, I have to open syncthing on my phone and also on PC to triger sync. If I open same file on both devices it just creates copy so you end up with 2 files Edit: I use obsidian for notes
Logseq and syncthing
I use these for both work and personal life - and you can edit on multiple devices…
Now, the caveat there is, it’s not entirely realtime editing …
logseq updates the display when the underlying markdown file changes, so you can edit on multiple devices if you let them sync which takes a second or so (setup that syncthing folder to watch the filesystem, instead of periodic)
So, I edit a note on my phone, walk ovee to a laptop then see the changes come in and edit some more… pick up the phone, unlock it, probably ready to edit again…
If I leave the house, syncthing could sync over the internet, but I’ve not aet that up… so in the unlikely chance that someone edits the file(s) on my laptop AND I edit on my phone, then syncthing would give me 2 files which others have explained well.
BeyondCompare or meld or… vim… can do simple comparisons in these cases.
Been doing this for a while…Just my 2p
I use syncthing for personal and work, and it’s great. Having said that I’ve found it struggles with versioning i.e. editing a document from multiple devices.
Look into something like Standard Notes for cross platform markdown editing. It’s e2e encrypted, works great, the dev is very responsive. Ymmv but I really like it, have it on every device I own and use it daily.
I’ve also just used a private git repo for editing docs from multiple devices. Once you get it set up it’s effortless, and most ide’s are extremely fun to use as text editors.
most ide’s are extremely fun to use as text editors
my kind of fun
kindred spirits
Git
Then git pull rebase and commit. Done
Does not have great UX on phones though.
I made some Termux shortcut scripts in bash for it. Works well, but not for everybody ;)
Never had merge conflicts I take it 😄
My phone script is quite simple, and I set it up on cron, so I don’t get out of state very often. I handle if there could be conflicts via script on my Linux pc with stash and pull etc. Automated cron also
Yeah, and for that reason, I opted for syncthing instead of Git for this use case.
I’ve not needed to deal with a conflict, it’s automated.
But what’s the latency with syncthing or its instant?
Syncthing uses inotify to watch for changes, so it’s pretty much instant
I’ve never used syncthing, but nextcloud has become a major part of my life in part because of the notes app, which I use for my work log, as well as nextcloud news, which lets me read news from any device and which articles I’ve read are tracked so my news feed is actually news. A third thing that’s neat is I keep my windows user folders in my nextcloud folder so my computers have the same synchronized user folders – if I download a file on my main PC it shows up on my travel laptop and vice versa, and if windows crashes I don’t lose the files in my user folders, I just resync.
Since I use obsidian.md I installed a community plugin to sync to onedrive.
For other stuff I use syncthing.
Personally I’d just use something like trilium and call it a day.
Nextcloud doesn’t sync in the background iirc, but there are 3rd party apps you can use that will. It’s great other than that.
I am not sure if syncthing syncs in the background or not, but worth testing. Nextcloud is probably the more complete package but it depends on if you need or want anything of its other features.
It does. It’s configurable on a per-sync-folder basis.
Not sure why you’d use nextcloid over ST for just sync. ST takes 5 minutes to setup.
I also recommend for:
Windows - SyncTrayzor
iOS - Möbius (costs like $10, but can do background sync)
Android - Syncthing-Fork, it moves most of the sync conditions to within each sync folder/job, for more granular control.
Nice thing about ST is its not server-based. It’s machine to machine. That is, you don’t setup a server first, you just install ST and send your device id to another machine and they connect.
I keep hundreds of gigs synced between several computers and several phones. It’s become pretty messy, because I was lazy.
But it rarely has an issue, and it’s pretty good at telling you what the issue is. The desktop version is a little easier to handle errors than mobile, but that’s mostly because mobile client is simpler.
But within the mobile client there’s an option to switch to the web client view which is much more detailed. I only have to use that once or twice a year, and usually because I’ve done something like reset a phone so a share doesn’t see that phone anymore and is confused.
Don’t take my opinion for notes, I don’t use any of the notes features. However, I can say Nextcloud is just a pain to maintain, even their docker containers. It’s bulky, it’s weirdly built, you’re constantly modifying php config files. So, that may weigh in on your decision.
I have the exact opposite experience but I use their snap which has been updating itself without a single problems or me needing to change any config file for the last 4 years or something. I never need to do anything, so for me the maintenance is the best part of Nextcloud.
I hate that its web frontend is so mega slow that it takes 8 seconds just to log in.
I still use it for calendar, documents, address book and specifically notes too, but I only use external apps for that not the web frontend and the apps on the PC and mobile phone are nice and fast.
I use Syncthing for synchronizing my password manager database. And there the maintainance is also very easy, it updates itself with the system and runs in the background without me ever needing to go to the webfrontend.
I’d say if it’s only for one thing, then I’d go with Synthing, because it does not need a server. If I’d use more features especially calendar and address book and perhaps even to share documents with other people then I’d go with Nextcloud.
I guess for me it’s mostly docker related. My number one annoyance is that it goes against docker convention to have configs be persisted, or really much of anything be persisted if it can be helped. I just migrated mine and configs belong in environment variables, and it took me a long time to realize that those configs aren’t updated if the docker’s environment variables are updated. That took me way too long to realize. So it’s functional, but doesn’t follow best practices. I guess I’m just a bit salty that I lost quite a few hours on it
My number one annoyance is that it goes against docker convention to have configs be persisted
That’s not against docker conventions at all. It’s exactly what volumes are for. They even tell you which directories to mount as volumes to maintain your configuration.
Then don’t use the docker? I have had good luck with the standalone on my own server, as well as the .ova they provide (on proxmox.)
I probably ought to try the snap again but last time I tried, it for borked.
deleted by creator