Zum Inhalt springen

Nextcloud

aus www.kruedewagen.de, Homepage von Ralf und Judith Krüdewagen (Kruedewagen)

Nextcloud ist ein Fork von ownCloud und dient vorrangig als Cloud-Speicherdienst für den eigenen Server.

Nextcloud Infos

Migration von Owncloud:

Homepage und Support:

Apps:

Artikel:

Collabora Online

Mit Collabora kann man sich einen Dienst für die kollaborative Arbeit an Office-Dokumenten einrichten. Es basiert auf LibreOffice und läuft typischerweise als Docker-Container.

Tipps:

  • Nach Update muss man manchmal die Einstellung der URL in "Collabora Online Server" erneut speichern.

Release Notes:

Only Office

  • Nachteile gegenüber Collabora
    • Bei geteilten Links ist der Editor immer "Anonym". Man kann keinen Namen setzen.
    • Chat und Videokonferenz via Nextcloud nicht möglich im Kontext des Dokuments.
    • Muss manuell geflusht werden, damit Änderungen im Cache in Datei geschrieben wird, z.B. per Cron
occ documentserver:flush

Talk

Mail

Andere Erweiterungen

ProxyPass /whiteboard/ http://127.0.0.1:3002/ upgrade=websocket
'allow_local_remote_servers' => true,

Tipps und Tricks

URL ändern

  • Verzeichnis im DocumentRoot anpassen
  • Pfade in DocumentRoot/.htaccess anpassen
  • Pfade in Apache Config anpassen, z.B. in /etc/apache2/conf.d/nextcloud.conf
  • Nextcloud Config in config.php anpassen
  • Ggf. Pfad zu data in Datenbank-Tabelle oc_storages anpassen
  • Pfad in Collabora Online anpassen (Auth)

PHP Version

  • PHP 7.4 -> Check hier ändern [1]:
lib/versioncheck.php

CalDAV und CardDAV

https://example.com/nextcloud
https://example.com/nextcloud/remote.php/dav/calendars/<username>/<calendarname>/
https://example.com/nextcloud/remote.php/dav/addressbooks/users/<username>/<addressbookname>/

Benutzung

Sonderzeichen

  • Falls Windows auf Client-Seite verwendet wird, sollte man bestimmte (dort ungültige) Sonderzeichen serverseitig einschränken (forbidden_chars): c't 02/25 S.162, https://ct.de/yj7z

Google Kalender

WebDAV

https://example.com/nextcloud
https://example.com/nextcloud/remote.php/dav/files/<USERNAME>/

Update

sudo -u wwwrun php updater/updater.phar
  • Update Channel in config.php
'updater.release.channel' => 'beta'

Downgrade einer App

Beispiel "Nextcloud Office":

  • Die betreffende App in Nextcloud UI deaktivieren
  • Bestehende App entfernen
cd apps/
rm -rf richdocuments
  • App herunterladen
wget https://github.com/nextcloud-releases/richdocuments/releases/download/v5.0.1/richdocuments-v5.0.1.tar.gz
  • App entpacken, Owner setzen und Download-Paket entfernen
tar zxvf richdocuments-v5.0.1.tar.gz
chown -R wwwrun:www richdocuments
rm richdocuments-v5.0.1.tar.gz
  • Die betreffende App in Nextcloud UI aktivieren

PHP Performance

PHP-FPM

Werte weit über Default setzen: https://spot13.com/pmcalculator/

  • 27. April 2024 -> php-fpm startet nicht mehr mit "pcre"-Fehler. Abhilfe: Paket libpcre2-8-0-x86-64-v3 deinstallieren

Konfiguration Tool: https://spot13.com/pmcalculator/

Caching

  • Opcache mit PHP-FPM
/etc/php7/fpm/php.ini


  • APCu
zypper in php7-APCu
/etc/php7/conf.d/apcu.ini

Prüfen:

phpinfo();

Chaching mit redis

  • Redis installieren
zypper in redis php8-redis
systemctl enable redis@default
  • Redis konfigurieren (Unix Socket statt TCP [2],[3])
vi /etc/redis/default.conf
unixsocket /run/redis/redis.sock
unixsocketperm 770
  • Socket Verzeichnis erstellen
mkdir /run/redis
chown redis:redis /run/redis
  • Webserver-User in Gruppe "redis" aufnehmen
vi /etc/group
redis:x:453:wwwrun
  • php-fpm neu starten (ggf. auch Webserver)
systemctl restart php-fpm
  • Redis starten
systemctl start redis@default
  • Redis prüfen
systemctl status redis@default
  • Logdatei prüfen
less /var/log/redis/default.log
  • Nextcloud konfigurieren (nur Filelocking)
'filelocking.enabled' => true,
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => array(
     'host' => '/var/run/redis/redis.sock',
     'port' => 0,
     'timeout' => 0.0,
      ),
  • Nextcloud konfigurieren (Filelocking + distributed server cache)
'filelocking.enabled' => true,
'memcache.locking' => '\OC\Memcache\Redis',
'memcache.distributed' => '\OC\Memcache\Redis',
'redis' => array(
     'host' => '/var/run/redis/redis.sock',
     'port' => 0,
     'timeout' => 0.0,
      ),
  • Nextcloud konfigurieren (Filelocking + distributed server cache + local cache)
'filelocking.enabled' => true,
'memcache.locking' => '\OC\Memcache\Redis',
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.local' =>'\OC\Memcache\Redis',
'redis' => array(
     'host' => '/var/run/redis/redis.sock',
     'port' => 0,
     'timeout' => 0.0,
      ),
  • Nextcloud Systemlog prüfen
  • Redis Aktivitäten prüfen (bei Dateiaktivitäten) [4]
redis-cli -s /run/redis/redis.sock MONITOR
redis-cli -s /run/redis/redis.sock KEYS "*"
  • Regelmäßige Dumps bzw. Snapshots im Filesystem [5]:
/var/lib/redis/default/dump.rdb
  • Laden der Snapshots nach Restart prüfen im Log (hier 326 Keys mit 1,59 MByte):
28151:C 03 Apr 2024 10:46:40.982 * Configuration loaded
28151:M 03 Apr 2024 10:46:40.982 * monotonic clock: POSIX clock_gettime
28151:M 03 Apr 2024 10:46:40.982 * Running mode=standalone, port=0.
28151:M 03 Apr 2024 10:46:40.983 * Server initialized
28151:M 03 Apr 2024 10:46:40.983 * Loading RDB produced by version 7.2.4
28151:M 03 Apr 2024 10:46:40.983 * RDB age 0 seconds
28151:M 03 Apr 2024 10:46:40.983 * RDB memory usage when created 1.59 Mb
28151:M 03 Apr 2024 10:46:40.983 * Done loading RDB, keys loaded: 326, keys expired: 0.
28151:M 03 Apr 2024 10:46:40.983 * DB loaded from disk: 0.001 seconds
28151:M 03 Apr 2024 10:46:40.983 * Ready to accept connections unix

Valkey als redis-Fork

Installation und Konfiguration mit Nextcloud:

  • Valkey installieren
zypper in valkey php8-redis
systemctl enable valkey@default
  • Valkey konfigurieren (Unix Socket statt TCP [6],[7])
vi /etc/valkey/default.conf
unixsocket /run/valkey/valkey.sock
unixsocketperm 770
  • Webserver-User in Gruppe "valkey" aufnehmen
vi /etc/group
valkey:x:453:wwwrun
  • php-fpm neu starten (ggf. auch Webserver)
systemctl restart php-fpm
  • Valkey starten
systemctl start valkey@default
  • Valkey prüfen
systemctl status valkey@default
  • Logdatei prüfen
less /var/log/valkey/default.log
  • Nextcloud konfigurieren (nur Filelocking)
'filelocking.enabled' => true,
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => array(
     'host' => '/var/run/valkey/valkey.sock',
     'port' => 0,
     'timeout' => 0.0,
      ),
  • Nextcloud konfigurieren (Filelocking + distributed server cache)
'filelocking.enabled' => true,
'memcache.locking' => '\OC\Memcache\Redis',
'memcache.distributed' => '\OC\Memcache\Redis',
'redis' => array(
     'host' => '/var/run/valkey/valkey.sock',
     'port' => 0,
     'timeout' => 0.0,
      ),
  • Nextcloud konfigurieren (Filelocking + distributed server cache + local cache)
'filelocking.enabled' => true,
'memcache.locking' => '\OC\Memcache\Redis',
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.local' =>'\OC\Memcache\Redis',
'redis' => array(
     'host' => '/var/run/valkey/valkey.sock',
     'port' => 0,
     'timeout' => 0.0,
      ),

Sicherheit

Known Issues

Bugs und Probleme.

  • Beim Sharen von öffentlichen Links (Freigaben) funktioniert das Anzeigen und Herunterladen von PDFs nicht, wenn zugleich im (Collabora) Office Plugin die "Sichere Ansicht" aktiviert ist. Dann schaltet sich anscheinend Office als Betrachter dazwischen und das PDF bleibt in der Browseransicht "leer". Gegencheck: "Download verbergen" in der Freigabe bei "Sichere Ansicht" aktivieren -> man sieht, dass Office das PDF anzeigt und nicht der PDF Viewer. Stand: 30.09.2025 (NC 31 und 32)
Related: https://github.com/nextcloud/server/issues/51569 , https://github.com/nextcloud/server/issues?q=is%3Aissue%20state%3Aopen%20secure%20view

Alternativen

  • ownCloud - aus dem Nextcloud hervorgegangen ist
  • OpenCloud als Fork von ownCloud (ab Januar 2025)

Siehe auch