Nextcloud

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

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

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

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

Siehe auch