Symptome:
- "Interner Serverfehler" in Nextcloud
- Collabora zeigt leere Dokumente / Kit crasht
- "Neue Datei konnte nicht aus Vorlage erstellt werden" für normale User
- nginx-Log:
OC\Files\GenericFileExceptionin richdocuments
Ursache:
HA's Backup-Restore extrahiert alle Dateien als root, unabhängig von der ursprünglichen Besitzerzuweisung. Dadurch landen appdata_*/, User-Verzeichnisse (andyw/, nxtcldadmin/) und alle Dateien darin als root:root.
DAC_READ_SEARCH(im Add-on aktiviert) erlaubt php-fpm (abc) zwar das Lesen ausroot:root 700-Verzeichnissen, aber kein Schreiben — deshalb schlagen Collabora-Vorlagen und neue Dateien fehl.- linuxserver's Init-Skripte fixen nur ihre eigenen Verzeichnisse, nicht die NC-Daten.
Sofort-Fix (im NC-Terminal):
chown -R abc:abc /config/data/appdata_ocr5rwk1xjk1/
chown -R abc:abc /config/data/andyw /config/data/nxtcldadminPermanente Lösung (ab v1.0.20):
ha-config.sh findet beim Start alle root-owned Unterverzeichnisse in data/ und setzt sie automatisch auf abc:abc:
find "${DATA_DIR}" -maxdepth 1 -mindepth 1 -type d -user root \
-exec chown -R abc:abc {} \;Symptom:
- Login funktioniert lokal (192.168.178.200:7443), aber nicht extern (nxtcloud.gizmonet.de)
- Nach 2FA: "Sitzungsfehler — Sitzungstoken abgelaufen"
Ursache:
linuxserver setzt overwrite.cli.url beim Start auf die Container-IP. Nach einem Backup-Restore oder Neustart wurde der manuell gesetzte Wert überschrieben. ha-config.sh hat diesen Wert bisher nicht gesetzt.
Permanente Lösung (ab v1.0.19):
ha-config.sh liest die erste Nicht-IP-Adresse aus trusted_domains und setzt automatisch:
occ config:system:set overwrite.cli.url --value="https://nxtcloud.gizmonet.de"
occ config:system:set overwritehost --value="nxtcloud.gizmonet.de"
occ config:system:set overwriteprotocol --value="https"Symptom:
- Nach automatischem Update auf NC34: Apps inkompatibel, Nextcloud nicht nutzbar
Ursache:
Dockerfile verwendete :latest-Tag und zog NC34, obwohl Rollback auf NC33 gewünscht war.
Lösung:
- Dockerfile auf exakten Tag gepinnt:
lscr.io/linuxserver/nextcloud:33.0.5-ls436 - Check-Update-Workflow auf NC 33.x beschränkt (kein automatisches Upgrade auf NC34+)
- NC33 aus Backup wiederhergestellt
Symptom:
- Jeder NC-Start dauert unnötig lang
maintenance:repair --include-expensiveläuft auch ohne Versionsupgrade
Ursache:
ha-config.sh rief maintenance:repair bei jedem Start auf.
Lösung (ab v1.0.17): Flag-basiertes System — repair läuft nur wenn die NC-Version sich geändert hat:
REPAIR_FLAG=/config/data/.repair_$(occ config:system:get version | tr -d '.')
if [ ! -f "$REPAIR_FLAG" ]; then
occ maintenance:repair --include-expensive
touch "$REPAIR_FLAG"
fiSymptom:
- Nach merge-dev-to-main: Image wird zweimal gebaut (einmal für dev-Push, einmal für main-Push)
Ursache:
Alle 17 Build-Workflows hatten branches: [dev, main].
Lösung:
Alle Build-Workflows auf branches: [dev] beschränkt. Auf main wird nur gemergt, nicht gebaut.
Symptom:
- Nach 2FA: "Sitzungstoken abgelaufen" — passiert nur extern, lokal geht es
Ursache: Staler APCu-Cache durch viele php-fpm-Neustarts und occ-Befehle während des Debuggings. Kein dauerhaftes Problem.
Lösung: NC Add-on neu starten — leert APCu-Cache und PHP-Sessions.
# Berechtigungen fixen (nach Restore)
chown -R abc:abc /config/data/
# NC-Log live (gefiltert)
tail -20 /config/data/nextcloud.log | grep -o '"message":"[^"]*"'
# Collabora-Verbindung prüfen
occ richdocuments:setup
# User-Verzeichnisse prüfen
ls -la /config/data/
# appdata-Berechtigungen prüfen
ls -la /config/data/appdata_ocr5rwk1xjk1/ | head -5
# overwrite-URL prüfen
grep -E "overwrite" /config/www/nextcloud/config/config.php| Version | Fix |
|---|---|
| 1.0.20 | Alle root-owned User-Verzeichnisse beim Start auf abc:abc setzen |
| 1.0.19 | overwrite.cli.url automatisch aus trusted_domains setzen |
| 1.0.18 | chown appdata_* beim Start (war zu eng gefasst) |
| 1.0.17 | maintenance:repair nur nach Versionsupgrade |
| 1.0.16 | occ läuft als abc statt root |
| 1.0.15 | Rollback auf NC33, Check-Update auf 33.x beschränkt |