Doku: notify_push umgesetzt, Docker-NAT für iptables=false.

Sidecar statt Docker Mod, manuelles MASQUERADE via docker-nat-rules.service dokumentiert.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
root
2026-06-28 10:45:59 +02:00
parent 3b12324d4e
commit e0f3953979
3 changed files with 102 additions and 85 deletions
+28 -9
View File
@@ -97,7 +97,7 @@ Client-Versionen (z. B. altes `mirall 3.0.3`) **verstärken** die Last durch hä
| **Background-Jobs** | ✅ System-Cron (5 min) | root-crontab |
| **VM RAM** | ✅ **12 GB** | `qm set 101 -memory 12288` |
| **Separates Redis für notify_push** | ❌ | Optional, erst relevant mit HPB |
| **`notify_push` (Rust HPB)** | ❌ nicht installiert | Clients pollen weiterhin aggressiv |
| **`notify_push` (Rust HPB)** | ✅ v1.3.3 + Sidecar `nextcloud-notify-push` | Setup OK 2026-06-28; Polling-Reduktion beobachten |
| **Preview-/Scan-Jobs** | ❓ ungeprüft | Bei 93 TB NFS potenziell sehr teuer |
### PHP-FPM (Container-Default)
@@ -131,7 +131,7 @@ Es gibt **zwei verschiedene** Rust-Themen; oft verwechselt:
| **Problem das es löst** | Clients fragen sonst alle paar Sekunden `index.php/204` / `status.php` ab → PHP-FPM-Last |
| **Repo** | https://github.com/nextcloud/notify_push |
| **Lizenz** | AGPL, **kostenlos** (nicht Enterprise-only) |
| **Aktuell** | App **nicht** in der App-Liste installiert |
| **Aktuell** | App **installiert** (v1.3.3), Sidecar auf Port 7867 |
| **Voraussetzungen** | Redis (✅ vorhanden), Reverse-Proxy-Weiterleitung für Push-Port, passende Binary-Version zur App |
**Relevanz für uns:** Sehr hoch — adressiert direkt das Polling-Problem (`index.php/204`, `status.php`), unabhängig von Client-Version.
@@ -167,10 +167,10 @@ Aktuelle Releases: v1.3.x (2026), u. a. Fixes gegen DB-Query-Spitzen bei Cache-I
- `request_terminate_timeout = 300` (oder 600) — verhindert ewig hängende Worker
- ggf. `pm.max_requests = 500` — Worker regelmäßig recyclen
2. **`notify_push` evaluieren & deployen**
- App installieren, Binary + Proxy-Route
- Test: `occ notify_push:setup` / Self-Test-Tools aus dem Repo
- Erwartung: deutlich weniger `index.php/204`-Traffic in Nginx-Logs
2. **`notify_push` evaluieren & deployen** ✅ (2026-06-28, Sidecar)
- App v1.3.3 manuell, Sidecar `ghcr.io/nextcloud/notify_push` mit `network_mode: service:nextcloud`
- `occ notify_push:setup` — alle Checks grün
- Erwartung: deutlich weniger `index.php/204`-Traffic in Nginx-Logs (24h beobachten)
3. **APCu vergrößern**
- `apc.shm_size` von 32 MB → **128 MB** (Custom-PHP-Ini im Linuxserver-Config-Volume)
@@ -203,6 +203,25 @@ Aktuelle Releases: v1.3.x (2026), u. a. Fixes gegen DB-Query-Spitzen bei Cache-I
---
## Docker-Netzwerk (VM 101)
Docker läuft mit `"iptables": false` in `/etc/docker/daemon.json`**absichtlich**, damit Docker die fest zugewiesenen IPs auf `docbr0` (z. B. Nextcloud `10.2.2.253`, NPM `10.2.2.254`) nicht überschreibt.
**Folge:** Docker setzt **kein NAT/MASQUERADE** für Bridge-Netze. Ohne manuelle Regeln haben Container kein ausgehendes Internet (App Store, Docker Mods, `curl` zu GitHub schlagen fehl).
**Lösung (seit 2026-06-28):** Systemd-Service `docker-nat-rules.service` + Skript `/usr/local/sbin/docker-nat-rules.sh`:
- `MASQUERADE` für `10.2.2.0/24` (docbr0) und `172.16.0.0/12` (Docker-Bridges) → `eth0`
- Läuft nach Boot/`docker.service`, ändert **nicht** `iptables: true`
```bash
sudo systemctl status docker-nat-rules
sudo iptables -t nat -S POSTROUTING
sudo docker exec nextcloud curl -sI https://github.com | head -1
```
---
## Nützliche Befehle
```bash
@@ -241,11 +260,11 @@ cd /opt/stacks/nextcloud && docker compose ps
Details und Befehle: **[migration/nextcloud-optimierung-und-updates.md](../migration/nextcloud-optimierung-und-updates.md)**
Freigabe Phase F+G: **[migration/nextcloud-tuning-freigabe.md](../migration/nextcloud-tuning-freigabe.md)** (✅ umgesetzt)
Freigabe notify_push: **[migration/nextcloud-notify-push-freigabe.md](../migration/nextcloud-notify-push-freigabe.md)** (⏳ offen)
Freigabe notify_push: **[migration/nextcloud-notify-push-freigabe.md](../migration/nextcloud-notify-push-freigabe.md)** (✅ umgesetzt 2026-06-28)
- [x] PHP-FPM `www2.conf` angepasst + Container recreate
- [x] `apc.shm_size` auf 128 MB
- [x] System-Cron für `occ background:cron` eingerichtet
- [x] VM-RAM 12 GB
- [ ] `notify_push`siehe [Freigabe-Dokument](../migration/nextcloud-notify-push-freigabe.md)
- [ ] Nach Änderungen: Nginx-Access-Log auf Polling-Frequenz prüfen
- [x] `notify_push`Sidecar + App v1.3.3, `trusted_proxies` + `127.0.0.1`
- [ ] Nach Änderungen: Nginx-Access-Log auf Polling-Frequenz prüfen (24h)