Migrer de Nextcloud Hub 7 (27.0.x) à Hub 8 (28.0.x) avec Docker
Je viens juste de finir la migration de mon Nextcloud auto-hébergé, de sa version 27.0.2, qui correspond au Hub 7, à la version 28.0.2 qui est le Hub 8.
J'ai rencontré 3 petits irritants techniques à l'issue de la migration, donc je voulais les noter ici pour ne pas les oublier si jamais ça devait arriver (encore) dans le futur. Et si ça peut vous aider dans votre migration, c'est tant mieux ! C'est ça, la magie d'Internet.
Environnement Docker
Avant de commencer le processus de migration, et pour être sûr que la suite peut s'appliquer à votre cas, je vous présente mon installation. Il s'agit d'un environnement 100 % Docker avec 3 conteneurs :
- Nextcloud, basé sur l'image nextcloud en version 27.0.2 ;
- Redis, basé sur l'image redis ;
- MariaDB, basé sur l'image mariadb.
Les étapes de la migration
Pour faire ma migration, je réalise les étapes suivantes (manuellement) :
Faire des back-up de mes données
Pour ce faire, une copie des volumes contenant mes données et ma configuration nextcloud, sans oublier la base de données MariaDB, me suffit.
sudo cp -r mariadb-data/ mariadb-data-backup-04022024
sudo cp -r nextcloud-data/ nextcloud-data-backup-04022024
Update le fichier docker-compose.yml
Ensuite, on update le fichier docker-compose.yml
correspondant à votre installation en passant la version de l'image de nextcloud de la version 27.0.2 à la version 28.0.2.
nextcloud:
image: nextcloud:28.0.2
Relancer votre compose
Une fois votre fichier compose modifié, vous pouvez relancer le tout avec un :
docker compose up -d
Regarder les logs de Nextcloud et vérifier que tout va bien
La dernière étape consiste à vérifier les logs de Nextcloud et vous assurez que tout va bien pendant la mise-à-jour, et après en allant voir la page de résumé de votre instance dans le menu d'administration.
Pour voir les logs pendant la mise-à-jour, je regarde tout simplement les logs du conteneur :
docker logs -f --tail 200 nextcloud
Les irritants à corriger
En regardant le dashboard sur votre Nextcloud flambant neuf, vous aurez probablement 3 problèmes :
- le plugin PHP bz2 n'est pas installé ;
- vous n'avez pas indiqué de valeur pour la propriété
maintenance_window_start
; - vous avez plusieurs milliers d'erreurs dans vos logs qui vous sont maintenant indiquées.
Installer le plugin PHP bz2
Pour installer le plugin PHP manquant, vous allez devoir le faire directement dans votre conteneur.
La commande magique :
docker exec -ti nextcloud apt-get update && apt-get install -y libbz2-dev && docker-php-ext-install bz2
Un petit restart du conteneur n'est pas de refus :
docker compose restart nextcloud
La source de l'information est là : https://help.nextcloud.com/t/docker-image-setup-warning-missing-bz2-after-update-to-nc-28-0-0/176605/4
La question qui se pose est donc : pourquoi ce paquet n'est pas installé directement à la génération de l'image Docker fournie ? Il y a un lien vers le ticket GitHub associé, si vous souhaitez y faire un tour.
Mettre une valeur à maintenance_window_start
Pour initialiser cette variable, vous pouvez la mettre à "1", ce qui indiquera alors d’exécuter certaines tâches à partir de 1 heure du matin et pendant les 4 heures suivantes. On va utiliser la ligne de commande occ
fournie par Nextcloud pour modifier le fichier config.php
de votre instance :
$ docker exec -ti --user www-data nextcloud /var/www/html/occ config:system:set maintenance_window_start --value="1" --type=integer
System config value maintenance_window_start set to integer 1
Et on n'oublie pas de restart le conteneur again :
docker compose restart nextcloud
Et voici le lien vers une source indiquant la solution : https://help.nextcloud.com/t/nextcloud-server-has-no-maintenance-window-start-time-configured-error/180556.
Et surtout, le lien vers la documentation : https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/background_jobs_configuration.html#maintenance-window-start
Gérer les milliers d'erreurs
Pourquoi avez-vous, d'un coup lors du changement de version, des milliers d'erreurs qui apparaissent dans votre tableau de bord d'administration de votre instance Nextcloud ?
C'est une excellente question, que tout le monde se pose ! Pour information, ces erreurs ne sont probablement pas nouvelles, ni liées à votre changement de version. Elles devaient déjà exister avant. Mais là, elles sont mises en avant directement dans votre tableau de bord.
C'est assez anxiogène pour beaucoup, et une réflexion est en cours sur le sujet côté Nextcloud apparemment (puisqu'ils n'ont apparemment pas beaucoup réfléchi aux conséquences en amont...).
Pas de réponse magique de mon côté, à part le fait de rester calme ! Vous pouvez aller faire un tour dans vos logs côté Nextcloud et essayer de comprendre d'où viennent les erreurs. De mon côté, par exemple, c'était surtout l'application "sharerenamer" qui plantait. Ne l'utilisant finalement pas, je l'ai supprimée et je vais voir si cela s'arrange.
Bon courage dans votre mise-à-jour !