Benutzer-Werkzeuge

Webseiten-Werkzeuge


nextcloud:notify_push

Dies ist eine alte Version des Dokuments!


notify_push mit Docker Compose und Apache einrichten

Zweck

Diese Anleitung beschreibt die Einrichtung der Nextcloud-App Client Push mit der technischen App-ID notify_push für mehrere getrennte Nextcloud-Docker-Projekte.

Die Anleitung ist für folgende Architektur ausgelegt:

  • Nextcloud läuft als Docker-Compose-Projekt.
  • Redis ist bereits vorhanden und in Nextcloud eingerichtet.
  • Apache läuft auf dem Docker-Host als HTTPS-Reverse-Proxy.
  • Jede Nextcloud-Instanz besitzt ein eigenes Docker-Netzwerk.
  • Der Push-Dienst läuft als zusätzlicher Compose-Service.
  • Port 7867 wird ausschließlich an 127.0.0.1 veröffentlicht.

notify_push reduziert regelmäßige Statusabfragen der Clients. Push-Nachrichten werden nach dem Best-Effort-Prinzip übertragen; die Clients führen weiterhin gelegentliche Prüfungen durch.

1. Platzhalter festlegen

PlatzhalterBeispielBedeutung
<PROJEKTVERZEICHNIS>/home/docker/dein_projektVerzeichnis der compose Datei
<DOMAIN>nextcloud.example.atöffentliche Nextcloud Domain
<NEXTDCLOUD_IMAGEnextcloud:34.0.2-apacheImage des Nextcloud Containers
<APP_SERVICE>appCompose Service der Nextcloud Anwendung
<APP_CONTAINERT>nextcloud-dein_projektName des Nextcloud Containers
<NETWORK>dein_prjekt-netzwerkDocker Netzwerk des Projektes
<PUSH_CONTAINER>nextcloud-dein_projekt-notify_pushName des push Containers
<APACHEE_BACKEND_PORT>8095Host-Port des Push Daemons
<PUSH_PORT>7867Port des Push Daemons

Vor jeder Änderung:

cd <PROJEKTVERZEICHNIS>
cp docker-compose.yml docker-compose.yml.bak-$(date +%Y%m%d-%H%M%S)

2. Voraussetzungen prüfen

2.1 Redis prüfen

docker compose exec -u www-data <APP_SERVICE> php occ config:system:get redis

zusätzlich

docker compose exec -u www-data <APP_SERVICE> php occ status

notify_push setzt einen funktionierenden Redis-Server voraus.

2.2. App installieren und aktivieren

docker compose exec -u www-data <APP_SERVICE> php occ app:install notify_push

Falls die App bereits installiertist

docker compose exec -u www-data <APP_SERVICE> php occ app:enable notify_push

Status prüfen

docker compose exec -u www-data <APP_SERVICE> php occ app:list | grep -A3 -B3 notify_push

2.3. Prozessorarchitektur und Binary prüfen

docker compose exec <APP_SERVICE> uname -m

Ausgabe bei einem AMD64/Intel Server

x86_64

Binary suchen

docker compose exec <APP_SERVICE> sh -c \
  'find /var/www/html/custom_apps/notify_push/bin \
  -type f -name notify_push -ls 2>/dev/null'

Für x86_64 muss diese Datei ausführbar sein:

/var/www/html/custom_apps/notify_push/bin/x86_64/notify_push

Falls erforderlich

chmod 755 custom_apps/notify_push/bin/x86_64/notify_push

3. Compose Service ergänzen

Der Push-Daemon wird als eigener Service im bestehenden Nextcloud-Projekt betrieben.

<blockquote>

Wichtig: Port 7867 darf nicht gleichzeitig beim Nextcloud-Service app und beim Dienst notify_push veröffentlicht werden.

</blockquote>==== 3.1. bei Bedarf Falsche Portfreigabe beim App-Service entfernen ====

Unter dem Nextcloud-Service darf nur der Web-Port stehen, zum Beispiel:

services:
  app:
    ports:
      - "127.0.0.1:<APACHE_BACKEND_PORT>:80"

3.2. Dienst mit notify_push

Den folgenden Service auf derselben Ebene wie app, db und redis ergänzen:

services:
  notify_push:
    image: <NEXTCLOUD_IMAGE>
    container_name: <PUSH_CONTAINER>
    restart: unless-stopped
    user: www-data

    entrypoint:
      - /var/www/html/custom_apps/notify_push/bin/x86_64/notify_push

    command:
      - /var/www/html/config/config.php

    environment:
      PORT: "7867"
      NEXTCLOUD_URL: "http://<APP_SERVICE>"
      TZ: "Europe/Vienna"

    depends_on:
      - <APP_SERVICE>
      - db
      - redis

    networks:
      - <NETWORK>

    ports:
      - "127.0.0.1:7867:7867"

    volumes:
      - nextcloud:/var/www/html:ro
      - ./config:/var/www/html/config:ro
      - ./custom_apps:/var/www/html/custom_apps:ro
      - /etc/localtime:/etc/localtime:ro

    secrets:
      - db_user_password
      - smtp_password

3.3. Volume Section anpassen

Die Volume-Namen und Bind-Mounts müssen zum vorhandenen app-Service passen.

Den App-Service anzeigen:

docker compose config | sed -n \
  '/^  <APP_SERVICE>:/,/^  [a-zA-Z0-9_-]*:/p'

Mindestens erforderlich sind normalerweise:

Zugriff auf /var/www/html/config

Zugriff auf /var/www/html/custom_apps

Zugriff auf das Nextcloud-Volume, sofern der Binary-Pfad oder weitere Dateien daraus stammen

dieselben Secrets, sofern config.php daraus Werte liest

dasselbe Docker-Netzwerk wie Nextcloud, Datenbank und Redis

Die Mounts im Push-Service können schreibgeschützt (:ro) eingebunden werden.

3.4 Keine Verwendung von –glob-config bei

nextcloud/notify_push.1785138793.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