Script de mise à jour pour Nextcloud

Edit 20/12/2016 : Avec l’application Updater (l’outil intégré de mise à jour) de Nextcloud, ce script devient inutile. Il est plus sûr d’utiliser l’Updater.


En ce jour de mise à jour de Nextcloud, je partage avec vous le script de mise à jour que j’ai réalisé.

Vous le trouverez à cette adresse : https://git.karolak.fr/snippets/16 (n’existe plus)

Il est assez simple et abondamment commenté, mais je vous explique tout de même rapidement ce qu’il fait. Dans un premier temps il télécharge la dernière version (en allant récupérer l’information sur GitHub ou via un paramètre donné au script), et vérifie son intégrité avec GPG. Ensuite il sauvegarde l’installation (dossier et base de données) actuelle de votre Nextcloud. Et pour terminer il applique la mise à jour et restaure la configuration, les données et les applications tierces.

Il suffit juste de lancer le script comme ceci :

./upgrade-nc

Ou en lui donnant la version qu’on veut :

./upgrade-nc 9.0.52

À noter qu’il faut le lancer avec l’utilisateur propriétaire de l’installation de votre Nextcloud, chez moi il s’appelle nextcloud, mais chez vous il s’agit peut-être de www-data ou autre :

su -l www-data -s /bin/bash -c '/path/to/upgrade-nc'

Pour ceux qui sont encore sous ownCloud, ça devrait fonctionner sans problème en remplaçant toutes les occurences de nextcloud par owncloud :

sed -i 's/nextcloud/owncloud/g' upgrade-nc

Théoriquement vous n’avez qu’à modifier les deux premières variables (DIR et BACKUP) pour les adapter à votre installation. Si vous voyez des choses à améliorer ou auxquelles je n’ai pas pensé pour une meilleure portabilité de ce script, n’hésitez pas à me le signaler.

En espérant que ça aura été utile à quelques-uns :-)

Mise à jour (07/07/2016) :

Suite à une remarque intelligente, j’ai modifié le script. Il passe donc Nextcloud en mode maintenance et utilise rsync à la place de mv, rm et compagnies. De cette manière il n’y a plus de downtime. Et si l’état de l’installation après la mise à jour est foireux (état et intégrité), il restaure la sauvegarde. Au passage j’ai ajouté une vérification de la présence de tous les outils nécessaires (curl, wget, gpg, etc.) histoire d’éviter de mauvaises surprises, et la suppression (désactivable) de la sauvegarde si tout se passe bien.