Recommended deployment method for Individual user - HomeLab / Selfhosting

Which deployment method is recommended by the general NextCloud community as best for individuals, homelabbers, and selfhosters?

I have ran NC as a Docker compose stack for a few years now. I do not use the Docker AIO image, I use the regular NC Docker image along with a MariaDB container within the stack.

Here is my compose file:

Summary
version: '2'

services:
  db:
    image: mariadb:10.5
    restart: always
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    volumes:
      - /mnt/remotes/TRUENAS_nextcloud/db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD= REDACTED
      - MYSQL_PASSWORD= REDACTED
      - MYSQL_DATABASE= REDACTED
      - MYSQL_USER= REDACTED

  app:
    image: nextcloud:latest
    restart: always
    ports:
      - 8888:80
    links:
      - db
    volumes:
      - /mnt/remotes/TRUENAS_nextcloud/app:/var/www/html
      - /mnt/remotes/TRUENAS_nextcloud/data:/var/www/html/data
      - /mnt/remotes/TRUENAS_Photos:/ext-storage/Photos
    environment:
      - MYSQL_PASSWORD=REDACTED
      - MYSQL_DATABASE= REDACTED
      - MYSQL_USER= REDACTED
      - MYSQL_HOST=db
      - NEXTCLOUD_HOSTNAME=nextcloud.REDACTED.net

I frequently have issues when updating NextCloud. All the persistent storage mounts are bind mounts to a TrueNAS system where I take a ZFS snapshot before upgrading. When an upgrade breaks NC, I can easily rollback.

I suspect that my problematic install is my own fault which prompts me to ask how most selfhosters and other homelabbers deploy NextCloud. I assume the typical experience is not full of frequent issues.

I am debating moving to either the AIO VM image or the AIO Docker install. I cannot find documentation on how the AIO VM image works.

How do all the homelabbers here deploy NC? Have people had good experience with the AIO VM image? I am leaning toward setting up the AIO VM on my xcp-ng server.

1 Like

What are the actual issues you are facing? Can you share logs? Are you using Redis?

Hi @charles911,
You are missing the required support template. Please fill this form out and edit into your post.

This will give us the technical info and logs needed to help you! Thanks.

Crosspost https://www.reddit.com/r/NextCloud/comments/12k677d/nextcloud_deployment_method_for_selfhosters_aio/

1 Like

I run the docker images at home and don’t have the sort of problems you’ve indicated.

I would say my setup is atypical for a home user, but I run VMware ESXi. I also take snapshots before updates (in addition to my daily backup). Only once have I ever rolled it back in many years, and it was that time the redis container started requiring authentication by default. Ended up not being a NC issue at all.

I also run an AIO instance and have had no problems with that setup either.

Maybe you should back up a step and explain your update process and what issues you have.

I believe I did not properly communicate the purpose of my original post. My goal was to simply solicit experiences from others in the homelab/self hosting community on what is the popular/recommended deployment method. My goal was not to request support over any past issues, as these have been mostly resolved. I have few issues that remain outstanding on my nextcloud instance, most I was able to solve by searching the forums/google etc.

My intent here at first was simply to confirm: Is my deployment method typical among self hosters who are looking for a reliable install with little to few customizations?

My thought process is to first transition to the AIO as that seems to be more popular, if that solves any issues then wonderful, the problem has been solved with the least time input. If that does not solve the issue, then back to reading the NC Docs and forums etc.

Fair point, I may have been jumping ahead here thinking that my deployment method was poor instead of considering if my update process was incorrect.

My upgrade process is very simple. I manage all my containers with Portainer.

  1. Portainer shows a red status dot, indicating a container image has a new version available.
  2. When I notice a new image is available, I stop the stack.
  3. I snapshot the appropriate datasets on my TrueNAS server to create backups
  4. Using Portainer, I redeploy and click the button to pull a fresh image.
  5. The stack downloads the new image and starts each container.
  6. I login to the admin panel of Nextcloud to ensure all is well
  7. At times when I go to login I get hit with maintenance mode. Other times when I go to the admin panel there are a variety of error messages listed in “Security & Setup warnings”. I do not expose my NC to the public web so I mostly ignore these. When I have some free time I dive into resolving them, but for the most part they do not concern me.

It totally depends. There is no one size fits all.

That would make you an experienced Nextcloud admin. Even more so between running Truenas, ZFS snapshots, etc.

We cannot offer actual advice if you don’t discuss this at greater length… simply because there is no one size fits all answer. :slight_smile:

Exactly.

A lot of home users deploy AIO or NextcloudPi because they want a place to get started in hosting Nextcloud for themselves. Since you already understand the compose method you could use the forum, or docker hub, to search through other compose files and make adjustments to your own. That would be the most practical method. Or, simply review the AIO docker file for configurations you might want to replicate. Or, simply deploy AIO and start testing it to see if it performs better than what you currently run. :slight_smile:

I recommend starting by deploying Redis as part of your current compose script. :heart:

1 Like

It sounds like you have a fairly solid update procedure, and not that different from vanilla docker. The little warnings you get about missing indices, etc. are completely normal because they have added something to the database schema, and it should say right there what occ command to run to update it.

Getting stuck in maintenance mode after an update happens to some people from time to time, and usually it’s either that they jumped the gun and need to give it a minute to get situated, or they may need to use occ to exit maintenance mode.

Is that what’s happening to you, or do you have a bigger problem like for example it won’t exit maintenance mode with occ or throws an error?

Fair point. I think I am underestimating my own experience/environment. You’re correct a lot of “home users” run it on a Pi and call it a day. I run a dedicated truenas server for storage and run all containers & VMs on compute home servers. And agreed, now that I step back there is no 1 size fits all. Thanks for the advice here.

Interesting- I’ll have to take a detailed read through this. I’ve heard of Redis before, but have no experience using it myself. I will say, I have no complaints about the performance of Nextcloud. Right now I have the NC containers running on an SSD only vm server and the storage bind mounts are pointed to an SSD truenas as well. The NC performance is fantastic. Only 1 user for this NC instance.

I will do some reading on the current errors showing on the admin panel page. If I can’t find anything useful I’ll share again in this thread. I simply want to do the due diligence of searching & reading first before I reply in this thread asking the community for input/help.