Hello fellow selfhosters! I have a laptop and a tablet (both running endeavourOS), and I want a certain folder to be always in sync. I also have a very potato server.
My two options currently are Nextcloud and Syncthing. The laptop and the tablet are rarely online at the same time, so I need the server as middleman (so, no syncthing laptop <-> tablet, but laptop <-> server <-> tablet).
Which one do you recommend? The power consumption (of the client) is also very important, because both the laptop and the tablet are battery-powered
I’m also open to other options as well!
thanks in advance to everyone!
Edit: thanks to everyone for your precious help! I finally set up syncthing and it’s working flawlessly!
They are very different things. If all of the places where you want to access the data have storage large enough to accommodate all of it syncthing is probably easier. If however you also want to access the data from your phone, then syncthing won’t work, because it will sync the entire folder to your phone, there’s no way to use it like you would Nextcloud, i.e. only downloading things as you need them.
I just use a Samba server behind wireguard.
I would go with syncthing, it uses far fewer resources, is rock solid and out of your way.
Having setup both, ive found syncthing to be much simpler. I would probably not go through the headache of setting up https and databases for next cloud again…
Never had a chance to give syncthing a shot, but nextcloud works very well. On top of that, if you ever want to ditch apple/google - it will also happily sync your contacts, calendar, etc, as well as more niche stuff like bike rides. It can become chonky, but that really depends on how much stuff you’re asking it to do.
For that use case, go syncthing. Nextcloud would be overkill. I run both, I use syncthing for my personal files and Nextcloud when they should be shared with others.
A single folder and power consumption is important --> syncthing. It doesn’t have great power consumption, but since the devices aren’t constantly on, you can just start syncthing up on the portable devices when needed. You can configure syncthing to sync when connecting to a specific Wifi, when power saving mode is turned off, I think even specific times.
It’ll run fine on a server and can be configured .
Syncthing is a better fit for your use case. As much as I appreciate having my Nextcloud setup, it can also be a pain in the ass some times.
Quick pros/cons from what I’ve read (correct me if I’m wrong - I’ve not used syncthing myself):
syncthing
Pros:
- Easy to setup and use.
- No infrastructure to maintain
- Will sync directories between computers
Cons:
- Uses third party resources to sync by default (can setup direct sync if needed/wanted however)
- Only does directory synchronization
Nextcloud
Pros:
- Can synchronize directories
- Entire synchronization pipeline is under your control
- Offers a lot more functionality if you want it (WebDAV, Calendars, public shares with “anyone with URL can view” permission, etc.)
Cons:
- You need to setup/maintain your Nextcloud server
- Can be fiddly to setup for some (wasn’t for me - but lots of people do complain about it).
The maintenance part crushed me. Most of my other self hosted home setup, I fiddle with at most 2-3 times a year. Next cloud, I logging in at least once a month because something wasn’t working.
I switched the the snap package and it’s been rock solid and pain free the entire time.
I welcome any and all comments on why snap is Satan.
Syncthing can do direct sync if you give the ip address to each node and you can disable relay servers .
Thanks! Updated.
Syncthing because it’s p2p/ local-first. Meaning it’s robust to interruptions.
Syncthing on Android has an option to only sync when on AC battery. The PC client might have a similar option. If not, you could probably configure something similar via systemd or udev under Linux.
I don’t think syncthing has proper means to synchronize contacts or anything else that’s not file-based though.
I use syncthing and prefer it for synchronizing files between my devices.