Nextcloud in Docker manuell updaten: Meine Schritt für Schritt Anleitung

Ich habe neulich meine Nextcloud in Docker auf den neuen Tag 32.0.2-apache aktualisiert. Das Update war längst überfällig, also dachte ich: „Container neu starten, kurz warten, fertig.“
Tja. Dachte ich.

Beim Start hat man gesehen, dass die Migration läuft. Doch plötzlich blieb der Container bei einer Zeile stehen:

Update app notes from App Store

Nach ein paar Minuten wurde ich ungeduldig und habe, so blöd ich halt bin, den Container einfach neu gestartet. Keine gute Idee. Danach wurde ich im Webinterface erstmal mit dem Wartungsmodus begrüßt. Nach dem Deaktivieren des Wartungsmodus tauchte dann diese Meldung auf:

Aktualisierung erforderlich. Bitte den Kommandozeilen Updater verwenden, die Browser-Aktualisierung ist in der config.php deaktiviert.

Also musste ich das Update manuell fertigstellen.

Mein Container heißt übrigens nextcloud-app, deshalb sind alle Befehle bei mir darauf ausgerichtet.

🛠 Migration manuell starten

🔧 Schritt 1: Wartungsmodus aktivieren

Bevor ich irgendwas repariere, aktiviere ich den Maintenance Mode manuell:

docker exec -u www-data -it nextcloud-app php occ maintenance:mode --on

🔄 Schritt 2: Upgrade erneut anstoßen

Danach geht’s direkt an das eigentliche Update:

docker exec -u www-data -it nextcloud-app php occ upgrade

Das dauert. Und je nach Nextcloud Größe sogar ziemlich lange. Aber bei mir ist es sauber durchgelaufen.

🔍 Wenn das Update Fehler wirft

🧹 Reparatur durchführen

Sollte occ upgrade abbrechen, hilft meistens:

docker exec -u www-data -it nextcloud-app php occ maintenance:repair

Und direkt danach wieder:

docker exec -u www-data -it nextcloud-app php occ upgrade

📦 Apps prüfen und aktualisieren

Major Updates deaktivieren gerne Apps, die nicht kompatibel sind. Das ist normal. Deshalb prüfe ich nach einem Update immer zuerst die App-Liste:

docker exec -u www-data -it nextcloud-app php occ app:list

Dann aktualisiere ich alle Apps in einem Rutsch:

docker exec -u www-data -it nextcloud-app php occ app:update --all

Wenn eine App das Upgrade blockiert, deaktiviere ich sie kurz und stoße das App-Update erneut an:

docker exec -u www-data -it nextcloud-app php occ app:disable <app_id>

Später kannst du sie im Webinterface wieder einschalten.

🧹 Datenbank optimieren (sehr sinnvoll!)

Nextcloud weist manchmal darauf hin, dass Indizes, Spalten oder Primary Keys fehlen. Diese Befehle sorgen dafür, dass die Datenbank sauber und performant bleibt:

docker exec -u www-data -it nextcloud-app php occ db:add-missing-indices
docker exec -u www-data -it nextcloud-app php occ db:add-missing-columns
docker exec -u www-data -it nextcloud-app php occ db:add-missing-primary-keys

Diese Checks helfen dir dabei, Warnmeldungen loszuwerden und die Stabilität deiner Installation zu verbessern.

📴 Wartungsmodus wieder ausschalten

Wenn das Update sauber durchgelaufen ist, schalte ich den Maintenance Mode wieder ab:

docker exec -u www-data -it nextcloud-app php occ maintenance:mode --off

Danach konnte ich mich direkt wieder als Admin anmelden und meine deaktivierten Apps reaktivieren.

🎉 Fazit

Am Ende war es halb so wild. Wenn ein Update im Docker-Container stecken bleibt, kannst du es mit ein paar gezielten Befehlen sauber zu Ende bringen. Solange deine Volumes korrekt eingebunden sind, besteht keine Gefahr für deine Daten.
Es lohnt sich aber, bei größeren Versionssprüngen geduldig zu bleiben – sonst landet man wie ich mitten in einer halb fertigen Migration.

👥 Techniverse Community

Lust auf Austausch rund um Matrix, Selfhosting und andere smarte IT-Lösungen?
In der Techniverse Community triffst du Gleichgesinnte, kannst Fragen stellen oder einfach nerdigen Talk genießen. 🚀

👉 Jetzt der Gruppe auf Matrix beitreten
~ Direkte Raumadresse: #community:techniverse.net

👉 Für lockere Gespräche abseits der Kernthemen komm in den Talkraum
~ Direkte Raumadresse: #talk:techniverse.net

Wir freuen uns, wenn du dabei bist!

Vielen Dank fürs Teilen!