Problem nach Update von Nextcloud

  • Ein ganze Zeit lief Nextcloud problemlos. Da es ein Update gab (33.0.3 nach 33.0.5 oder so ähnlich, die genauen releases habe ich nicht mehr im Kopf 🙄 ), dachte ich mach mal.

    Nextcloud läuft bei mir auf einem Pi5 unter Trixie in einem Docker Container. Gemäß diesem Eintrag auf Github: https://github.com/nextcloud/dock…a-newer-version

    Habe ich folgendes gemacht:

    • nextcloud container gestoppt
    • folgende befehle eingegeben:
    Code
    docker compose pull
    docker compose up -d

    Nach dem ersten Befehl holt er sich das neueste nextcloud und Maria-DB image und nach dem zweiten Befehl startet er nextcloud wieder. Alles ohne Fehlermeldung.

    Wenn ich jetzt Nc aufrufe (über einen Link zu meinem Dashboard) kommt die Fehler meldung "403 Forbidden You dont have permission...."
    Wenn ich nc über die IP oder über meine Subdomain https://subdomain.xyz. de aufrufe, bekomme ich diese Meldung:

    Der Link zur Doku ist nicht wirklich hilfreich, da die im Link verwendete Sprungmarke nicht existiert.

    Ich habe das problem gestern auch im NC Forum gepostet, aber bisher keine hilfreiche Antwort bekommen.

    War meine Vorgehensweise mit dem Update falsch, oder wo könnte das problem liegen? Per SSH komme ich noch auf den Pi.

  • Wenn ich nc über die IP oder über meine Subdomain https://subdomain.xyz. de aufrufe, bekomme ich diese Meldung:

    ...

    Das ist soweit in Ordnung. Ohne Docker kann sich NC selbst aktualisieren. Unter Docker macht das keinen Sinn, weil man in dem Fall einfach das neue Image holt.
    Das ist mit dieser Meldung gemeint.

    Bekommst Du mit https://subdomain.xyz/login keine Anmeldeseite?

    NC besteht ja "nur" aus PHP. Davor läuft ja noch ein Webserver. Die Meldung dürfte von dem kommen. Finden sich da passende Meldungen im Log?
    https://subdomain.xyz/ muß ja erst durch den Webserver. Ich vermute den Fehler eher darin. Hast Du den schon einmal durchgestartet?

    War meine Vorgehensweise mit dem Update falsch, oder wo könnte das problem liegen?

    Grundsätzlich richtig.
    Nach dem pull mache ich erst noch docker compose stop .... Das hast Du sicher schon probiert.

    Manchmal zicken Docker-Container. Dann kann man ihn wegwerfen (docker rm nextcloud) und einfach komplett neu aufbauen.
    Daß die Daten im Container dann weg sind und die persistenten Daten per "volume" "ausgelagert" werden, ist klar, oder?

    Per SSH komme ich noch auf den Pi.

    Klar, das Betriebssystem ist davon ja nicht betroffen - einer der Vorteile von Docker!

  • Bekommst Du mit https://subdomain.xyz/login keine Anmeldeseite?

    404 Not Found

    Finden sich da passende Meldungen im Log?

    Wo finde ich die?

    muß ja erst durch den Webserver. Ich vermute den Fehler eher darin. Hast Du den schon einmal durchgestartet?

    Wie starte ich den? sudo systemctl restart apache2 funktioniert nicht: Unit apache2.service not found

    Nach dem pull mache ich erst noch docker compose stop ...

    Das habe ich vor dem Pull gemacht, sowohl nc als auch die db.

  • Finden sich da passende Meldungen im Log?

    Wo finde ich die?

    muß ja erst durch den Webserver. Ich vermute den Fehler eher darin. Hast Du den schon einmal durchgestartet?

    Wie starte ich den? sudo systemctl restart apache2 funktioniert nicht: Unit apache2.service not found

    Du brauchst doch einen Webserver!
    Welches NC-Image benutzt Du? Sind Webserver und DB da schon mit drin?

  • Tut mir leid, beim zweiten Lesen habe ich verstanden, dass NC ja erreichbar ist - eben mit der Meldung "Aktualisierung erforderlich".
    Anscheinend hat sich da etwas beim Update/Upgrade verhaspelt.
    Das NC-Log siehst Du mit docker logs --timestamps nextcloud. Vielleicht finden sich da Hinweise.

    Da es ein Update gab (33.0.3 nach 33.0.5 oder so ähnlich, die genauen releases habe ich nicht mehr im Kopf 🙄 ), dachte ich mach mal.

    Aktuell ist 34.0.1. Die Schritte, von welchem Release auf welches Release zu aktualisieren, sind wichtig! S. How to upgrade — Nextcloud 34 Administration Manual.

    Hast Du den Container schon gestoppt und neu gestartet?
    Notfalls - wie schon geschrieben - den Container neu aufsetzen.

  • Tatsächlich hatte ich gerade beim Upgrade von 34.0.1 auf 34.0.2 das gleiche Problem.
    Zunächst hatte ich nach dem Upgrade dauerhaft ein Wartungsfenster. Das habe ich mit

    Code
    docker exec -u 33 -it nextcloud /usr/local/bin/php /var/www/html/occ maintenance:mode --off

    beendet.
    Danach kam die oben beschriebene Anzeige. Geholfen hat ein Upgrade über die Kommano-Zeile:

    Code
    docker exec -u 33 -it nextcloud /usr/local/bin/php /var/www/html/occ upgrade
  • Ok, wie hast du den Update der NC ursprünglich angestoßen, aus NC heraus (Web-Updater) oder über den Docker Mechanismus (docker pull usw.)?

    Edit: Hast du einen Link, wo der Update per kommandozeile beschrieben ist? In der NC doku habe ich nichts dazu gefunden.

    Edited once, last by mopperle (July 27, 2026 at 5:42 PM).

  • Ok, wie hast du den Update der NC ursprünglich angestoßen, aus NC heraus (Web-Updater) oder über den Docker Mechanismus (docker pull usw.)?

    So wie hier dokumentiert und so wie Du es auch gemacht hast:

    Code
    docker compose pull nextcloud
    docker compose stop nextcloud
    docker compose up -d nextcloud

    Und vorher die Datenbank sichern!

    Unter Docker nicht den Web-Updater benutzen! Darauf weist die Meldung ja auch ausdrücklich hin.

    Edit: Hast du einen Link, wo der Update per kommandozeile beschrieben ist? In der NC doku habe ich nichts dazu gefunden.

    Using the occ command — Nextcloud 34 Administration Manual:

    Code
    Available commands:
    ...
     upgrade               run upgrade routines after installation of
                           a new release. The release has to be
                           installed before.

    Das passt, weil das neue Docker-Image das neue Release ja schon mitgebracht hat.

    Und bzgl. Docker: Accessing the Nextcloud command-line interface (occ)

  • Im Terminal das Upgrade antriggern:

    Code
    sudo -u www-data php /var/www/html/nextcloud/updater/updater.phar

    Den Pfad musst auf deine Installation anpassen.

    Es geht hier um Nextcloud unter Docker.

    Und da kann man sicherlich den updater.phar aufrufen. Diese Zeile anpassen, dann sollte es IMHO funktionieren:

    Code
    docker exec -u 33 -it nextcloud /usr/local/bin/php /var/www/html/nextcloud/updater/updater.phar
  • Im Terminal das Upgrade antriggern:

    Code
    sudo -u www-data php /var/www/html/nextcloud/updater/updater.phar

    Den Pfad musst auf deine Installation anpassen.

    Es geht hier um Nextcloud unter Docker.

    Und da kann man sicherlich den updater.phar aufrufen. Diese Zeile anpassen, dann sollte es IMHO funktionieren:

    Code
    docker exec -u 33 -it nextcloud /usr/local/bin/php /var/www/html/nextcloud/updater/updater.phar

    Ob das funktioniert, weiss ich nicht.
    What does the updater do?:

    Quote

    The built-in updater performs these operations:

    • Check for expected files: checks if only the expected files of a Nextcloud installation are present, because it turned out that some files that were left in the Nextcloud directory caused side effects that risked the update procedure.
    • Check for write permissions: checks if all files that need to be writable during the update procedure are actually writable.
    • Enable maintenance mode: enables the maintenance mode so that no other actions are executed while running the update of the code.
    • Create backup: creates a backup of the existing code base in /updater-INSTANCEID/backups/nextcloud-CURRENTVERSION/ inside of the data directory (this does not contain the /data directory nor the database).
    • Downloading: downloads the code in the version it should update to. This is also shown in the web UI before the update is started. This archive is downloaded to /updater-INSTANCEID/downloads/.
    • Extracting: extracts the archive to the same folder.
    • Replace entry points: replaces all Nextcloud entry points with dummy files so that when those files are replaced all clients still get the proper maintenance mode response. Examples for those endpoints are index.php, remote.php or ocs/v1.php.
    • Delete old files: deletes all files except the above mentioned entry points, the data and config dir as well as non-shipped apps and themes. (And the updater itself of course)
    • Move new files in place: moves the files from the extracted archive in place.

    Das widerspricht dem Konzept von Docker, denn die aktuelle Software (oder die gewünschte Version) liegt im neuen Container ja schon vor.
    (Ich tippe, der Updater würde im Fall der aktuellen Software feststellen, dass sie schon installiert ist und die entsprechenden Schritte überspringen)
    Man aktualisiert auch keine Software im Docker-Container sondern lädt dann das Docker-Image herunter, dass die neue Version enthält. Das ist das Konzept von Docker.
    Die Version der Software kann ja durchaus Abhängigkeiten zu anderer Software oder Konfigurationen haben. Um diese Konsistenzen kümmert sich i.a. der Docker-Maintainer.


    Nachtrag:
    Ich habe gerade mal nachgesehen.
    Im Docker-Container gibt es kein /var/www/html/nextcloud, damit auch kein /var/www/html/nextcloud/updater und es gibt auch kein /var/www/html/updater.
    Das braucht es ja auch nicht.

    Edited once, last by pisel (July 29, 2026 at 7:41 PM).

  • So, nachdem ich Nextcloud dank raspiBackup wieder habe herstellen können und es eine Weile problos lief, habe jetzt einen neuen Anlauf unternommen um Nextcloud upzudaten. Aber irgendwie scheint Nextcloud diesbezüglich nicht besonders robust zu sein und zickt rum.

    Da NC mir sagt, dass es für zwei Apps (Calendar und Camera RAW Previews) Updates gibt, habe ich mir gedacht ich aktualisiere diese Beiden erstmal aus der Weboberfläche raus. Bei der Calendar app hat das auch funktioniert (Meldung erfolgreich aktualisiert) aber ein weiterer Klick brachte dann Error 502 Bad Gateway und nach Neuanmeldung war NC im endlosen Wartungsmodus, was sich durch

    Code
    docker exec -u 33 -it nextcloud /usr/local/bin/php /var/www/html/occ maintenance:mode --off

    beheben lies. Dann bin ich das restliche Prozedere durchgegangen

    Code
    docker compose stop
    docker compose pull
    docker compose up -d

    Dann kam bei Neuanmeldung wieder die Meldung aus meinem ersten Post.

    Also

    Code
    docker exec -u 33 -it nextcloud /usr/local/bin/php /var/www/html/occ upgrade

    Dank pisel für diese beiden Befehle lief alles durch und ich konnte mich anmelden.

    Aber nach einem Klick auf das Dashboard-Icon hat mich NC rausgeschmissen und eine Neuanmeldung endete mit "Sitzungsfehler, Session Token abgelauf...". Nach einem Seitenrefresh konnte ich mich wieder anmelden, aber spätestens ein Klick auf das Dashboard und ich war wieder draußen.

    Dieses Problem konnte aber ich aber durch Löschen des Browsercache lösen.

    Insgesamt keine gute Erfahrung mit NC. Vor allem das Problem mit dem "Sitzungsfehler" ist mir nicht klar, und wie man das dauerhaft lösen kann. Ich möchte irgendwann mal einen zweiten und dritten Benutzer drauflassen und auch Verzeichnisse mit Dritten teilen. Aber momanten sehe ich da keinen Weg hin.

    Vielleicht hat jemand eine Idee.

  • OK, da habe ich mich nicht deutlich ausgedrückt. "Browsercache" heißt für mich alle "Surf-Daten", also Cache, cookies usw usw.

    ich habe mir jetzt mal den cookie von NC angesehen. Da gibt es 2 Einträge, die ev. der grund sein könnten, aber ich kenn mic h mit Cookies nicht wirklich aus.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!