Benutzer-Werkzeuge

Webseiten-Werkzeuge


nextcloud:notify_push

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
nextcloud:notify_push [2026/07/27 09:53] – [3.3. Volume Section anpassen] franznextcloud:notify_push [2026/07/27 10:18] (aktuell) – [11. Client prüfen] franz
Zeile 191: Zeile 191:
  
  
-==== 3.4 Keine Verwendung von   –glob-config  bei ====+===== 4. Compose Konfiguration prüfen und starten ===== 
 + 
 +Syntax prüfen 
 + 
 +<code> 
 +cd <PROJEKTVERZEICHNIS> 
 +docker compose config --quiet 
 + 
 +</code> 
 + 
 +Dienste anzeigen 
 + 
 +<code> 
 +docker compose config --services 
 + 
 +</code> 
 + 
 +''notify_push'' muss in der Liste enthalten sein. 
 + 
 +Container erstellen 
 + 
 +<code> 
 +docker compose up -d --force-recreate notify_push 
 + 
 +</code> 
 + 
 +Status prüfen 
 + 
 +<code> 
 +docker compose ps notify_push 
 + 
 +</code> 
 + 
 +erwartet wird 
 + 
 +STATUS: Up\\ 
 +PORTS: 127.0.0.1:7867->7867/tcp 
 + 
 +eventuell logs prüfen 
 + 
 +<code> 
 +docker compose logs --tail=100 notify_push 
 + 
 +</code> 
 + 
 +Bei ''Restarting'' oder ''Exited'': 
 +<code> 
 +docker compose ps -a notify_push 
 +docker compose logs --tail=200 notify_push 
 + 
 +</code> 
 +===== 5. Apache Reverse-Proxy konfigurieren ===== 
 + 
 +Im HTTPS-VirtualHost der betreffenden Nextcloud-Domain müssen die Push-Regeln **vor** einer allgemeinen ''ProxyPass / ...''-Regel stehen. 
 + 
 +Beispiel:\\ 
 +<code> 
 +<VirtualHost *:443> 
 +    ServerName <DOMAIN> 
 + 
 +    ProxyPreserveHost On 
 + 
 +    # Nextcloud Client Push 
 +    ProxyPass        /push/ws  ws://127.0.0.1:7867/ws 
 +    ProxyPass        /push/    http://127.0.0.1:7867/ 
 +    ProxyPassReverse /push/    http://127.0.0.1:7867/ 
 + 
 +    # Nextcloud 
 +    ProxyPass        /  http://127.0.0.1:<APACHE_BACKEND_PORT>/ 
 +    ProxyPassReverse /  http://127.0.0.1:<APACHE_BACKEND_PORT>/ 
 + 
 +    # Bestehende TLS-, Header- und Zertifikatskonfiguration 
 +    # bleibt unverändert. 
 +</VirtualHost> 
 + 
 +</code> 
 + 
 +Die Reihenfolge ist wichtig!! 
 + 
 +<code> 
 +ProxyPass /push/ ... 
 +ProxyPass / ... 
 + 
 +</code> 
 +==== 5.1. Apache Module prüfen ==== 
 + 
 +<code> 
 +sudo a2enmod proxy proxy_http proxy_wstunnel headers 
 + 
 +</code> 
 + 
 +Konfiguration prüfen 
 + 
 +<code> 
 +sudo apachectl configtest 
 + 
 +</code> 
 + 
 +bei erfolgreichem Test 
 + 
 +<code> 
 +sudo systemctl reload apache2 
 + 
 +</code> 
 + 
 +aktiven virtual-host prüfen 
 + 
 +<code> 
 +sudo systemctl reload apache2 
 + 
 +</code> 
 + 
 +Push Regeln suchen 
 + 
 +<code> 
 +sudo grep -RniE \ 
 +  'ServerName|ProxyPass.*push|ProxyPass[[:space:|]]+/'
 +  /etc/apache2/sites-enabled /etc/apache2/conf-enabled 
 + 
 +</code> 
 +===== 6. Docker-Netz als vertrauenswürdigen Proxy eintragen ===== 
 + 
 +Der Push-Container ruft Nextcloud intern über den Service-Namen auf: 
 + 
 +<code> 
 +NEXTCLOUD_URL: "http://<APP_SERVICE>" 
 + 
 +</code> 
 + 
 +Nextcloud muss daher: 
 + 
 +  - das interne Docker-Netz als Proxy vertrauen und 
 +  - den internen Service-Namen als Domain akzeptieren. 
 + 
 +==== 6.1 Docker-Netzwerk und Subnetz ermitteln ==== 
 + 
 +<code> 
 +NETWORK=$(docker inspect <APP_CONTAINER>
 +  --format '{{range $name, $conf := .NetworkSettings.Networks}}{{$name}}{{end}}'
 + 
 +SUBNET=$(docker network inspect "$NETWORK"
 +  --format '{{range .IPAM.Config}}{{.Subnet}}{{end}}'
 + 
 +echo "Netzwerk: $NETWORK" 
 +echo "Subnetz:  $SUBNET" 
 + 
 +</code> 
 + 
 +Beispiel: 
 + 
 +Netzwerk: privat_privat-network \\ Subnetz:  172.29.0.0/16 
 + 
 +==== 6.2 Bestehende Proxy-Einträge prüfen ==== 
 + 
 +<code> 
 +docker compose exec -u www-data <APP_SERVICE> php occ \ 
 +  config:system:get trusted_proxies 
 + 
 +</code> 
 + 
 +Beispiel: 
 + 
 +127.0.0.1 
 + 
 +==== 6.Docker-Subnetz ergänzen ==== 
 + 
 +Den nächsten freien Index verwenden: 
 + 
 +<code> 
 +docker compose exec -u www-data <APP_SERVICE> php occ \ 
 +  config:system:set trusted_proxies 1 --value="$SUBNET" 
 + 
 +</code> 
 + 
 +Kontrolle 
 + 
 +<code> 
 +docker compose exec -u www-data <APP_SERVICE> php occ \ 
 +  config:system:get trusted_proxies 
 + 
 +</code> 
 + 
 +erwartet wird beispielsweise 
 + 
 +127.0.0.1 \\ 172.29.0.0/16 
 + 
 +**Nur kontrollierte Proxy-Adressen oder interne Docker-Netze eintragen. Vertrauenswürdige Proxys dürfen die von Nextcloud erkannte Client-IP beeinflussen.** 
 + 
 +===== 7. Internen Service-Namen als Trusted Domain eintragen ===== 
 + 
 +Vorhandene Einträge prüfen 
 + 
 +<code> 
 +docker compose exec -u www-data <APP_SERVICE> php occ \ 
 +  config:system:get trusted_domains 
 + 
 +</code> 
 + 
 +Den Service-Namen mit dem nächsten freien Index ergänzen: 
 + 
 +<code> 
 +docker compose exec -u www-data <APP_SERVICE> php occ \ 
 +  config:system:set trusted_domains 1 --value="<APP_SERVICE>" 
 + 
 +</code> 
 + 
 +Kontrolle 
 + 
 +<code> 
 +docker compose exec -u www-data <APP_SERVICE> php occ \ 
 +  config:system:get trusted_domains 
 + 
 +</code> 
 +===== 8. Verbindung testen ===== 
 + 
 +==== 8.1 Containerstatus ==== 
 + 
 +<code> 
 +docker compose ps notify_push 
 +docker compose logs --tail=100 notify_push 
 + 
 +</code> 
 +==== 8.2 Lokaler Port ==== 
 + 
 +<code> 
 +curl -i http://127.0.0.1:7867/test/cookie 
 + 
 +</code> 
 + 
 +eine Antwort wie 
 + 
 +HTTP/1.1 400 Bad Request 
 + 
 +ist bei einem direkten Aufruf über ''127.0.0.1'' möglich und zeigt bereits, dass der Push-Daemon antwortet. 
 + 
 +''Connection refused'' bedeutet dagegen: 
 + 
 +   * Container läuft nicht, 
 +  * Container startet ständig neu, 
 +  * Port ist nicht veröffentlicht oder 
 +  * kein Prozess lauscht im Container auf Port ''7867''
 + 
 +==== 8.3 Öffentlicher Pfad ==== 
 + 
 +<code> 
 +curl -i https://<DOMAIN>/push/test/cookie 
 + 
 +</code> 
 +===== 9.   notify_push  konfigurieren ===== 
 + 
 +Setup über den öffentlichen Push-Endpunkt ausführen: 
 + 
 +<code> 
 +docker compose exec -u www-data <APP_SERVICE> php occ \ 
 +  notify_push:setup https://<DOMAIN>/push 
 + 
 +</code> 
 + 
 +erwartetes Ergebnis 
 + 
 +✓ redis is configured \\ ✓ push server is receiving redis messages \\ ✓ push server can load mount info from database \\ ✓ push server can connect to the Nextcloud server \\ ✓ push server is a trusted proxy \\ ✓ push server is running the same version as the app \\ configuration saved 
 + 
 +Gespeicherten Endpunkt prüfen: 
 + 
 +<code> 
 +docker compose exec -u www-data <APP_SERVICE> php occ \ 
 +  config:app:get notify_push base_endpoint 
 + 
 +</code> 
 + 
 +erwartet wird 
 + 
 +https://<DOMAIN>/push 
 + 
 +===== 10. Firewall ===== 
 + 
 +Port ''7867''  wird nur an Loopback gebunden: 
 + 
 +<code> 
 +ports: 
 +  - "127.0.0.1:7867:7867" 
 + 
 +</code> 
 + 
 +Daher ist keine öffentliche UFW-Freigabe nötig. 
 + 
 +===== 11. Client prüfen ===== 
 + 
 +Nach erfolgreichem Setup: 
 + 
 +  - Nextcloud Desktop oder Nextcloud Talk Desktop vollständig abmelden. 
 +  - Client auch im Infobereich beziehungsweise Tray beenden. 
 +  - Client neu starten. 
 +  - Konto erneut anmelden. 
 +  - Diagnose prüfen. 
 + 
 +Die Diagnose sollte nicht mehr melden: 
 + 
 +<code> 
 +notify_push app enabled = no 
 + 
 +</code> 
 + 
 +Metriken des Push-Dienstes prüfen: 
 + 
 +<code> 
 +docker compose exec -u www-data <APP_SERVICE> php occ \ 
 +  notify_push:metrics 
 + 
 +</code>
  
  
nextcloud/notify_push.1785138815.txt.gz · Zuletzt geändert: von franz

Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki