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

Selfhosted

39251 readers
212 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 37 comments
sorted by: hot top controversial new old
[–] shadejinx@infosec.pub 24 points 9 months ago (1 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.

[–] Moshpirit@lemmy.world 1 points 9 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?

[–] DogMuffins@discuss.tchncs.de 2 points 9 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.

[–] shadejinx@infosec.pub 1 points 9 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@lemmy.world 9 points 9 months ago* (last edited 9 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.

[–] MangoPenguin@lemmy.blahaj.zone 4 points 9 months ago* (last edited 9 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@lemmy.world 1 points 9 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

[–] MangoPenguin@lemmy.blahaj.zone 3 points 9 months ago* (last edited 9 months ago) (1 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@lemmy.world 1 points 9 months ago (3 children)

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

[–] atzanteol@sh.itjust.works 2 points 9 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".

[–] Contend6248@feddit.de 1 points 9 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

[–] MangoPenguin@lemmy.blahaj.zone 1 points 9 months ago* (last edited 9 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.

[–] AbidanYre@lemmy.world 4 points 9 months ago

A self hosted Joplin sync server is also pretty nice.

[–] rambos@lemm.ee 3 points 9 months ago* (last edited 9 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

[–] Cyber@feddit.uk 3 points 9 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

[–] TerkErJerbs@lemm.ee 3 points 9 months ago

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.

[–] conrad82@lemmy.world 3 points 9 months ago

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

[–] sj_zero@lotide.fbxl.net 2 points 9 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.

[–] beeng@discuss.tchncs.de 2 points 9 months ago (1 children)

Git

Then git pull rebase and commit. Done

[–] ck_@discuss.tchncs.de 2 points 9 months ago (1 children)

Does not have great UX on phones though.

[–] beeng@discuss.tchncs.de 2 points 9 months ago (1 children)

I made some Termux shortcut scripts in bash for it. Works well, but not for everybody ;)

[–] ck_@discuss.tchncs.de 1 points 9 months ago (1 children)

Never had merge conflicts I take it 😄

[–] beeng@discuss.tchncs.de 1 points 9 months ago* (last edited 9 months ago) (1 children)

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

[–] ck_@discuss.tchncs.de 1 points 9 months ago (1 children)

Yeah, and for that reason, I opted for syncthing instead of Git for this use case.

[–] beeng@discuss.tchncs.de 1 points 9 months ago* (last edited 9 months ago) (1 children)

I've not needed to deal with a conflict, it's automated.

But what's the latency with syncthing or its instant?

[–] ck_@discuss.tchncs.de 1 points 9 months ago (1 children)

Syncthing uses inotify to watch for changes, so it's pretty much instant

[–] beeng@discuss.tchncs.de 1 points 9 months ago

Might look into it if I get conflicts, thanks!

[–] johntash@eviltoast.org 1 points 9 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.

[–] BearOfaTime@lemm.ee 5 points 9 months ago* (last edited 9 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.

[–] Appoxo@lemmy.dbzer0.com 1 points 9 months ago

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

For other stuff I use syncthing.

[–] Vendetta9076@sh.itjust.works 1 points 9 months ago

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

[–] scrubbles@poptalk.scrubbles.tech 0 points 9 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.

[–] jeena@jemmy.jeena.net 2 points 9 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.

[–] scrubbles@poptalk.scrubbles.tech 2 points 9 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

[–] atzanteol@sh.itjust.works 4 points 9 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@lemmy.world 1 points 9 months ago* (last edited 9 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.