I’m looking to install nextcloud with Let’s Encrypt and LDAP/AD support, but I’m not sure which option to choose for the easiest setup and future update procedure. Is there official documentation on how to install nextcloud using Snappy or Docker? How does the update/upgrade system work?
It seems the snap version is still at version 9.0.53, and there’s no official nextcloud repository on docker hub.
I’m used to updating GitLab every by running just two commands, without worrying about doing anything else. Is there something as simple for nextcloud?
For example this is how I upgrade GitLab every week. Just those two commands and nothing more.
sudo apt-get update
sudo apt-get install gitlab-ce
Nextcloud provides an official Docker image here with basic documentation. As I prefer AiO images, I maintain my own, which really behaves like a Nextcloud Box. Everything is already configured, tested, you pull and run Nextcloud, two commands like you said (you can/should configure a docker-compose file for persistence, and this takes a few seconds). Update? No problem, two commands! That’s why I think Docker rocks for this.
Despite this, I don’t think I’d recommend Docker for absolute beginners. If Docker does all the magic, people won’t bother learning how things work, and this is sad. Same thing for Snap packages. But if it’s not your concern, you can definitely grab a Docker image / Snap package / VM.
Thanks, looks like Docker is the right choice. Strange though since ubuntu is all about snaps, and nextcloud has some sort of partnership with them. I couldn’t find a “snap hub” with next cloud listed either.
Not sure why indihosters/nextcloud isn’t listed as official on docker hub. Maybe the next cloud guys need to talk to the docker hub guys and get that sorted out.
What’s the difference between your version and the ‘official’ one? Have you tried setting up LDAP/AD authentication and Let’s Encrypt? I’m currently using ownCloud 8.1 (upgraded a few times from version 6) on Debian 8 and it works great, but I was curious to see how next cloud is. I didn’t like the way ownCloud was updated, manually deleting files, downloading tar files and so on. I like magic.
I upgraded from ownCloud 8.1 on Debian 8 to ownCloud 8.2 and then Nextcloud 9, 9.1 and now 10. I used the manual method each time without any issues other than some file permission stuff (caused by my server distro Yunohost doing some weird permissions stuff).
It’s not so much about upgrading without any issues (other than file permissions apparently), which of course is very important, than it is about the hassle looking up the instructions and updating manually. I know I could likely upgrade manually as I have done many times before, but its not something I want to do. Other than the upgrading process, I’m very happy with ownCloud. I was hoping nextcloud could have a solution to that pain point.
Once Nextcloud will be granted a repository here, there will be an official image on Docker Hub. Right now, indiehosters/nextcloud is built from the official Github repository which is nextcloud/docker. The main difference between our images is that the official doesn’t include a webserver, nor a cron solution, since it wants to respect the Docker philosophy “1 container = 1 process”. This will result in a more complex setup, though Docker Compose helps a lot. Since I don’t care about this, I put everything Nextcloud needs in one single image (like the Nextcloud Box thing), except you will likely need to use an external reverse proxy which will use SSL/TLS (you can use LE certs, or whatever…) to encrypt the connection between the container and the Internet. This is what I do and I’m happy with that!
The docker image maintained by @Wonderfall contains the whole nextcloud Installation + additional services in one docker container (AiO = All in one), except the database.
The official docker Image is a bare minimum installation based on php-fpm. It just exposes the port for php requests that must be proxied forward to this container. That means you can’t run it out of the box, but have to use at least one additional container that is a webserver (in practice you need two, webserver and database). Other additional containers you could add would be for example a redis container for caching.
I would recommend to go with @Wonderfall’s solution, it’s easier to setup.
For now there aren’t many people working on the official Image and it lacks documentation, examples and structure. Hopefully we can do/see more in the future.