Nextcloud - Updates schnell und einfach einspielen

In diesem Artikel werden alle Möglichkeiten erklärt um die eigene Nextcloud Instanz mit Updates zu versorgen.

Nextcloud - Updates schnell und einfach einspielen

Mit bisher 21 erschienenen Major Versionen ist das Nextcloud Projekt aktuell sehr aktiv, Updates erscheinen mehrfach pro Quartal.

Nextcloud bringt ab Werk 2 Optionen mit, um Updates einzuspielen.
In Ausnahmefällen kann auch ein manuelles Update angestoßen werden.

Option 1 - Webbasierter Updater

Der webbasierte Updater ist die einfachste Lösung, ausstehende Updates zu installieren.  
Der entsprechende Punkt ist in den Einstellungen unter Verwaltung -> Übersicht zu finden.

Neben der neuen Version gibt der Updater ebenso Aufschluss darüber, ob für alle Apps bereits ebenso aktuellere Versionen erhältlich sind und bezieht diese nach erfolgtem Update aus dem Store von Nextcloud selbst.

Webbasierter Updater im Überblick

Mit einem Klick auf Updater öffnen, werdet ihr auf eine Seite ähnlich der Installationsseite geführt, in der ihr das Update anstoßt.

Wenn alle Vorbereitungen erfüllt sind, wird der Updater starten und die neueste Version installieren. Anschließend werdet ihr zurück zur Cloud geleitet.

Option 2 - Update über die Kommandozeile

Wenn man größere Instanzen von Nextcloud betreibt und somit auch mehrere Nutzer administriert kann es sein, dass der Webbasierte Updater timeoutet und mitten im Upgrade Vorgang abbricht und nicht fortgesetzt werden kann. Hier kommt die zweite Option ins Spiel: Der Weg über die Kommandozeile, dazu muss nur ins entsprechende Verzeichnis gewechselt werden, anschließend wird der Updater noch angestoßen:

cd /var/www/nextcloud/updater/
Wechsel in das Nextcloud Installationsverzeichnis

Jetzt wird der Updater noch getriggert, dies geschieht über den folgenden Command:

sudo -u www-data php updater.phar
Start des Update Prozess
CLI Updater
Vorbereitungen des Nextcloud Updaters

Sind hier alle Vorbereitungen geglückt, kann mit Yes der eigentliche Prozess gestartet werden. Wie bereits im Web Updater, wird auch das Kommandozeilen Tool hier alle Apps auf Aktualität prüfen und - sofern bereits vorhanden - auch direkt nachinstallieren.

Am Ende des Update Vorgangs wird noch gefragt, ob der Maintenance Mode (= Wartungsmodus) weiterhin aktiv bleiben soll, dies kann mit No beendet werden.

Das wars! Eure Nextcloud Instanz ist jetzt wieder auf der aktuellen Version.

Manuelles Upgrade

Diese Option des Upgrades sollte nur angewandt werden, wenn obige Varianten nicht zum gewünschten Ziel führen. Mit dieser Variante wird der gesamte Quellcode ausgetauscht und die Config aus dem Backup später in das neue Verzeichnis übernommen.

Zuerst wechseln wir wieder in das Nextcloud Installationsverzeichnis:

cd /var/www/nextcloud
Installationsverzeichnis von Nextcloud

Anschließend wird die Instanz in den Wartunsgmodus versetzt, sodass keinerlei Änderungen von Usern mehr möglich sind. In älteren Nextcloud Versionen war die Empfehlung anschließend noch einen Zyklus des Cronjobs abzuwarten (also maximal 5 Minuten).

sudo -u www-data php occ maintenance:mode --on
Die Nextcloud Instanz in den Wartungsmodus versetzen

Als nächstes wird unser Webserver nginx gestoppt:

systemctl stop nginx
Webserver stoppen
wget https://download.nextcloud.com/server/releases/latest.tar.bz2
tar -xjf latest.tar.bz2 -C /var/www
rm latest.tar.bz2
Herunterladen der neuen Serverfiles und Verschieben in das Webroot

Im Anschluss daran wechseln wir in das Installationsverzeichnis unserer Nextcloud Instanz und erstellen ein Backup unserer Serverfiles - vorallem aber der config.php. Diese Datei enthält die Basis für die gesamte Instanz!

cd /var/www/
mv nextcloud nextcloud_bak
Erstellen des Backups der Serverfiles

Danach laden wir die neuen Serverfiles herunter, entpacken diese und verschieben sie anschließend an den korrekten Ort.

cd /tmp
wget https://download.nextcloud.com/server/releases/latest.tar.bz2
tar -xjf latest.tar.bz2 -C /var/www
rm latest.tar.bz2
Download der aktuellen Serverfiles

Jetzt wird die config.php aus unserem eben erstellten Backup noch in das neue Main Verzeichnis geschoben und im Anschluss daran die Berechtigungen angepasst.

cp /var/www/nextcloud_bak/config/config.php /var/www/nextcloud/config/config.php
Verschieben der config.php
chown -R www-data:www-data /var/www/nextcloud 
chown -R www-data:www-data /var/nextcloud_data
Anpassen der Berechtigungen

Sind diese Schritte befolgt, kann nginx wieder gestartet werden:

systemctl start nginx
Webserver Starten

Jetzt ist es an der Zeit Nextcloud mitzuteilen, dass die Serverfiles verändert wurden, hierfür wird der OCC Command als www-data User gestartet. Zuletzt wird der Wartungsmodus beendet - die Instanz sollte wieder aus dem Web erreichbar sein.

cd /var/www/nextcloud 
sudo -u www-data php occ upgrade
sudo -u www-data php occ maintenance:mode --off
OCC Upgrade und Deaktivieren des Wartungsmodus

Im letzten Schritt prüft ihr die Funktionalität der Instanz - funktioniert alles problemlos, kann das Nextcloud Backup noch gelöscht werden:

rm -r /var/www/nextcloud_bak
Altes Backup entfernen