this post was submitted on 07 Dec 2023
52 points (96.4% liked)

Selfhosted

40353 readers
437 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 1 year ago
MODERATORS
 

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.

all 44 comments
sorted by: hot top controversial new old
[–] [email protected] 24 points 11 months ago (2 children)

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.

[–] [email protected] 2 points 11 months ago (1 children)

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

[–] [email protected] 3 points 11 months ago

Sync isn't backup, but proper versioning can be a very simple backup.

[–] Moshpirit 1 points 11 months ago (2 children)

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?

[–] [email protected] 2 points 11 months ago

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.

[–] [email protected] 1 points 11 months ago

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.

[–] AtmaJnana 9 points 11 months ago* (last edited 11 months ago)

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.

[–] AbidanYre 4 points 11 months ago (1 children)

A self hosted Joplin sync server is also pretty nice.

[–] [email protected] 1 points 11 months ago (1 children)

does it support plain markdown?

IME joplin has its own format

[–] [email protected] 4 points 11 months ago* (last edited 11 months ago) (1 children)

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.

[–] Moshpirit 1 points 11 months ago (1 children)

Thanks, I'll give a try! I was thinking maybe I could use both: syncthing for devices and nexcloud to have a backup

[–] [email protected] 3 points 11 months ago* (last edited 11 months ago) (2 children)

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.

[–] Moshpirit 1 points 11 months ago (3 children)

Why do you think that Nextcloud is not a good backup solution?

[–] [email protected] 2 points 11 months ago

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".

[–] [email protected] 1 points 11 months ago

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

[–] [email protected] 1 points 11 months ago* (last edited 11 months ago)

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.

[–] [email protected] 1 points 11 months ago

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

[–] [email protected] 3 points 11 months ago (1 children)

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.

[–] [email protected] 2 points 11 months ago* (last edited 11 months ago)

most ide’s are extremely fun to use as text editors

my kind of fun

kindred spirits

[–] [email protected] 3 points 11 months ago* (last edited 11 months ago)

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

[–] [email protected] 3 points 11 months ago

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

[–] conrad82 3 points 11 months ago (1 children)

I have used both, and syncthing is the most stable in my opinion. But you will get sync conflicts/ duplicates if you work on the same file

For working on markdown files you should additionally look into https://silverbullet.md , it's great 🙂. It has offline mode. But it will also generate duplicates if you edit the same file offline

[–] [email protected] 1 points 11 months ago

fuck man, this silver bullet looks pretty cool. project is about 1.5 years old? i guess it's been longer than that since i investigated these kinds of tools

https://github.com/silverbulletmd/silverbullet

While you can use SilverBullet as a simple note taking application that stores notes in plain markdown files on disk, it becomes truly powerful in the hands of more technical power users. By leveraging metadata annotations, its Objects infrastructure, Live Queries and Live Templates, SilverBullet becomes a powerful end-user programming tool, enabling you to quickly develop various types of ad-hoc knowledge applications.

I have errands to run this weekend and I cannot spend the whole time immersed in this.

[–] [email protected] 2 points 11 months ago (1 children)

Git

Then git pull rebase and commit. Done

[–] [email protected] 2 points 11 months ago

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.

[–] [email protected] 1 points 11 months ago

Since I use obsidian.md I installed a community plugin to sync to onedrive.

For other stuff I use syncthing.

[–] [email protected] 1 points 11 months ago (1 children)

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.

[–] [email protected] 5 points 11 months ago* (last edited 11 months ago)

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.

[–] [email protected] 1 points 11 months ago

Personally I'd just use something like trilium and call it a day.

[–] [email protected] 0 points 11 months ago (2 children)

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.

[–] [email protected] 2 points 11 months ago (1 children)

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.

[–] [email protected] 2 points 11 months ago (1 children)

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

[–] [email protected] 4 points 11 months ago

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.

[–] AtmaJnana 1 points 11 months ago* (last edited 11 months ago)

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.