Nextcloud - Installation des High Performance Backend
2 min read

Nextcloud - Installation des High Performance Backend

In diesem Beitrag wird das mit Nextcloud Server Version 21 erschienene High Performance Backend installiert und konfiguriert.
Nextcloud - Installation des High Performance Backend

Inhalt:

Vorwort

Mit der Major Version 21 von Nextcloud wurde das »High Performance Backend« vorgestellt.

Diese Komponente soll die Requests aller Desktop- oder Mobilen Clients, inklusive Usern aus dem Web, an den Server vermindern, indem die Clients nicht mehr Pollen müssen. Das bedeutet, dass bisher alle Clients beim Server angefragt haben, ob es Änderungen in den Dateien gibt. Ab jetzt benachrichtigt der Server mithilfe der »Notifications« App diese, wenn Änderungen bereitstehen.

In meiner privaten Cloud mit <10 Nutzern konnte ich keine große Entlastung feststellen, im Betrieb mit mehr als 30 Nutzern und sehr häufigen Dateiänderungen konnten die Anfragen circa um 30 bis 35% gesenkt werden.

Vorbereitungen

Zur Installation wird eine eigene Nextcloud Instanz, mit mindestens Version 21 benötigt, zudem sollte Redis installiert und konfiguriert sein. Das Github Repo spielt Szenarien für verschiedene Webserver/Proxies durch, da ich lediglich Nginx nutze, wird sich diese Installation ebenso nur mit dem beliebten Webserver beschäftigen.

Installation und Konfiguration

Zuerst wird die App aus dem In-App Store bezogen. Im Menü Werkzeuge lässt sich die gesuchte Applikation »Client Push« finden: https://apps.nextcloud.com/apps/notify_push

Nginx Konfiguration

Im Anschluss daran muss noch eine Ergänzung in der Server Konfiguration vorgenommen werden.

sudo nano /etc/nginx/conf.d/cloud.domain.tld

Hier wird im Server Block noch folgender Inhalt eingefügt:

server {
[...]
location /push/ {
    proxy_pass http://localhost:7867/;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
[...]
}

Nach der Änderung wird mithilfe von nginx -t noch die Konfiguration gecheckt. Im Anschluss daran wird der Webserver noch neu gestartet.

sudo systemctl restart nginx

Installationsstart und App Konfiguration

Danach kann die Installation erfolgen. Hierzu wird ins Installationsverzeichnis navigiert und anschließend via OCC das Setup gestartet.

cd /var/www/nextcloud
sudo -u www-data php occ notify_push:setup

In einer separaten SSH Session wird jetzt noch die obige Datei zum Start der App erstellt.

sudo nano /etc/systemd/system/notify_push.service

Der Inhalt ist aus dem Output zu entnehmen:

[Unit]
Description = Push daemon for Nextcloud clients

[Service]
Environment=PORT=7867
Environment=NEXTCLOUD_URL=https://cloud.domain.tld
ExecStart=/var/www/nextcloud/apps/notify_push/bin/x86_64/notify_push /var/www/nextcloud/config/config.php
User=www-data

[Install]
WantedBy = multi-user.target

Ist dies erledigt, setzen wir die Installation mit »Enter« fort. Zudem folgen wir der Anweisung im Terminal und setzen den folgenden Befehl ab

systemctl enable --now notify_push

Troubleshooting

Restart der App nach Updates

Nach Updates wird momenten jedesmal ein neues Binary bezogen. Hier muss der Service aktuell noch neu gestartet werden, anschließend funktioniert alles wieder normal.

systemctl restart notify_push.service

weitere Vorfälle

Zusätzliche Fehlkonfigurationen können im Repository eingesehen werden. Ich habe bei knapp 10 Instanzen nur das Problem nach Updates der App festgestellt.

Fazit

Binnen 15 Minuten kann das »High Performance Backend« implementiert werden. Aus meiner Sicht ist es nur für größere Instanzen sinnvoll oder wenn viele Daten dauernd geändert werden.