Is it better to install Nextcloud via snap or setup a web server?

Hello everyone!

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.

Which one would do the job better? Thank you!

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.

Alrighty, I’ll look into the snap install then! My server actually is running 18.04 LTS lol

You need to setup a reverse proxy to accomplish that. Here is a working setup (which I never tried myself):

The snap package has some problems. That’s just my opinion though. The version lags behind, it makes custom configuration difficult, and it’s also hard to add missing features such as SMB support.

I run mine in Docker. I wrote a guide for setting it up using Docker on Ubuntu 18.04.

I’ve never used docker before, is it easy to use as a newbie?

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.

You still need a webbserver for the reverse proxy. What advantage is it to run NC in a container for average home setup? It only adds networking and storage access issues.

I’d keep it as simple as possible and with as less external dependencies as possible:
No snap, no docker, no raid, no other fancy shit.

Small, energy-efficient hardware which fits my needs, bare-metal install of os and the required services. Running this kind of nc setup at home for quite some time now.

1 Like

Just never forget backups :slight_smile:

1 Like

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.

1 Like

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.

1 Like

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.

Which is exactly the advantage of Docker. All dependencies are internal, tested, and stable, and with docker-compose, the setup is quite simple.

The Docker version is also maintained by Nextcloud (and tested by the Docker team — it’s an official image) and has a GitHub repo.

Please don’t knock it if you aren’t familiar with it.

And it adds additional layers of software and configuration and thus complexity. It does not eliminate dependencies, it just moves them to another layer of the stack.

It’s just a matter of “trade off” - for personal use i’d avoid such things. This may be another case in a business environment.

An oversight on my part. When I first played around with Docker as an option (v9?) there was an unsupported image. I didn’t recheck as part of this conversation.

I will give try it out of curiousity but not in production since as recommended on the repo This image is designed to be used in a micro-service environment.

Not my environment and certainly not the OP’s. Docker isn’t mentioned as an option in the admin manual at all so if she wants get help in the future it’s best to go down a more appropriate route.

True of every method other than manual installation.

That’s just mincing words. The dependencies are automatically and permanently satisfied inside the image such that you don’t have to install them or ever have any conflicts or broken packages.

Docker-compose is a micro-service environment, so that’s kind of a meaningless phrase.

Where are you getting that use of Docker is inappropriate? They wrote official documentation for the Docker installation. It’s right here:

https://hub.docker.com/_/nextcloud

And it’s listed as an installation method at nextcloud.com.

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.