From 509fcd96b68b68a12742f72ded3c5d03864e12af Mon Sep 17 00:00:00 2001 From: root Date: Sun, 28 Jun 2026 09:37:54 +0200 Subject: [PATCH] Doku: Nextcloud-Migrationsplan und korrigierte Versionslogik. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Neuer Ordner migration/ mit Schritt-für-Schritt-Anleitung (Backup, Minor-Update, PHP-FPM, notify_push, DB-Indizes). Hub-Name vs. NC-Version in der Ist-Doku korrigiert: NC 34 = Hub 26 Spring, ADA bereits aktiv. Co-authored-by: Cursor --- README.md | 2 + migration/README.md | 11 + .../nextcloud-optimierung-und-updates.md | 415 ++++++++++++++++++ pve1/00_README.md | 1 + pve1/06_ubuntu-vm-nextcloud.md | 35 +- 5 files changed, 450 insertions(+), 14 deletions(-) create mode 100644 migration/README.md create mode 100644 migration/nextcloud-optimierung-und-updates.md diff --git a/README.md b/README.md index 69be07f..801e176 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,7 @@ DNS intern: `*.iot` → VLAN 40 (z. B. `homeassistant.iot` → 192.168.40.254) ``` docu/ ├── README.md ← diese Datei +├── migration/ ← Schritt-für-Schritt Updates & Tuning ├── shared/ ← übergreifend (MQTT, Git, Netzwerk) ├── pve1/ ← nur pve1 └── pve2/ ← nur pve2 @@ -30,6 +31,7 @@ docu/ | [shared/infrastruktur-netzwerk.md](shared/infrastruktur-netzwerk.md) | VLANs, IPs, Bridges | | [shared/mqtt-homeassistant.md](shared/mqtt-homeassistant.md) | MQTT-Broker, HA Discovery, Credentials | | [shared/git-und-repos.md](shared/git-und-repos.md) | Gitea, Tokens, Clone-Pfade | +| [migration/nextcloud-optimierung-und-updates.md](migration/nextcloud-optimierung-und-updates.md) | Nextcloud VM 101: Updates, Tuning, notify_push | ## Code-Repos (separat von dieser Doku) diff --git a/migration/README.md b/migration/README.md new file mode 100644 index 0000000..90bad72 --- /dev/null +++ b/migration/README.md @@ -0,0 +1,11 @@ +# Migration & geplante Änderungen + +Schritt-für-Schritt-Anleitungen für Updates und Optimierungen — **noch nicht automatisch ausgeführt**, außer wo im Dokument als erledigt markiert. + +| Dokument | Inhalt | +|----------|--------| +| [nextcloud-optimierung-und-updates.md](nextcloud-optimierung-und-updates.md) | Nextcloud auf VM 101: Versionsstand, Minor-Update, Tuning, notify_push, DB-Indizes | + +**Ist-Doku (Status quo):** [../pve1/06_ubuntu-vm-nextcloud.md](../pve1/06_ubuntu-vm-nextcloud.md) + +Stand: 2026-06-28 diff --git a/migration/nextcloud-optimierung-und-updates.md b/migration/nextcloud-optimierung-und-updates.md new file mode 100644 index 0000000..5b88416 --- /dev/null +++ b/migration/nextcloud-optimierung-und-updates.md @@ -0,0 +1,415 @@ +# Nextcloud — Optimierung & Updates (Schritt für Schritt) + +**Ziel:** Server-seitige Stabilität nach CPU-Incident 2026-06-28, ohne unnötiges Major-Upgrade. +**Instanz:** VM 101 ubuntu · `cloud.jeanavril.com` · Stack `/opt/stacks/nextcloud/` +**Verifiziert am:** 2026-06-28 + +--- + +## 0. Ausgangslage (verifiziert) + +Vor jeder Änderung wurde der Stand per `occ` geprüft: + +```bash +qm guest exec 101 -- docker exec -u abc nextcloud php /app/www/public/occ status +qm guest exec 101 -- docker exec -u abc nextcloud php /app/www/public/occ config:system:get version +``` + +| Feld | Wert | +|------|------| +| **versionstring** | **34.0.0** (intern 34.0.0.12) | +| **needsDbUpgrade** | false | +| **maintenance** | false | +| **Docker-Image** | `lscr.io/linuxserver/nextcloud:latest` | +| **Hub-Marketing** | Hub 26 Spring (Juni 2026) | +| **ADA Engine** | **bereits enthalten** (seit NC 33 / Hub 26 Winter) | + +### Versions-Mapping (wichtig) + +Hub-Name und Server-Versionsnummer sind **entkoppelt**: + +| Server-Version | Hub-Name | ADA Engine | +|----------------|----------|------------| +| NC 32 | Hub 25 Autumn | nein | +| NC 33 | Hub 26 Winter | **ja** (Debüt) | +| **NC 34** | **Hub 26 Spring** | **ja** (weiterentwickelt) | + +**Konsequenz:** Es gibt **kein** anstehendes Major-Upgrade „für ADA“. Ihr seid auf der **aktuellen Major-Version**. Offen ist: + +- Minor-Patch **34.0.0 → 34.0.1** (Security/Bugfixes) +- Betriebs-Tuning (PHP-FPM, notify_push, Cron) +- Image-Tag **pinnen** statt `:latest` + +Der frühere Roadmap-Punkt „Upgrade auf Hub 26 für ADA“ war **falsch** (Verwechslung Hub-Name ↔ NC-Nummer). + +### Was ADA bei euch bringt — und was nicht + +| ADA-Vorteil | Relevanz bei euch | +|-------------|-------------------| +| Previews aus File-Cache getrennt (~56 % kleinere `oc_filecache`) | mittel (188k Zeilen in DB, aber 93 TB NFS-Daten) | +| Authoritative Mount Points (~30 % schneller bei Freigaben) | hoch bei vielen Shares | +| Schlankerer Dateizugriff (~60 % bei freigegebenen Ordnern) | hoch | +| Weniger Preview-Ressourcen (40–90 %) | hoch | +| **Direkte S3-Downloads** (Thumbnails 2–10× schneller) | **nein** — Daten liegen auf **NFS/mergerfs**, nicht S3 | + +--- + +## 1. Backup (Pflicht vor jedem Image-Update) + +Nextcloud unterstützt **kein Downgrade**. Vor Image-Wechsel oder Major-Sprung: + +### 1.1 VM-Snapshot (pve1) + +```bash +# Auf pve1 — Snapshot der ganzen VM (schnellster Rollback) +qm snapshot 101 pre-nextcloud-update-$(date +%Y%m%d) --description "Vor NC Update/Tuning" +``` + +### 1.2 MariaDB-Dump + +```bash +qm guest exec 101 -- bash -c 'docker exec nextcloud-db-1 mariadb-dump -u root -p"$MYSQL_ROOT_PASSWORD" --single-transaction nextcloud' > /root/backups/nextcloud-db-$(date +%Y%m%d).sql +``` + +(Passwort aus `/opt/stacks/nextcloud/compose.yml` bzw. `db.env` — **nicht** in Git committen.) + +### 1.3 Config sichern + +```bash +qm guest exec 101 -- tar czf /root/backups/nextcloud-config-$(date +%Y%m%d).tar.gz -C /opt/stacks/nextcloud config +``` + +### 1.4 Maintenance-Fenster einplanen + +- Image-Update → Container startet ggf. **automatische DB-Migration** (Maintenance-Mode, User gesperrt) +- Große Instanzen: **Stunden** möglich +- Nach Major-Upgrade: Background-Migrationen laufen weiter → `occ background:cron` mehrfach ausführen **bevor** der nächste Major-Sprung + +--- + +## 2. Image-Tag pinnen (Schutz vor ungeplantem Upgrade) + +**Problem:** `:latest` + automatischer Pull (Dockge, Watchtower, …) kann **unbeabsichtigt** migrieren — **irreversibel**. + +**Empfehlung:** In `/opt/stacks/nextcloud/compose.yml` festen Tag setzen: + +```yaml +# Vorher: +# image: lscr.io/linuxserver/nextcloud:latest + +# Nachher (Stand Juni 2026 — vor Pull aktuellen Tag prüfen): +image: lscr.io/linuxserver/nextcloud:34.0.1 +# alternativ: lscr.io/linuxserver/nextcloud:version-34.0.1 +``` + +Verfügbare Tags prüfen: https://hub.docker.com/r/linuxserver/nextcloud/tags + +**Linuxserver-Regeln:** + +- Nur **ein Major-Sprung** pro Image-Update (z. B. 33 → 34, nicht 32 → 34) +- Update = neues Image pullen + Container **recreate** (nicht Web-Updater / `updater.phar`) +- Tag `previous` = vorherige Major-Version (für schrittweises Upgrade) + +```bash +cd /opt/stacks/nextcloud +docker compose pull +docker compose up -d +docker logs -f nextcloud # Migration/Startup beobachten +``` + +--- + +## 3. Minor-Update 34.0.0 → 34.0.1 + +**Risiko:** niedrig (Bugfixes/Security). **Sollte zeitnah** erfolgen — CVEs erscheinen oft ~3 Wochen nach Minor-Release. + +### Schritte + +1. **Schritt 1** (Backup) ausführen +2. Tag in `compose.yml` auf `34.0.1` setzen (siehe oben) +3. Pull & Recreate (siehe oben) +4. Verifizieren: + +```bash +qm guest exec 101 -- docker exec -u abc nextcloud php /app/www/public/occ status +qm guest exec 101 -- docker exec -u abc nextcloud php /app/www/public/occ check +``` + +5. Admin-UI: Warnungen, App-Kompatibilität, Logs + +**Kein** separater Major-Migrationspfad nötig — ihr bleibt auf NC 34. + +--- + +## 4. Datenbank-Indizes + +### 4.1 Bekanntes ADA-Migrationsproblem (32 → 33) + +Symptom nach Upgrade: hohe DB-CPU, langsame Instanz, Query: + +```sql +DELETE FROM oc_filecache WHERE path_hash = ? +``` + +**Ursache:** Index `fs_storage_path_hash` ist zusammengesetzt `(storage, path_hash)`. Reine `path_hash`-Lookups/DELETEs können **Full Table Scan** auslösen → Locks, Deadlocks. + +**Prüfen (aktueller Stand 2026-06-28):** + +```bash +qm guest exec 101 -- docker exec nextcloud-db-1 mariadb -u nextcloud -p nextcloud \ + -e "SHOW INDEX FROM oc_filecache WHERE Key_name LIKE '%path%';" +``` + +Bei uns vorhanden: `fs_storage_path_hash (storage, path_hash)` — **kein** separater `path_hash`-Only-Index. + +**Workaround** (nur wenn Symptome auftreten): + +```sql +CREATE INDEX fs_path_hash ON oc_filecache (path_hash); +``` + +Danach: + +```bash +docker exec -u abc nextcloud php /app/www/public/occ db:add-missing-indices +``` + +### 4.2 Fehlende Indizes (bereits angewendet) + +Am **2026-06-28** wurden per `occ db:add-missing-indices` u. a. folgende Indizes ergänzt: + +- `oc_properties` — `properties_name_path_user` +- `oc_systemtag_object_mapping` — `systag_objecttype` +- `oc_vcategory` — `unique_category_per_user` +- `oc_share` — `share_with_file_target_index` +- `oc_share_external` — `user_mountpoint_index` +- `oc_calendarobjects` — `calobjects_by_uid_index` +- `oc_cards_properties` — `cards_prop_abid_name_value` +- `oc_activity` — `activity_object_user` + +**Status:** erledigt. Bei künftigen Upgrades erneut: + +```bash +docker exec -u abc nextcloud php /app/www/public/occ db:add-missing-indices +docker exec -u abc nextcloud php /app/www/public/occ db:convert-filecache-bigint # falls empfohlen +``` + +--- + +## 5. PHP-FPM & APCu (Priorität 1) + +Konfiguration liegt persistent unter `/opt/stacks/nextcloud/config/php/` und wird in den Container gemountet. + +### 5.1 `/opt/stacks/nextcloud/config/php/www2.conf` + +Aktuell fast leer (Defaults: `pm.max_children = 5` — **Ursache des Incidents**). + +```ini +; Override default PHP-FPM limits +[www] +pm.max_children = 15 +pm.start_servers = 4 +pm.min_spare_servers = 2 +pm.max_spare_servers = 6 +request_terminate_timeout = 300 +pm.max_requests = 500 +``` + +**RAM-Rechnung:** ~80–100 MB/Worker → 15 Worker ≈ 1,2–1,5 GB — passt in VM mit 8 GB neben MariaDB/Redis. + +### 5.2 `/opt/stacks/nextcloud/config/php/php-local.ini` + +Aktuell nur `date.timezone`. Ergänzen: + +```ini +date.timezone = Etc/UTC +apc.shm_size=128M +``` + +(Default im Container: 32 MB — Nextcloud empfiehlt ≥ 128 MB.) + +### 5.3 Anwenden + +```bash +# Auf VM 101 +docker restart nextcloud + +# Prüfen +docker exec nextcloud php -i | grep apc.shm_size +docker exec nextcloud cat /etc/php84/php-fpm.d/www.conf | grep pm.max +``` + +--- + +## 6. Background-Jobs auf System-Cron (Priorität 2) + +### 6.1 Modus in Nextcloud setzen + +```bash +docker exec -u abc nextcloud php /app/www/public/occ background:cron +``` + +Alternativ: Admin → Grundeinstellungen → Hintergrundjobs → **Cron**. + +### 6.2 Crontab auf VM 101 (root) + +```bash +crontab -e +``` + +```cron +# Nextcloud Background-Jobs alle 5 Minuten +*/5 * * * * docker exec -u abc nextcloud php /app/www/public/occ background:cron >> /var/log/nextcloud-cron.log 2>&1 +``` + +### 6.3 Verifizieren + +```bash +docker exec -u abc nextcloud php /app/www/public/occ config:system:get backgroundjobs_mode +docker exec -u abc nextcloud php /app/www/public/occ background:queue:status +``` + +--- + +## 7. notify_push — Rust High Performance Backend (Priorität 1) + +**Version Stand Recherche:** v1.3.3 (Mai 2026) — Fix gegen DB-Query-Spitzen bei Cache-Invalidierung (relevant für euren Incident). + +**Effekt:** Clients müssen seltener `index.php/204` / `status.php` pollen → entlastet PHP-FPM **unabhängig von Client-Version**. + +**Voraussetzungen:** Redis ✅ · Reverse Proxy (NPM) ✅ · App + Daemon + +### 7.1 App installieren + +```bash +docker exec -u abc nextcloud php /app/www/public/occ app:install notify_push +docker exec -u abc nextcloud php /app/www/public/occ app:enable notify_push +``` + +(App ggf. vorher im App-Store / manuell bereitstellen — NC 34 kompatibel.) + +### 7.2 Sidecar-Container (empfohlen für Linuxserver-Setup) + +In `/opt/stacks/nextcloud/compose.yml` ergänzen — **Zugangsdaten aus `db.env` / `compose.yml` eintragen**, nicht committen: + +```yaml + notify_push: + image: ghcr.io/nextcloud/notify_push:latest # Tag zur NC-Version pinnen, z. B. v1.3.3 + container_name: nextcloud-notify-push + restart: unless-stopped + environment: + - PORT=7867 + - NEXTCLOUD_URL=https://cloud.jeanavril.com + # Compose-Service-Name ist "db", nicht der Container-Name + - DATABASE_URL=mysql://nextcloud:@db:3306/nextcloud + - REDIS_URL=redis://redis:6379 + depends_on: + - db + - redis + networks: + - default + - docbr0 # falls NPM über docbr0 routen soll +``` + +```bash +cd /opt/stacks/nextcloud +docker compose up -d notify_push +docker logs nextcloud-notify-push +``` + +**Hinweis:** Offizielles Image/Binary-Release mit App-Version abstimmen — siehe https://github.com/nextcloud/notify_push/releases + +Alternative ohne Docker-Image: statisches Binary `notify_push-x86_64-unknown-linux-musl` als Systemd-/Sidecar-Service. + +### 7.3 NPM — Custom Location + +Host `cloud.jeanavril.com` in Nginx Proxy Manager (`10.2.2.254`): + +| Feld | Wert | +|------|------| +| Location | `/push` | +| Scheme | `http` | +| Forward Host | IP/Name des notify_push-Containers (z. B. `10.2.2.x` auf docbr0 oder Container-Name wenn NPM im gleichen Docker-Netz) | +| Forward Port | `7867` | +| Websockets | **an** | + +### 7.4 Setup & Test + +```bash +docker exec -u abc nextcloud php /app/www/public/occ notify_push:setup +docker exec -u abc nextcloud php /app/www/public/occ notify_push:self-test +``` + +Optional separates Redis für Pub/Sub in `config.php`: + +```php +'notify_push_redis' => [ + 'host' => 'redis', + 'port' => 6379, +], +``` + +### 7.5 Erfolgskontrolle + +```bash +docker exec nextcloud tail -f /config/log/nginx/access.log | grep -E 'status\.php|index\.php/204' +``` + +Erwartung: deutlich weniger Treffer nach Aktivierung (Clients pollen seltener). + +--- + +## 8. Empfohlene Reihenfolge (Gesamtplan) + +| Phase | Schritt | Risiko | Status | +|-------|---------|--------|--------| +| **A** | Version verifizieren (`occ status`) | — | ✅ erledigt | +| **B** | Backup (Snapshot + DB + config) | — | ☐ offen | +| **C** | Image-Tag pinnen (`34.0.1`) | niedrig | ☐ offen | +| **D** | Minor-Update 34.0.0 → 34.0.1 | niedrig | ☐ offen | +| **E** | `db:add-missing-indices` | niedrig | ✅ erledigt (2026-06-28) | +| **F** | PHP-FPM + APCu (Schritt 5) | niedrig | ☐ offen | +| **G** | System-Cron (Schritt 6) | niedrig | ☐ offen | +| **H** | notify_push (Schritt 7) | mittel | ☐ offen | +| **I** | `fs_path_hash`-Index nur bei DB-Symptomen | mittel | ☐ beobachten | +| **J** | Client-Updates | optional | ☐ optional | + +**Begründung Reihenfolge:** Erst Backup + kontrolliertes Minor-Update, dann Tuning das den CPU-Incident verhindert (FPM, notify_push). Major-Upgrade **aktuell nicht nötig**. + +--- + +## 9. Rollback + +| Änderung | Rollback | +|----------|----------| +| PHP-FPM / APCu | Dateien zurücksetzen, `docker restart nextcloud` | +| notify_push | Container stoppen, App deaktivieren, NPM-Location entfernen | +| Minor-Update 34.0.1 | **Nicht supported** — VM-Snapshot oder DB+Config-Restore | +| DB-Indizes | Normalerweise nicht zurückrollen | + +--- + +## 10. Referenzen + +| Thema | URL | +|-------|-----| +| Linuxserver Update-Regeln | https://docs.linuxserver.io/images/docker-nextcloud/ | +| Linuxserver Image-Änderung 2023 | https://info.linuxserver.io/issues/2023-06-25-nextcloud/ | +| notify_push | https://github.com/nextcloud/notify_push | +| ADA Engine Blog | https://nextcloud.com/blog/a-new-data-access-architecture-for-nextcloud-introducing-the-ada-engine/ | +| Memory caching | https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/caching_configuration.html | +| Ist-Doku / Incident | [../pve1/06_ubuntu-vm-nextcloud.md](../pve1/06_ubuntu-vm-nextcloud.md) | + +--- + +## Checkliste (zum Abhaken) + +- [ ] Snapshot VM 101 +- [ ] DB-Dump + Config-Archiv +- [ ] `compose.yml`: Image `34.0.1` statt `latest` +- [ ] Minor-Update durchgeführt, `occ check` OK +- [ ] `www2.conf` + `php-local.ini` angepasst +- [ ] Crontab für `background:cron` +- [ ] notify_push deployed + NPM `/push` + `notify_push:setup` OK +- [ ] Nginx-Log: Polling zurückgegangen +- [ ] Optional: Client-Updates diff --git a/pve1/00_README.md b/pve1/00_README.md index 371d373..94d49cb 100644 --- a/pve1/00_README.md +++ b/pve1/00_README.md @@ -21,6 +21,7 @@ - [MQTT & HA](../shared/mqtt-homeassistant.md) - [Git & Repos](../shared/git-und-repos.md) - [Netzwerk](../shared/infrastruktur-netzwerk.md) +- [Nextcloud Migration & Tuning](../migration/nextcloud-optimierung-und-updates.md) ## Besonderheiten pve1 diff --git a/pve1/06_ubuntu-vm-nextcloud.md b/pve1/06_ubuntu-vm-nextcloud.md index b109dcb..521321e 100644 --- a/pve1/06_ubuntu-vm-nextcloud.md +++ b/pve1/06_ubuntu-vm-nextcloud.md @@ -28,9 +28,13 @@ Daten: Stack-Pfad auf der VM: /opt/stacks/nextcloud/ Compose: /opt/stacks/nextcloud/compose.yml Nextcloud-Config: /opt/stacks/nextcloud/config/www/nextcloud/config/config.php -Image: lscr.io/linuxserver/nextcloud:latest (NC 34.0.0.12) +Image: lscr.io/linuxserver/nextcloud:latest (NC 34.0.0.12 = Hub 26 Spring) ``` +**Versionsstand (verifiziert 2026-06-28):** NC **34.0.0** — das ist die **neueste Major-Version** (Hub 26 Spring). Die **ADA Engine ist bereits aktiv** (seit NC 33). Es gibt kein anstehendes „Hub-26-Upgrade“ — nur Minor-Patches (z. B. 34.0.1) und Betriebs-Tuning. + +**Schritt-für-Schritt-Anleitung:** [../migration/nextcloud-optimierung-und-updates.md](../migration/nextcloud-optimierung-und-updates.md) + --- ## Incident 2026-06-28 (CPU 100 %) @@ -139,18 +143,17 @@ Konfiguration laut Doku: Aktuelle Releases: v1.3.x (2026), u. a. Fixes gegen DB-Query-Spitzen bei Cache-Invalidierung. -### 2. ADA Engine — **Accelerated Direct Access** (Zukunft / Hub 26+) +### 2. ADA Engine — **Accelerated Direct Access** (bereits in NC 33/34) | | | |---|---| -| **Was** | Architektur-Rewrite in PHP, Go und Rust für Skalierung großer Instanzen | -| **Ankündigung** | Nextcloud Blog, Feb 2026 — „Hub 26 Winter“ | -| **Kernideen** | File-Cache-Sharding, vorberechnete Berechtigungen, direkte Downloads (S3), Push von Änderungslisten an Clients | -| **HPB Files v2.0** | Rust-Komponente: verteilt Benachrichtigungen über ein Zeitintervall, sendet betroffene Dateilisten | -| **Aktuell bei uns** | **NC 34.0.0** — ADA/Hub-26-Features **noch nicht** verfügbar | -| **Aktion** | Beobachten beim Upgrade auf Hub 26; kein separates „Install ADA“-Paket heute | +| **Was** | Architektur-Rewrite für Skalierung (File-Cache, Mounts, Previews, Push an Clients) | +| **Debüt** | NC 33 = Hub 26 Winter (Feb 2026) | +| **Bei uns** | **NC 34.0.0** — ADA **bereits enthalten** | +| **S3-Direct-Download** | Greift **nicht** bei NFS-Daten (nur S3-Storage) | +| **HPB Files v2 (Rust)** | Teil des notify_push-Ökosystems — siehe unten | -**Fazit:** Für die aktuelle Instanz ist **`notify_push` der relevante Rust-Schritt**. ADA kommt mit einem größeren Major-Upgrade. +**Fazit:** Kein separates ADA-Upgrade nötig. Nächster sinnvoller Rust-Schritt: **`notify_push`** deployen. --- @@ -186,10 +189,11 @@ Aktuelle Releases: v1.3.x (2026), u. a. Fixes gegen DB-Query-Spitzen bei Cache-I 6. **Nginx FastCGI-Timeouts** - `fastcgi_read_timeout` im Linuxserver site-conf falls 504 bei langen, legitimen Requests -### Priorität 3 — beim nächsten Major-Upgrade +### Priorität 3 — Wartung & Updates -7. **Upgrade auf Hub 26 (NC 26)** — ADA Engine, File-Cache-Splitting, HPB v2 -8. **Preview-Strategie** — Hub 26 trennt Preview-Metadaten aus File-Cache (bis ~56 % kleiner) +7. **Minor-Update 34.0.0 → 34.0.1** + Image-Tag pinnen (siehe [Migration](../migration/nextcloud-optimierung-und-updates.md)) +8. **DB-Indizes** — `fs_path_hash` auf `oc_filecache` nur bei Symptomen (ADA-Migrations-Bug 32→33) +9. **Preview-/Scan-Jobs** — gezielt, nicht pauschal auf 93 TB NFS ### Optional / Client-seitig (nicht zwingend) @@ -234,9 +238,12 @@ cd /opt/stacks/nextcloud && docker compose ps ## Offene Punkte / TODO (Betreiber) +Details und Befehle: **[migration/nextcloud-optimierung-und-updates.md](../migration/nextcloud-optimierung-und-updates.md)** + +- [ ] Backup + Image-Tag pinnen + Minor 34.0.1 - [ ] PHP-FPM `www2.conf` anpassen und Container restart -- [ ] `notify_push` PoC (App + Binary + NPM-Route) +- [ ] `notify_push` PoC (App + Sidecar + NPM-Route) - [ ] `apc.shm_size` auf 128 MB - [ ] System-Cron für `occ background:cron` einrichten +- [x] `db:add-missing-indices` (2026-06-28) - [ ] Nach Änderungen: Nginx-Access-Log auf Polling-Frequenz prüfen -- [ ] Hub-26-Upgrade planen (ADA)