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:
+1
-1
@@ -6,7 +6,7 @@ Schritt-für-Schritt-Anleitungen für Updates und Optimierungen — **noch nicht
|
|||||||
|----------|--------|
|
|----------|--------|
|
||||||
| [nextcloud-optimierung-und-updates.md](nextcloud-optimierung-und-updates.md) | Nextcloud auf VM 101: Versionsstand, Minor-Update, Tuning, notify_push, DB-Indizes |
|
| [nextcloud-optimierung-und-updates.md](nextcloud-optimierung-und-updates.md) | Nextcloud auf VM 101: Versionsstand, Minor-Update, Tuning, notify_push, DB-Indizes |
|
||||||
| [nextcloud-tuning-freigabe.md](nextcloud-tuning-freigabe.md) | **Umgesetzt:** PHP-FPM, APCu, Cron (2026-06-28) |
|
| [nextcloud-tuning-freigabe.md](nextcloud-tuning-freigabe.md) | **Umgesetzt:** PHP-FPM, APCu, Cron (2026-06-28) |
|
||||||
| [nextcloud-notify-push-freigabe.md](nextcloud-notify-push-freigabe.md) | **Zur Absegnung:** notify_push via Linuxserver Docker Mod |
|
| [nextcloud-notify-push-freigabe.md](nextcloud-notify-push-freigabe.md) | **Umgesetzt:** notify_push via Sidecar (Mod nicht nutzbar) |
|
||||||
|
|
||||||
**Ist-Doku (Status quo):** [../pve1/06_ubuntu-vm-nextcloud.md](../pve1/06_ubuntu-vm-nextcloud.md)
|
**Ist-Doku (Status quo):** [../pve1/06_ubuntu-vm-nextcloud.md](../pve1/06_ubuntu-vm-nextcloud.md)
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
# Freigabe: notify_push (Client Push / Rust HPB)
|
# Freigabe: notify_push (Client Push / Rust HPB)
|
||||||
|
|
||||||
**Status:** ⏳ **Zur Absegnung — noch nicht umgesetzt**
|
**Status:** ✅ **Umgesetzt (2026-06-28)** — Sidecar statt Docker Mod (Mod scheiterte an fehlendem Container-Internet)
|
||||||
**Erstellt:** 2026-06-28
|
**Erstellt:** 2026-06-28
|
||||||
**Betrifft:** VM 101 ubuntu · Container `nextcloud` · NPM · **kein** NC-Version-Upgrade
|
**Betrifft:** VM 101 ubuntu · Container `nextcloud` + `nextcloud-notify-push` · NPM · **kein** NC-Version-Upgrade
|
||||||
|
|
||||||
Dieses Dokument beschreibt den geplanten Rollout von **notify_push** (High Performance Backend für Files, Rust-Daemon). Ziel: weniger Client-Polling (`index.php/204`, `status.php`) → weniger PHP-FPM-Last.
|
Dieses Dokument beschreibt den geplanten Rollout von **notify_push** (High Performance Backend für Files, Rust-Daemon). Ziel: weniger Client-Polling (`index.php/204`, `status.php`) → weniger PHP-FPM-Last.
|
||||||
|
|
||||||
@@ -20,12 +20,13 @@ Dieses Dokument beschreibt den geplanten Rollout von **notify_push** (High Perfo
|
|||||||
|
|
||||||
## Kurzfassung
|
## Kurzfassung
|
||||||
|
|
||||||
| Was | Empfehlung |
|
| Was | Umsetzung |
|
||||||
|-----|------------|
|
|-----|------------|
|
||||||
| **Deploy-Methode** | **Linuxserver Docker Mod** (nicht separater Sidecar) |
|
| **Deploy-Methode** | **Sidecar** `ghcr.io/nextcloud/notify_push:latest` mit `network_mode: service:nextcloud` |
|
||||||
| **Compose-Änderung** | 1 Zeile: `DOCKER_MODS=linuxserver/mods:nextcloud-notify-push` |
|
| **Compose-Änderung** | Neuer Service `notify_push` (Docker Mod **nicht** nutzbar — siehe unten) |
|
||||||
| **NPM-Änderung** | **Keine** — `/push/` wird im Nextcloud-Container terminiert |
|
| **NPM-Änderung** | **Keine** — `/push/` wird im Nextcloud-Container terminiert |
|
||||||
| **App** | `notify_push` v1.3.3 (NC 34 kompatibel) |
|
| **App** | `notify_push` v1.3.3 manuell in `apps/` (App Store aus Container nicht erreichbar) |
|
||||||
|
| **`trusted_proxies`** | `127.0.0.1` ergänzt (Index 3) |
|
||||||
| **Erwarteter Effekt** | Deutlich weniger Polling-Requests in Nginx-Logs |
|
| **Erwarteter Effekt** | Deutlich weniger Polling-Requests in Nginx-Logs |
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -57,7 +58,7 @@ NPM (10.2.2.254) ← TLS, WebSocket-Upgrade (bereits konfiguriert)
|
|||||||
▼
|
▼
|
||||||
Nextcloud-Container (10.2.2.253)
|
Nextcloud-Container (10.2.2.253)
|
||||||
├── Nginx location ^~ /push/ → 127.0.0.1:7867
|
├── Nginx location ^~ /push/ → 127.0.0.1:7867
|
||||||
└── notify_push (Rust) ← via Docker Mod, Port 7867 intern
|
└── notify_push (Sidecar) ← `network_mode: service:nextcloud`, Port 7867 intern
|
||||||
│
|
│
|
||||||
├── Redis (nextcloud-redis-1) ← Pub/Sub
|
├── Redis (nextcloud-redis-1) ← Pub/Sub
|
||||||
└── MariaDB (nextcloud-db-1)
|
└── MariaDB (nextcloud-db-1)
|
||||||
@@ -67,73 +68,77 @@ Nextcloud-Container (10.2.2.253)
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Empfohlene Methode: Linuxserver Docker Mod
|
## Geplante Methode vs. tatsächliche Umsetzung
|
||||||
|
|
||||||
Ihr nutzt `lscr.io/linuxserver/nextcloud:latest`. Linuxserver bietet dafür einen **offiziellen Mod** an — der passt besser als ein separater Sidecar-Container:
|
**Geplant war:** Linuxserver Docker Mod (`DOCKER_MODS=linuxserver/mods:nextcloud-notify-push`).
|
||||||
|
|
||||||
| | Docker Mod (empfohlen) | Separater Sidecar |
|
**Ergebnis beim Test:** Mod blieb bei `[mod-init] Running Docker Modification Logic` hängen — der Nextcloud-Container hatte **kein ausgehendes Internet**. Ursache: `iptables: false` in Docker (absichtlich für docbr0-Fest-IPs) ohne manuelles NAT. **Behoben 2026-06-28** via `docker-nat-rules.service` auf VM 101. Mod zurückgenommen, Sidecar deployed (Sidecar bleibt produktiv).
|
||||||
|
|
||||||
|
| | Docker Mod (geplant) | Sidecar (umgesetzt) |
|
||||||
|--|------------------------|-------------------|
|
|--|------------------------|-------------------|
|
||||||
| Wartung | offiziell von Linuxserver | manuell (Binary-Version, Netzwerk) |
|
| Wartung | offiziell von Linuxserver | Image `ghcr.io/nextcloud/notify_push` |
|
||||||
| Nginx `/push/` | bereits in `default.conf` | NPM Custom Location nötig |
|
| Nginx `/push/` | bereits in `default.conf` | gleich — kein NPM nötig |
|
||||||
| `trusted_proxies`-Probleme | selten (Push lokal im Container) | häufig (GitHub #663) |
|
| `trusted_proxies` | selten nötig | `127.0.0.1` ergänzt |
|
||||||
| Compose-Änderung | 1 Env-Variable | neuer Service + Netzwerk |
|
| Compose | 1 Env-Variable | eigener Service + `network_mode: service:nextcloud` |
|
||||||
|
|
||||||
Mod-Doku: https://github.com/linuxserver/docker-mods/tree/nextcloud-notify-push
|
Mod-Doku (Referenz): https://github.com/linuxserver/docker-mods/tree/nextcloud-notify-push
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Geplante Änderungen (Detail)
|
## Umgesetzte Änderungen (Detail)
|
||||||
|
|
||||||
### 1. `/opt/stacks/nextcloud/compose.yml`
|
### 1. `/opt/stacks/nextcloud/compose.yml` — Sidecar-Service
|
||||||
|
|
||||||
**Nur** beim Service `nextcloud` unter `environment` ergänzen:
|
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
nextcloud:
|
notify_push:
|
||||||
# … bestehende Einträge …
|
logging: *default-logging
|
||||||
environment:
|
image: ghcr.io/nextcloud/notify_push:latest
|
||||||
- PUID=33
|
container_name: nextcloud-notify-push
|
||||||
- PGID=33
|
restart: unless-stopped
|
||||||
- TZ=Etc/UTC
|
network_mode: "service:nextcloud"
|
||||||
- DOCKER_MODS=linuxserver/mods:nextcloud-notify-push # NEU
|
depends_on:
|
||||||
|
- nextcloud
|
||||||
|
volumes:
|
||||||
|
- ./config/www/nextcloud/config/config.php:/config/config.php:ro
|
||||||
|
command: ["/notify_push", "--port", "7867", "--nextcloud-url", "http://127.0.0.1", "/config/config.php"]
|
||||||
```
|
```
|
||||||
|
|
||||||
**Nicht ändern:** `db`, `redis`, `collabora`, Volumes, Netzwerke, Image-Tag.
|
`network_mode: service:nextcloud` teilt den Netzwerk-Namespace — Daemon lauscht auf `127.0.0.1:7867`, Nginx `/push/` funktioniert ohne NPM-Änderung.
|
||||||
|
|
||||||
### 2. Container neu erstellen (nur `nextcloud`)
|
`--nextcloud-url http://127.0.0.1` umgeht TLS-Fehler beim internen Self-Test (`CaUsedAsEndEntity` gegen `https://cloud.jeanavril.com`).
|
||||||
|
|
||||||
|
### 2. Sidecar starten
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd /opt/stacks/nextcloud
|
cd /opt/stacks/nextcloud
|
||||||
docker compose pull nextcloud
|
sudo docker compose up -d notify_push
|
||||||
docker compose up -d --force-recreate nextcloud
|
|
||||||
```
|
```
|
||||||
|
|
||||||
**Hinweis:** Wie beim PHP-FPM-Tuning reicht `docker restart` **nicht** — Mod wird beim Container-**Erstellen** geladen.
|
### 3. App manuell installieren (App Store aus Container nicht erreichbar)
|
||||||
|
|
||||||
**Erwartete Unterbrechung:** ~10–30 s für Nextcloud (Clients reconnecten automatisch).
|
|
||||||
|
|
||||||
### 3. App installieren & aktivieren
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker exec -u abc nextcloud php /app/www/public/occ app:install notify_push
|
# GitHub-Tarball v1.3.3 auf Host mit Internet laden, nach VM kopieren:
|
||||||
docker exec -u abc nextcloud php /app/www/public/occ app:enable notify_push
|
curl -sL "https://api.github.com/repos/nextcloud/notify_push/tarball/v1.3.3" -o /tmp/notify_push-src.tar.gz
|
||||||
|
# Entpacken nach /opt/stacks/nextcloud/config/www/nextcloud/apps/notify_push
|
||||||
|
# (custom_apps wurde vom Scanner nicht erkannt — apps/ nutzen)
|
||||||
|
sudo chown -R www-data:www-data .../apps/notify_push
|
||||||
|
sudo docker exec -u abc nextcloud php /app/www/public/occ app:enable notify_push
|
||||||
```
|
```
|
||||||
|
|
||||||
(Falls App-Store nicht erreichbar: manuell v1.3.3 von https://apps.nextcloud.com/apps/notify_push)
|
### 4. Setup + trusted_proxies
|
||||||
|
|
||||||
### 4. Setup-Wizard
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker exec -u abc nextcloud php /app/www/public/occ notify_push:setup https://cloud.jeanavril.com/push
|
sudo docker exec -u abc nextcloud php /app/www/public/occ config:system:set trusted_proxies 3 --value=127.0.0.1
|
||||||
|
sudo docker exec -u abc nextcloud php /app/www/public/occ notify_push:setup https://cloud.jeanavril.com/push
|
||||||
```
|
```
|
||||||
|
|
||||||
Der Wizard prüft automatisch: Erreichbarkeit, WebSocket, Reverse Proxy, Redis.
|
Der Wizard prüft automatisch: Erreichbarkeit, WebSocket, Reverse Proxy, Redis. **Ergebnis 2026-06-28:** alle Checks grün, `configuration saved`.
|
||||||
|
|
||||||
### 5. Logs prüfen
|
### 5. Logs / Metriken prüfen
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker logs nextcloud 2>&1 | grep -i notify
|
docker logs nextcloud-notify-push 2>&1 | tail -20
|
||||||
# Erwartet: "**** Starting notify-push ****"
|
docker exec -u abc nextcloud php /app/www/public/occ notify_push:metrics
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -252,10 +257,10 @@ docker exec nextcloud tail -f /config/log/nginx/access.log | grep -E 'status\.ph
|
|||||||
|
|
||||||
**Erfolgskriterien:**
|
**Erfolgskriterien:**
|
||||||
|
|
||||||
- [ ] `notify_push:setup` ohne Fehler
|
- [x] `notify_push:setup` ohne Fehler (2026-06-28)
|
||||||
- [ ] Log: „Starting notify-push“
|
- [x] Sidecar lauscht auf Port 7867 (`ss -tlnp` im nextcloud-Netzns)
|
||||||
- [ ] `notify_push:metrics` zeigt Verbindungen (sobald Clients online)
|
- [x] `notify_push:metrics` erreichbar (Verbindungen steigen sobald Clients online)
|
||||||
- [ ] Weniger `index.php/204` / `status.php` in Access-Log vs. vorher
|
- [ ] Weniger `index.php/204` / `status.php` in Access-Log vs. vorher (24h Beobachtung)
|
||||||
- [ ] Kein erneuter PHP-FPM-Auslastungs-Incident unter Normal-Last
|
- [ ] Kein erneuter PHP-FPM-Auslastungs-Incident unter Normal-Last
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -277,41 +282,34 @@ docker exec nextcloud tail -f /config/log/nginx/access.log | grep -E 'status\.ph
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Umsetzungs-Befehle (nach Freigabe)
|
## Umsetzungs-Befehle (Referenz — ausgeführt 2026-06-28)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Auf VM 101 (als jean mit sudo) oder via SSH
|
# Sidecar in compose.yml (siehe oben), dann:
|
||||||
|
|
||||||
# A) compose.yml editieren — DOCKER_MODS Zeile hinzufügen (siehe oben)
|
|
||||||
|
|
||||||
# B) Deploy
|
|
||||||
cd /opt/stacks/nextcloud
|
cd /opt/stacks/nextcloud
|
||||||
sudo docker compose pull nextcloud
|
sudo docker compose up -d notify_push
|
||||||
sudo docker compose up -d --force-recreate nextcloud
|
|
||||||
sleep 15
|
|
||||||
sudo docker logs nextcloud 2>&1 | tail -30
|
|
||||||
|
|
||||||
# C) App + Setup
|
# App manuell + Setup
|
||||||
sudo docker exec -u abc nextcloud php /app/www/public/occ app:install notify_push
|
|
||||||
sudo docker exec -u abc nextcloud php /app/www/public/occ app:enable notify_push
|
sudo docker exec -u abc nextcloud php /app/www/public/occ app:enable notify_push
|
||||||
|
sudo docker exec -u abc nextcloud php /app/www/public/occ config:system:set trusted_proxies 3 --value=127.0.0.1
|
||||||
sudo docker exec -u abc nextcloud php /app/www/public/occ notify_push:setup https://cloud.jeanavril.com/push
|
sudo docker exec -u abc nextcloud php /app/www/public/occ notify_push:setup https://cloud.jeanavril.com/push
|
||||||
|
|
||||||
# D) Metriken
|
|
||||||
sudo docker exec -u abc nextcloud php /app/www/public/occ notify_push:metrics
|
sudo docker exec -u abc nextcloud php /app/www/public/occ notify_push:metrics
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**Snapshot vor Umsetzung:** `pre-notify-push-20260628` auf VM 101.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Alternative (nicht empfohlen): Separater Sidecar-Container
|
## Alternative: Docker Mod (nicht nutzbar ohne Container-Internet)
|
||||||
|
|
||||||
Falls der Docker Mod Probleme macht, wäre ein separater Container mit `ghcr.io/nextcloud/notify_push` möglich — erfordert dann:
|
Der Linuxserver Mod wäre wartungsärmer, scheiterte aber am fehlenden ausgehenden Internet im Nextcloud-Container. **Falls Container-Netzwerk repariert wird**, Mod erneut testen:
|
||||||
|
|
||||||
- neuen Service in `compose.yml` mit `DATABASE_URL`, `REDIS_URL`, `NEXTCLOUD_URL`
|
```yaml
|
||||||
- NPM Custom Location `/push` → Sidecar-IP:7867
|
environment:
|
||||||
- `trusted_proxies` für Sidecar-Subnetz
|
- DOCKER_MODS=linuxserver/mods:nextcloud-notify-push
|
||||||
- Netzwerk-Anbindung an `nextcloud_default` + ggf. `docbr0`
|
```
|
||||||
|
|
||||||
**Für euren Stack nicht empfohlen** — Mod ist der offizielle Linuxserver-Weg und vermeidet die meisten Proxy-Probleme.
|
Dann Sidecar entfernen und `docker compose up -d --force-recreate nextcloud`.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -319,13 +317,13 @@ Falls der Docker Mod Probleme macht, wäre ein separater Container mit `ghcr.io/
|
|||||||
|
|
||||||
| | |
|
| | |
|
||||||
|---|---|
|
|---|---|
|
||||||
| ☐ | **Freigegeben** — Docker Mod wie beschrieben umsetzen |
|
| ☑ | **Freigegeben & umgesetzt** — Sidecar (Mod wegen fehlendem Container-Internet verworfen) |
|
||||||
| ☐ | **Anpassung** — z. B. Sidecar statt Mod, oder erst Snapshot |
|
| ☐ | **Anpassung** |
|
||||||
| ☐ | **Abgelehnt / später** |
|
| ☐ | **Abgelehnt / später** |
|
||||||
|
|
||||||
**Freigegeben von:** _______________
|
**Freigegeben von:** Jean
|
||||||
**Datum:** _______________
|
**Datum:** 2026-06-28
|
||||||
**Anmerkungen:** _______________
|
**Anmerkungen:** Docker Mod getestet, Sidecar mit `network_mode: service:nextcloud` produktiv.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -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 |
|
| **Background-Jobs** | ✅ System-Cron (5 min) | root-crontab |
|
||||||
| **VM RAM** | ✅ **12 GB** | `qm set 101 -memory 12288` |
|
| **VM RAM** | ✅ **12 GB** | `qm set 101 -memory 12288` |
|
||||||
| **Separates Redis für notify_push** | ❌ | Optional, erst relevant mit HPB |
|
| **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 |
|
| **Preview-/Scan-Jobs** | ❓ ungeprüft | Bei 93 TB NFS potenziell sehr teuer |
|
||||||
|
|
||||||
### PHP-FPM (Container-Default)
|
### 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 |
|
| **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 |
|
| **Repo** | https://github.com/nextcloud/notify_push |
|
||||||
| **Lizenz** | AGPL, **kostenlos** (nicht Enterprise-only) |
|
| **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 |
|
| **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.
|
**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
|
- `request_terminate_timeout = 300` (oder 600) — verhindert ewig hängende Worker
|
||||||
- ggf. `pm.max_requests = 500` — Worker regelmäßig recyclen
|
- ggf. `pm.max_requests = 500` — Worker regelmäßig recyclen
|
||||||
|
|
||||||
2. **`notify_push` evaluieren & deployen**
|
2. **`notify_push` evaluieren & deployen** ✅ (2026-06-28, Sidecar)
|
||||||
- App installieren, Binary + Proxy-Route
|
- App v1.3.3 manuell, Sidecar `ghcr.io/nextcloud/notify_push` mit `network_mode: service:nextcloud`
|
||||||
- Test: `occ notify_push:setup` / Self-Test-Tools aus dem Repo
|
- `occ notify_push:setup` — alle Checks grün
|
||||||
- Erwartung: deutlich weniger `index.php/204`-Traffic in Nginx-Logs
|
- Erwartung: deutlich weniger `index.php/204`-Traffic in Nginx-Logs (24h beobachten)
|
||||||
|
|
||||||
3. **APCu vergrößern**
|
3. **APCu vergrößern**
|
||||||
- `apc.shm_size` von 32 MB → **128 MB** (Custom-PHP-Ini im Linuxserver-Config-Volume)
|
- `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
|
## Nützliche Befehle
|
||||||
|
|
||||||
```bash
|
```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)**
|
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 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] PHP-FPM `www2.conf` angepasst + Container recreate
|
||||||
- [x] `apc.shm_size` auf 128 MB
|
- [x] `apc.shm_size` auf 128 MB
|
||||||
- [x] System-Cron für `occ background:cron` eingerichtet
|
- [x] System-Cron für `occ background:cron` eingerichtet
|
||||||
- [x] VM-RAM 12 GB
|
- [x] VM-RAM 12 GB
|
||||||
- [ ] `notify_push` — siehe [Freigabe-Dokument](../migration/nextcloud-notify-push-freigabe.md)
|
- [x] `notify_push` — Sidecar + App v1.3.3, `trusted_proxies` + `127.0.0.1`
|
||||||
- [ ] Nach Änderungen: Nginx-Access-Log auf Polling-Frequenz prüfen
|
- [ ] Nach Änderungen: Nginx-Access-Log auf Polling-Frequenz prüfen (24h)
|
||||||
|
|||||||
Reference in New Issue
Block a user