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!
Nextcloud and syncthing a 2 different things. While synching keeps your files synchronized between your devices, nextcloud is a cloud platforme which gives you access to your files on your server. The difference is actually very important even though a lot would argue that they are the same.
It really depends what type of technology you want/need. I would recommended syncthing for it’s simplicity and robustness. It only does one thing but it does it very well !!
To give you an example, I have a syncthing sever which is a middleman for my Zotero database.
Laptop <-> Server (syncthing) <-> desktop
. It’s very important to keep it in sync for the integrity of the zotero database !This kind of workflow wouldn’t work with nextcloud or rather will most of the time corrupt my database.
Nextcloud works as a simple cloud platforme wich is also great (with it’s up and downs) but works only as a cloud platforme to keep your files on your server.
The zotero docs recommend against synchronizing by just copying a folder as it can lead to corruption.
They recommend using webdav which nextcloud supports but syncthing doesn’t.
So your workflow is definitely possible with nextcloud and is the preferred option.
Yes I’m aware of that notice :) but it has been rock solid. Because it’s not just a copy. It syncs the folder.
This can happend if you work on both devices with Zotero at the same time (why would you do that anyway??). I already did my tests and with my server as a middelman I never had any corrupted data !
What does this mean?
it’s not just a copy. It syncs the folder.
It’s remarkable to me that you recommended to somebody an option that is the exact opposite of what you know to be true.
Do you think webdav somehow dumps you database? No it’s just a protocol to save your files on your webserver. It’s just a middelman.
recommended to somebody an option that is the exact opposite of what you know to be true.
Yeah it’s my recommendation from my personal experience. Is that wrong? I use it nearly everyday without any data corruption. Is my personal experience not valide?
The point is, syncthing is rock solid, never had any issue being it with my zotero database or syncing files between my devices. If you’re a Nextcloud advocate or are against my personal opinion so be it :).
Agree that we disagree !
Do you think webdav somehow dumps you database? No it’s just a protocol to save your files on your webserver. It’s just a middelman.
Umn. It allows the application to do its own synchronization and diff resolution. It’s why they recommend it.
Directory synchronization is a “best effort” to copy files back and forth without considering the application’s needs. Copying database files while they’re being written can be problematic for example.
Both Nextcloud and syncthing will synchronize a folder. And it will probably work if you aren’t making lots of changes on both systems. But there is increased risk.
Yeah it’s my recommendation from my personal experience. Is that wrong?
Yes - absolutely. “I’ve been lucky so far” and recommending against what the product you’re using says you should do is TERRIBLE advice.
The point is, syncthing is rock solid, never had any issue being it with my zotero database or syncing files between my devices. If you’re a Nextcloud advocate or are against my personal opinion so be it :).
Why are you getting defensive towards syncthing? It seems fine. It’s the wrong tool for what you’re using it for.
- for its* simplicity and robustness
- with its* ups and downs
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…
I’ve also set up both and in my experience Nextcloud is much much more complicated to set up but simpler to use and syncthing is pretty much the exact opposite.
In my case, a rather long time ago, it failed to reliably sync my files, had a super annoying web based UI, was a pain to get all my devices to talk to each other because because they had to join some sort of peer to peer network and authenticate with the earth other all three. It also didn’t have any working solution for mobile devices. Hopefully all of that’s fixed now because there’s no inherent reason it couldn’t work.
Yeah with a docker container running 24/7 and a phone app it’s much better. they also have a setting where deleted files on phone are simply moved to archive on the server.
I would go with syncthing, it uses far fewer resources, is rock solid and out of your way.
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.
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).
Syncthing can do direct sync if you give the ip address to each node and you can disable relay servers .
Thanks! Updated.
Happy to help 😉
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.
I personally switched from NextCloud to Syncthing.
Syncthing:
- is easier for me to maintain,
- allows for the “server” to be behind NAT,
- lets me have multiple “servers” at the same time (eg. something at home and a VPS)
- lets me have certain “servers” set as untrusted, so all data on them is encrypted, while others can have it unencrypted for easier access I put “server” in quotes, as Syncthing doesn’t really have a server, all clients are equal peers.
On the other hand, NextCloud:
- gives me a way to share files by link with others,
- lets me browse files via a web interface,
- mobile app lets me access files as I need them instead of having to synchronize everything.
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.
Syncthing because it’s p2p/ local-first. Meaning it’s robust to interruptions.
I hate Nextcloud and will recommend OwnCloud. NC is such a clusterfuck of a UI and full of abandoned third party software.
Thanks for sharing that. My job set up NextCloud for cloud sharing and I thought it was pretty cool. Tried to set it up at home for sharing on a home network with my family and felt really confused. Every week there was a new problem that I had to solve and ended up going back just network drives and sharing.
For file handling Seafile has been pretty efficient for me. No multimedia though.
Seafile is great. So fast, and unlike a bunch of these options, won’t sync everything to each node. Everything is reachable from each device with a client, but only downloads what you want from the server. If Syncthing could do that without needing to do a bunch of “ignore” manipulation, I’d switch. But for my needs, Seafile is where it’s at.
Yeah NextCloud is certainly more capable. And if you ONLY installed Nextcloud, it might be worth the time to try and figure it out. But it’s also kinda the same situation as Synology or QNAP where you are limited to a specific ecosystem and there are many much better products outside of it that accomplish the same goals.
Isn’t nextcloud the “evolution” of owncloud? Except for the UI, are their performance similar?
Not necessarily. It’s a fork of OC but with more features and a completely different UI. Supposed to be more like the Google “suite” of products rather than OC which is more like just Google Drive.
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.
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 use SyncThing on all my computers with my phone. I’ve setup my phone to just not sync certain folders with Ignore Patterns
If you’ve a large number of small files and you care about your data then use Syncthing. I personally sync all my data to a ARM SBC (like a Raspberry Pi) and have all my devices configured to sync to and from that device. Works flawlessly.
I also use iOS and for that I’ve WebDAV setup on the SBC that provides me with seamless iOS integration. I also have FileBrowser running on the SBC pointed at the same data so I can have a nice WebUI to manage all files.
I just use a Samba server behind wireguard.
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 .
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.
There’s a Sync thing client for Mac and iOS(Möbius).
That’s not what I meant.