What's the advantages/disadvantages to hosting Nextcloud with Docker vs the Package Center on a Synology?
from Zagorath@aussie.zone to selfhosted@lemmy.world on 12 Dec 15:39
https://aussie.zone/post/27569122
from Zagorath@aussie.zone to selfhosted@lemmy.world on 12 Dec 15:39
https://aussie.zone/post/27569122
Most of the threads I’ve found on other sites (both Reddit and the Synology forums) have basically said “go with Docker”. But what do you actually gain from this?
People suggest it’s more up-to-date, and maybe for some packages that’s true? But for Nextcloud specifically it looks pretty good. 32.0.3 came out 1 day ago and isn’t yet supported, but the version immediately preceding that, from 3 weeks ago, is.
I’ve never done Nextcloud before, but I would assume installing it via the Package Center would be way easier to install and to keep up-to-date than Docker. So what’s the reason everyone recommends Docker? Is it easier to extend?
threaded - newest
With nextcloud in particular, nextcloud is not just nextcloud.
It’s a bunch of additional optional services that may or may not work as-is on Synology. And the Synology package won’t come with all of them.
With docker, adding (or removing) additional services, such as Nextcloud Office, is comparatively simple.
Adding to this the new Nextcloud apps are just docker containers that Nextcloud manages for you. So docker is probably the better way to go.
To my thinking the most important difference would be mobility. Using the Synology app would probably make setup somewhat easier, but if you ever decided to leave the Synology ecosystem migration would likely be more complicated. That by itself isn’t a recommendation one way or another, but it should definitely factor into your planning.
Isolation. The number one reason to use docker is isolation. If you’ve not tried to run half a dozen services on a single server then this may not mean much to you but it’s a “pretty big deal.”
I have no idea how the synology app store works from this pov - maybe it’s docker under the covers. But in general I despise the idea of a NAS being anything than a storage server. So running Nextcloud, Immich, etc. on a NAS is pretty anathema to me either way.
How isolated could it really be as a docker container vs a separate machine or proxmox? You will still have to make sure that port numbers don’t conflict, etc, but now there is a layer of complexity added (docker)
I’m not saying it is bad, I just don’t understand the benefits vs costs.
I’m sure I read you’re comment wrong, but you are aware that each docker container has its own tcp stack, right?
You can get much better isolation with separate machines but that gets very expensive very fast.
It’s not that it provides complete isolation - but it provides enough isolation very cheaply. You still compete with other applications for compute resources but you run in your own little filesystem jail and can run that janky python version that your application needs and not worry about breaking yum. Or you can bundle that old out-of-support version of libaio that your application requires. All of your dependencies are bundled with your application so you don’t affect the rest of the system.
And since containers are standardized it allows you to move between physical computers without any modification or server setup other than installing docker or podman. You can run on Amazon Linux, RedHat, Ubuntu, etc. If it can run containers it can run your application. Containers can also be multi-platform so you can run on both ARM64 and AMD64 seamlessly.
And given that isolation you can run on a kubernetes cluster, or Amazon ECS with FARGATE instances, etc.
But that starts to get very enterprisey. For the home-gamer there is still a ton of benefit to just having file-system isolation and an easy way to run an application regardless of the local system version and installed packages. It’s a bit of an “experience” thing to truly appreciate it I suppose. Like I said - if you’ve tried running a lot of services on a system in the past without containers it gets kinda complicated rather fast. Especially if they all need databases (with containers you can spin up one db for each application easily).
Well you’re in self-hosting so if you don’t know docker yet, you’ll get the advantage of learning it. It will open up many self hosting opportunities.
For me one advantage is just one central place for all my containers. I don’t know how the package center handles storage but the docker version you’d have clear and easy access to the storage mount and would be able to make backups before big migrations, and you could set it up on a new server in the future. Imo there’s just no reason to use the package center one unless youre not very tech savvy and don’t want to learn anything else related to self hosting. I’m just assuming package center is easier in that regard but again i haven’t used it.
Also, when there are critical CVEs like the nextjs one found this past week allowing RCE then yeah, you want your stuff as up to date as possible. You don’t want to have to wait an unknown number of days for a downstream version to get updated. Docker let’s you get your updates straight from the source
Maybe things have improved but some years ago I was using Synology servers at work. VMs, HA, etc. They are nice at the beginning but after some time, unfortunately, the truth is that it’s just another locked down box where whether you can tweak a thing depends if it was made possible by Synology. And while I’m not some kind of NextCloud master, I can see how it could require some tinkering from time to time. For sure it’s better to “just do it” and migrate if it’s not enough instead of not getting into the thing at all. But if I were on your spot I’d either go with something less humongous on Synology or NextCloud on docker
I move my container workloads around sometimes whenever I decide a partucular machine should be prioritizing different tasks and the built in apps may not always be as portable. Not sure about synology but on truenas I often end up switching to the docker container when some random problem comes up. I’ve been considering trying out kubernetes because of how much migrating I do but the learning path seems a bit cursed. I do have a few computers doing nothing though.