I’m wanting to install Nexctloud as I finally have a server running and would like to know what advantages there are to running one over the other. If it helps, here’s what the use case I need Nextcloud for.
I’m wanting to replace using Google Drive as I only have the free tier and I’m too poor to pay a monthly fee for more than 15gb of storage. I have about 1tb on my server and I’m most likely the only person to ever use it in my family, though if someone ever wants to use it I’d want to easily make an account for them. I also would like to run it under a directory of my domain name, something like https://web.site/nextcloud rather than from the root.
Hi. I can only speak from my own experience. The snap is great for your scenario - mostly myself with shared links for family members, friends etc. I’ve been running for several major versions (at least 15, maybe back to 13?) and only have ever had one bad update that required a few days for the maintainers to fix. But that was over a year and have had absolutely no issues since.
There might be some value in running a manual install if you want to get some understanding of the different components that work together but that’s only for interest sake. The snap is reliable.
For snap run an Ubuntu LTS (e.g. 1804). It will work on centos, etc but just stick with the most standard host.
It’s not bad and is worth taking a few minutes to learn. It is a little bit different. If you look at my guide, I have all the steps for Ubuntu if you want to give it a shot. You’ll have to make an adjustment on the reverse proxy to run it in a subfolder of the web root, but that should be fine.
One really nice benefit to Docker is you don’t have compatibility issues because the image includes all the libraries it needs. If you look over the forum, there’s always someone having a problem with PHP because their chosen OS has an old version, or an upgrade broke a dependency, or some package that particular OS needs to run MC wasn’t installed, etc… You don’t have any of that with Docker because it uses a tested working set that’s in the image with it regardless of what’s installed in your host OS.
Upgrades are also really easy because you just tell Docker to pull an updated image and everything in it is updated to a known working set of software. And you can it to use a specific version, for example if you want to hold off on the next major version until is has a couple updates out.
You sound like someone who likes tinkering with this stuff, so you’ll probably like it.
I would recommend against Docker if you are new to Docker & Nextcloud. As soon as you run into issues you will be in nightmare land and have no idea how to troubleshoot things. You also may have no one to help you (unlike the snap package which is maintained by the NC folks and has GitHub repo). If you’re interested in learning Docker sure might be worth considering but maybe not now.
I’d say either a) snap (being behind on versions is not necessarily a bad thing) or b) standard install without deviating from Nextcloud manual’s recommendations - Ubuntu LTS, Apache, MariaDB.
Backups are mandatory no matter what kind of deployment you’ve chosen. no backup? no mercy!
I had a short look at NextcloudPi before i’ve decided to do a “manual” setup. It may be nice, but it adds additional layers of software which i need to understand if i want to be able to troubleshoot on my own when something goes wrong. Doing a manual install may take longer for the first steps, but there are plenty of howtos out there (i used this one for my latest setup) and you learn more about what and why are you doing things.
From my point of view KISS applies to backups as well. It’s not only about having backups, it’s about knowing how they work and what you need to do to restore files. Thats why i use rather simple shell scripts and rsync. Having “some magic” doing things you don’t understand is essentially like having no backup…like:
To be honest: i’ve been working as a “DevOps” for about 20 years, have plenty of experience with linux and system administration in general. This is for sure a better point to start from then for many other people.
I think this is one of the most important point - thanks @anon99283430 for chiming in after my initial response. I started with manual install and that was useful for me from a learning and understanding perspective, even though I switched to a snap which I’m now happy with. After more consideration, I’d endorse this approach over snap for the typical first-timer Nextcloud admin.
Anyway, it’s a supported and well-maintained method of running Nextcloud, and it just so happens I had already written a guide for doing this setup on the OP’s OS, which is also how I run it personally at home and in my clients’ networks.
Inappropriate for the OP’s scenario and stated level of Docker knowledge (“none”). I can accept that it’s a totally valid option for production, but for the OP as an admin I can’t accept it as a recommendation here. That guide must be beyond daunting for someone who’s never done anything with Docker.
As an aside, that is exactly where I started running this at home. At the time, I had zero Nextcloud experience, and zero Docker experience. And it turned out to be a great thing and well worth a few minutes to figure out the Docker basics.
That’s fine. You’re entitled to your opinion, but your approval is not needed for my recommendation. You don’t have to go trying to shoot down other people’s recommendations and cause a mess for the OP for your own recommendation to be valid.
Knocking the Docker installation without knowing much about it, and now my guide too without looking at it? Nice.
FYI I spent hours writing it and did a test installation side by side to make sure everything was right and produced a working system. I can follow my own guide and set a system up from bare metal in about an hour. My guide is actually very easy to follow, in my opinion, and was written for the OP’s exact scenario.
It’s also worth noting, the Docker part is short and easy, and the rest is a lot of the same steps that are in other guides involving a reverse proxy.
Anyway, I’ve made my contribution to the OP’s question and am satisfied that it’s a good one, and I’m content to leave it at that.