Add overall policy for software upgrades. Revise upgrade notes for Nextcloud.

This commit is contained in:
2026-04-18 15:22:47 -04:00
parent 9f321bd7f8
commit 15ee31660b
2 changed files with 43 additions and 25 deletions
+13 -25
View File
@@ -1,30 +1,18 @@
Steps to upgrade Nextcloud from one major version to the next.
1. Put the Nextcloud instance into maintenance mode
docker exec --user www-data nextcloud-app-1 php occ maintenance:mode --on
Note that 'docker exec' is used to run commands within the Nextcloud docker container; and '--user www-data' is used to run as the user that owns all of the Nextcloud files.
2. Back up the Nextcloud container's files to a location outside the container's mounted volume. 'rsync' is recommended:
rsync -Aavx /mnt/storage/appdata/nextcloud/www/ <backup-target-dir>/
rsync should be run as root. rsync with these options should preserve file ownership & permissions.
3. Back up MariaDB database:
docker exec nextcloud-db-container-name mysqldump --single-transaction -h localhost -u nextcloud_user -pnextcloud_password nextcloud_db_name > nextcloud-sqlbkp_$(date +"%Y%m%d").bak
4. Alternatively, if the Nextcloud files and database are stored in a ZFS dataset, take a ZFS snapshot of the relevant dataset(s).
5. Bring the Nextcloud instance down:
1. Bring the Nextcloud instance down:
sudo docker compose down
6. Edit the compose.yaml file and change the tag on the Nextcloud image to the next major version number.
7. Pull the next version of the Nextcloud image:
2. Take a ZFS snapshot of the tank/appdata/data/nextcloud-data and tank/appdata/databases/nextcloud-db dataset(s).
3. Edit the compose.yaml file and change the tag on the Nextcloud image to the next major version number.
4. Pull the next version of the Nextcloud image:
sudo docker compose pull
8. Bring up the Nextcloud instance:
5. Bring up the Nextcloud instance:
sudo docker compose up -d
9. Wait a minute or so and bring up the Nextcloud web client in your browser. Open the Administrative Settings Overview page and check for any issues.
10. If the Overview page recommends any occ commands:
* Put the instance into maintenance mode : docker exec -u www-data nextcloud-app-1 php occ maintenance:mode --on
* Run the occ commands recommended (for example, docker exec -u www-data nextcloud-app-1 php occ db:add-missing-indices)
* Take the instance out of maintenance mode: docker exec -u www-data nextcloud-app-1 php occ maintenance:mode --off
6. Wait a minute or so and bring up the Nextcloud web client in your browser. Open the Administrative Settings Overview page and check for any issues.
8. If the Overview page recommends any occ commands:
* Put the instance into maintenance mode : docker exec -u www-data nextcloud-app-1 php occ maintenance:mode --on
* Run the occ commands recommended (for example, docker exec -u www-data nextcloud-app-1 php occ db:add-missing-indices)
* Take the instance out of maintenance mode: docker exec -u www-data nextcloud-app-1 php occ maintenance:mode --off
Note that 'docker exec' is used to run commands within the Nextcloud docker container; and '--user www-data' is used to run as the user that owns all of the Nextcloud files.