Best install method today for long-term support tomorrow

I’ve run NextCloud for years (and love it), and am setting up a new instance. I’m willing to invest some startup effort if it means running something more standard. I’m looking to get qualities like:

  • Easy upgrades
  • Fewer deployment- or configuration- related issues
  • An install method that receives top-tier support and isn’t going away anytime soon
  • An overall lower maintenance burden - looking down the road several years and several major versions, if possible.
  • When it’s time to move, good support for migrating to whatever comes next

For instance, there’s a Snap package for NextCloud. It looks like a breeze to set it up. But if I get a bunch of users and files on board, I want it to continue to stay updated in a timely manner 5 years from now. I want to have standard enough configurations under the hood to solve issues that arise over its lifetime without the NextCloud team saying “well good luck - that’s a community install that we don’t know how to maintain”.

Docker-compose generally made updates easy for me - until the recipes started to change and then it took a bit more work.

I’m seeing lots of documentation and adoption around the AIO docker image, and thinking that might be a good way to go.

I know we can’t tell the future, but we can gauge how committed an organization is to something.

So - is the will of the project behind AIO for the long term? Is NextCloud going to make it stick? What’s the installation method that looks like it has staying power?

I guess so, you can even get Enterprise support for it.

A manual install in a Debian VM. I guess there will always be a zip or tarball to download, and and debian has been around for 30 years and will certainly be around for another thirty years. :wink:

Enterprise support for AIO means quite a bit. Thanks for that tip.

And manual install is appealing for those reasons, but doesn’t it make major updates more of a headache than Docker? I’ve heard of cases needed manual database migrations and such. I don’t know how common it was or likely it will be in the future though. I guess I’m asking: What does a worst case upgrade look like for a manual install?

I never had any major issues. I just type ncupdate, which is my bash alias for:

sudo -u www-data php /var/www/html/nextcloud/updater/updater.phar

From time to time I need to run the occ db:add-missing-indices after an upgrade, but that’s no big deal, imho.

Not sure what you mean by “Database migrations”, but I never had any issues with MariaDB, and I’m by no means a database expert. Btw, I just updated MariaDB from 10.6 to 10.11 this week and It was done in about 10 minutes.

occ maintenance:mode --on
systemctl stop mariadb
apt remove mariadb-server
#Adjust the version string in /etc/apt/sources.list
apt install mariadb-server
systemctl start mariadb
mariadb-upgrade
occ maintenance:mode --off

The mariadb-upgrade wasn’t even necessary, because it told me there was nothing to do. It probably wouldn’t even have needed the uninstall.

However, if you are happy with the official Docker containers, I don’t think there is a compelling reason to change to something else, neither to AIO nor to a manual installation, and certainly not to the Snap Package. :wink:

And yes, all things considered, maintaining a manual setup is certainly a bit more involved, than the other options you mentioned.

I think this is a good option (especially in case you are comfortable with docker now)… I don’t get what you trying to say about “recipes started to change” - my docker-compose runs since 2 year more or less unchanged…

this is an official Nextcloud GmbH project - should be as stable as the company behind the project. Having lot of big customers now the company might be stable enough to survive two or three crises :wink:

This is the point. Something which look good now might become odd tomorrow - take a look at NCP on Docker - discontinued from one day to another… I would suggest using some virtualization technology like docker, snap or Hansson VM - this should make upgrades easier than running bare-metal…

Oh I certainly plan to put whatever solution I use in a VM that is backed up as a whole. Being able to roll a borken server back to a good one in a few seconds is pretty exhilarating. To the next person coming along who needs to hear this: BACK THINGS UP! (and check out ZFS if you haven’t already)

I think it was about 6 or 7 years ago I setup my first instance. And frankly, NextCloud for the most part has been very easy to administer. Fantastic tools and documentation all around. It’s precisely because I haven’t needed to watch the community closely that I want to touch base before setting up the next system. So this is as much an appreciation post as anything else.

Thanks for the reply. I heard someone once talk about a major NextCloud update that took a lot of effort - but perhaps they shared their database with other applications and that was the root issue. I wish I had more details I remembered. Mostly I’m interested in what a worst case update looks like (I might have edited while you were replying) and it sounds like even the worst you’ve had was a 10 minute job.

Well, things can always go wrong, especially if you are not really familiar with the system you are using. But thats what VM snapshots and backups are for. :wink: And yeah sure, there will always someone manage to bork the database, or to delete important data acidentally. I mean, you Just have to run rm -R as root against the wrong path and your data is gone. But that’s not what usually happens. :wink:

However, with a manual installation you have to install and configure all the dependencies like Apache, PHP, MariaDB yourself, and things will not always work at first try. One small error in a config file or a PHP update to a non-supported version, can lead to a situation where your Nextcloud is no longer accessible. But, that’s all fixable, if you are willing to put time and effort in it.

So, at the end of the day it all depends on whether you are willing to learn new things you might not know yet. If you don’t want to do that, and you want something that just works, you are certainly better off with the Docker Images or AIO.

And honestly, I think the official Docker images are a good middle ground between AIO and a manual installation, and there are no indicators that they won’t be maintained anymore in the foreseeable future. So again, I’d stick with them, except you have a compelling reason to use something elese. One of these reasons could be to learn new things. :slight_smile:

Hello,

A company / organization or business will always claim their stability and commitment towards long term availability.

But fundamentally, history shows no matter how big or old an company is, it can go out of business within a very short time span.

Sure, some of them follow good ethnics and give their user a certain notice period where as some just go bust overnight.

With OpenSource software, one key advantage is community itself.

A community is not just a place where people like me come and ask stupid “how do I do this” and “that” type questions or where some other users are trying to troubleshoot by shooting blind and hope something works out. An OpenSource community do contain actual devs. Both those who are attached with the project and those who are outsiders but certainly are capable of maintaining it and if the need be, advance the codebase in future.

So fundamentally the question has nothing to do with a particular software or project. Future is unpredictable.

Although I am no one, and dont matter, but if you are reading, then take me for an example.

Google promised unlimited photo storage with their Google Photos, free for life. I was heavily into that but after few years, they took an U turn and removed “unlimited” and introduced subscription based plan with hard storage limit.

That brought me into selfhosting as popular OpenSource projects never die. If the parent company goes bust, community will always have some folks who will carry on the codebase in future.

So community support isn’t something bad in long term. Rather it’s actually a good thing.

Thanks.

Well, it would help if people would say what their actual goal and use case is, instead of just asking broad questions. And yes, everyone wants stability, everyone wants as little effort as possible, even home users.

But when it comes to finding a solution for a company, my answer would have been: Contact Nextcloud GmbH, get an Enterprise subscription (which would also contribute to the sustainability of the product) and ask which installation methods they officially support and which one is the best for your needs, which one scales best etc etc…

You can’t just rely on the community if you are using a product professionally, I mean you can, but you are going to spend money on the product. Either directly by paying someone to consult you, and / or maintain it, or indirectly by spending your time.

1 Like

NaXal,
I agree - the community is a crucial part of any project, whether packed by an enterprise or not. I’m mostly asking for a pulse for where the community stands today and what direction the community is going today. I want to be in sync with its direction so I don’t find myself having wandered away from it.

No one can tell the future, but I want to make sure I’m trying to swim with the flow of the community. There’s some stability in following the main stream of a community, and that’s all I’m trying to get here.

As far as the unknowns in the future go, I’m with you - that’s why I’m using NextCloud and glad it has such a vibrant community.

1 Like

(Ah - I finally figured out quoting!)

As far as my use case and goal, this is for myself and my family, not professional use. I would certainly be willing to use it professionally, though. And I hope to be able to NextCloud in the future, in code, documentation, or financially! If I could get a company to adopt and pay for it as well, all the better.

Being willing to invest today to build bridges for tomorrow is something not always considered in making decisions. (And far too rare in many circles. Too often it’s about robbing from tomorrow to make today easy.) So asking for how the presented setup methods stack up in that way isn’t all that out of place, is it? I ask honestly - is there a better place to go next time I have a question like this, rather than try to check in with the community this way? I’m coming from wanting to be a good member of such a community. The technological world can move quickly at times, and often a small change at the outset can prevent a lot of headache later.

Then’ i’d say, you’ll be perfectly fine continue using the official Docker images, and unless there is a compelling reason from your side, I see no reason to change anything in your current approach.

1 Like

Thanks to all for the good discussion! I think I’ll use official docker images and docker-compose. It’s a (small) step more manual than the AIO image, but I’m comfortable with that level of detail already.