DecaTec

Home-Server | Linux | Nextcloud | Raspberry Pi | Programmierung | Fotografie

Nextcloud – Tipps & Tricks für Admins (und Benutzer)

Nextcloud Logo

Nextcloud ist mittlerweile eine stabile und einfach einzurichtende Alternative zu anderen (kommerziellen) Cloud-Anbietern geworden. Gerade ist Version 13 erschienen, die u.a. Unterstützung für End-To-End Verschlüsselung, Anpassungen der Benutzeroberfläche und Verbesserungen in Sachen Performance mit sich bringt. Im Rahmen des Updates meiner Nextcloud-Instanz habe ich mir auch gleich mal die Zeit genommen, einige Punkte anzugehen, damit die Cloud noch mehr meinen eigenen Wünschen entspricht. Hauptsächlich sind dies bestimmte Parameter, die in der Standard-Konfiguration von Nextcloud gar nicht weiter zur Geltung kommen und deshalb leicht zu übersehen sind.

Dieser Artikel soll daher kurz und knapp ein paar Tipps und Tricks zeigen, die Nextcloud-Admins das Leben etwas leichter machen und auch für Cloud-Benutzer einen Mehrwert bieten.

Als Basis dient hier wie immer der Artikel Nextcloud auf Ubuntu Server mit nginx, MariaDB, PHP, Let’s Encrypt, Redis und Fail2ban.

Update-Historie (letztes Update: 29.07.2018)
  • 29.07.2018:
    • Um anonyme Uploads möglichst komfortabel zu handhaben, sollten die entsprechenden Einstellungen in den Admin-Settings unter Teilen gesetzt werden.

Vordefinierte Dateien für neue Benutzer

Jeder Benutzer, der in der Cloud neu angelegt wird, bekommt beim ersten Einloggen standardmäßig bestimmte Dateien und Verzeichnisse zur Verfügung gestellt. Dies sind im Grunde genommen nur ein paar Multimedia-Dateien (Bilder, Musik, Text) und ein Benutzerhandbuch als PDF.

Standard-Dateien für einen neuen Nextcloud-Benutzer

Standard-Dateien für einen neuen Nextcloud-Benutzer

Diese Dateien sind eher als „Demo-Dateien“ gedacht, um bestimmte Funktionen der Cloud demonstrieren zu können (z.B. die Galerie-Funktion zur Anzeige von Bildern). Im Normalfall wird ein Benutzer diese Dateien einfach löschen bevor er mit der eigentlichen Nutzung der Cloud beginnt. Das einzig Sinnvolle ist hier meiner Meinung nach nur das Manual, weil neue Benutzer hier mehr über Nextcloud und seine Funktionen erfahren können.

Der Nextcloud-Administrator kann allerdings eine eigene Verzeichnis-Struktur festlegen, die für einen neuen Benutzer angelegt werden soll. Möglich ist auch, die automatische Neuanlage von Dateien für neue Benutzer zu deaktivieren.

Die Dateien, die standardmäßig angelegt werden, sind im Verzeichnis /var/www/nextcloud/core/skeleton hinterlegt. D.h. alles, was in diesem Verzeichnis zu finden ist, wird für jeden neuen Benutzer in das eigene User-Verzeichnis kopiert.

Wichtig: Man könnte nun auf die Idee kommen, in dieses Verzeichnis eigene Dateien zu kopieren oder bestimmte Dateien zu löschen. Dies wird jedoch nicht empfohlen, da bei jedem Update von Nextcloud dieses Verzeichnis wieder mit den Standard-Dateien gefüllt wird.

Automatische Anlage von Dateien deaktivieren

Um das automatische Anlegen der Verzeichnisse/Dateien für neue Benutzer komplett zu deaktivieren, reicht es aus, eine kleine Änderung in der Konfigurations-Datei von Nextcloud vorzunehmen:

nano /var/www/nextcloud/config/config.php

Hier wird am Ende der Datei (aber vor der letzten Klammer) folgendes hinzugefügt:

'skeletondirectory' => '',

Diese kleine Änderung reicht schon aus, dass ein neuer Benutzer nun ohne „Dummy-Dateien“ beginnen kann – die Files-App ist nun standardmäßig leer.

Eigene vordefinierte Dateien hinterlegen

Wenn man als Admin allerdings eigene Dateien für neue Benutzer hinterlegen möchte, sieht das Vorgehen etwas anders aus. In diesem Beispiel möchte ich die Cloud nun so konfigurieren, dass ein neuer User lediglich das Benutzerhandbuch nach dem ersten Login vorfindet.

Dazu wird zunächst einmal ein Verzeichnis außerhalb des Nextcloud-Verzeichnisses erzeugt und nur das Benutzerhandbuch aus dem entsprechenden Verzeichnis hierhin kopiert. Anschließend müssen noch die notwendigen Verzeichnisrechte gesetzt werden.

mkdir -p /var/nextcloud_defaultfiles
cp /var/www/nextcloud/core/skeleton/Nextcloud\ Manual.pdf /var/nextcloud_defaultfiles/Nextcloud\ Manual.pdf
chown -R www-data:www-data /var/nextcloud_defaultfiles/

Nun muss diese Änderung noch der Nextcloud-Installation bekannt gemacht werden. Dazu wird die Konfiguration aufgerufen:

nano /var/www/nextcloud/config/config.php

Hier fügen wir weiter unten folgende Zeile ein:

'skeletondirectory' => '/var/nextcloud_defaultfiles',

Nun muss das soeben angelegte Verzeichnis noch die in die Liste der Verzeichnisse aufgenommen werden, auf die PHP Zugriff gewährt werden soll. Dazu wird der virtuelle Host von Nextcloud aufgerufen:

nano /etc/nginx/conf.d/nextcloudtutorial.goip.de_nextcloud.conf

Hier wird nun das neu angelegte Verzeichnis bei open_basedir hinzugefügt:

fastcgi_param PHP_VALUE "open_basedir=/var/www:/tmp/:/var/nextcloud_data:/dev/urandom:/proc/meminfo:/var/nextcloud_defaultfiles
					upload_max_filesize = 10G
					post_max_size = 10G
					max_execution_time = 3600
					output_buffering = off";

Nachdem dies erledigt ist, wird der Webserver neu gestartet:

service nginx restart

Wenn nun ein neuer Benutzer angelegt wird, erhält dieser nach dem ersten Einloggen nur noch das Nextcloud Benutzerhandbuch angezeigt.

Imagick-Erweiterung für individuelle Favoriten-Icons

Der nächste Tipp bezieht sich auf das sog. Theming, also das Anpassen des Look and Feels der eigenen Cloud. Hier bietet Nextcloud eine eigene Benutzeroberfläche in den Admin-Einstellungen. Hier kann beispielsweise ein eigenes Farbschema oder auch ein individuelles Icon hinterlegt werden.

Theming-Einstellungen in Nextcloud

Theming-Einstellungen in Nextcloud

Allerdings fällt auf, dass sich die hier vorgenommenen Änderungen nicht auf das das sog. Favicon auswirken (das Icon, welches in der Titelleiste des Browsers angezeigt wird). Hier wird immer das Standard-Icon mit dem Nextcloud-Logo auf blauem Grund angezeigt.

Damit ein individuelles Favicon genutzt wird, sind zwei Pakete zu installieren, die diese Funktion „nachrüsten“: Zunächst einmal Imagemagick (kurz: Imagick) und zum zweiten die entsprechende PHP-Erweiterung.

apt-get update 
apt-get install imagemagick php-imagick

Nach der Installation sollte der ganze Server neu gestartet werden:

reboot now

Wenn man sich nun neu in der Cloud anmeldet, wird ein individuelles Favicon in der Titelleiste des Browsers angezeigt:

Nextcloud mit Imagick-Erweiterung: Das Favoriten-Icon wird an das Theming angepasst

Nextcloud mit Imagick-Erweiterung: Das Favoriten-Icon wird an das Theming angepasst

Externer Speicher als Haupt-Speicher

Im Normalfall werden die Dateien der Nextcloud-Benutzer auf dem lokalen Speicher des Servers im Verzeichnis /var/nextcloud_data/<User>/files abgelegt. Wenn der Server nur über einen geringen Speicherplatz verfügt, z.B. bei einem Raspberry Pi (Affiliate-Link) mit nur einer kleinen SD-Karte, kann der Cloud-Speicher leicht durch externen Speicherplatz erweitert werden. Dies kann z.B. eine SMB-Freigabe auf einem NAS sein, oder auch ein beliebiger FTP-Server.

Bei Einbindung des externen Speichers (in der Admin-Oberfläche oder in den persönlichen Einstellungen des Benutzers) wird dazu ein Ordner angegeben, in dem der externe Speicher „gemountet“ wird (auf dem Bild rot markiert).

Einbinden externen FTP-Speichers

Einbinden externen FTP-Speichers

Der entsprechende Benutzer sieht dann in diesem Beispiel einen Ordner „FTP“ in der Datei-Übersicht, wohinter sich der externe FTP-Speicher verbirgt. Der Benutzer hat damit die Wahl, ob der seine Dateien lieber lokal auf dem Server speichern möchte (im „Root-Verzeichnis“ in der Files-App) oder lieber den externen Speicher verwenden möchte (im entsprechenden Unterordner).

Wenn – wie bereits erwähnt – der Speicherplatz auf dem lokalen Server sehr begrenzt ist, kann es für den Admin von Vorteil sein, den Zugriff der Benutzer auf den lokalen Speicher des Servers zu unterbinden. Dazu kann in der Admin-Oberfläche unter Verwaltung Externer Speicher beliebiger Speicher eingebunden werden. Der Trick hierbei ist nun die Angabe unter Ordnername. Wenn hier nämlich nur ein Slash („/“) angegeben wird, wird dieser externe Speicher quasi als Root-Verzeichnis der Cloud eingebunden. Der hinzugefügte externe Speicher kann an dieser Stelle auch noch gleich exklusiv für nur einen Benutzer freigegeben werden.

Dieser Benutzer sieht dann unter Dateien nur noch den externen Speicher. Für ihn besteht somit keine Möglichkeit mehr, Dateien oder Verzeichnisse auf dem lokalen Server anzulegen. So kann der Cloud-Administrator auf sehr einfache Weise den lokalen Speicherplatz schonen und die User zur Benutzung des externen Speichers „zwingen“. Trotzdem kann ein Benutzer in seinen persönlichen Einstellungen weitere externe Speicherorte hinzufügen (solange der Admin diese Option für die Benutzer freigeschaltet hat).

Vordefiniertes Verzeichnis für geteilte Dateien

Ein weiteres Detail, was mich schon immer etwas gestört hat, ist die Anzeige von Dateien, die ein Benutzer mit einem anderen User geteilt hat. Diese geteilten Dateien werden dabei nämlich einfach im das Root-Verzeichnis des jeweiligen Benutzers angezeigt (also auf oberster Datei-Ebene). Werden sehr viele Dateien geteilt, geht die Übersicht in der Files-App sehr leicht verloren.

Nextcloud bietet nun die Möglichkeit, einen speziellen Ordner anzugeben, in dem die geteilten Dateien für einen User „gesammelt“ werden. Dazu wird wieder die Konfigurations-Datei von Nextcloud bearbeitet:

nano /var/www/nextcloud/config/config.php

Hier wird am Ende (aber vor der letzten Klammer) folgende Zeile hinzugefügt:

'share_folder' => '/Mit mir geteilt',

Wenn nun Dateien oder Verzeichnisse unter den Benutzern geteilt werden, landen diese (für jeden Benutzer) automatisch im Verzeichnis Mit mir geteilt. Aus User-Sicht wird mir durch diesen Trick nicht mehr das Root-Verzeichnis bei vielen File-Shares „zugemüllt“ und ich habe eine saubere Trennung zwischen den eigenen Daten und Dateien, die mit mir geteilt sind.

File-Drop Konfiguration für anonyme Uploads

Der letzte Tipp ist eigentlich kein solcher, sondern ein ganz normales Feature von Nextcloud: Anonyme Uploads über einen sog. File-Drop. Allerdings habe ich dieses Feature auch erst vor kurzem entdeckt und bin davon begeistert, daher möchte ich es euch nicht vorenthalten.

Es geht dabei um die Möglichkeit, fremden Benutzern (also Leuten ohne eigenen Account in eurer Cloud) das Hochladen von Dateien zu ermöglichen. Sinn und Zweck des Ganzen ist die Bereitstellung von Dateien für einen angemeldeten Nextcloud-Benutzer. Auf diese Weise kann braucht man beispielsweise keine E-Mails mehr mit großen Dateien im Anhang verschicken.

Hier sollten zunächst einmal die Einstellungen unter Teilen in den Admin-Einstellungen der Cloud kontrolliert werden. Für den maximalen Komfort sind dabei zwei Optionen von Bedeutung:

  • Öffentliches Hochladen erlauben: Diese Option muss gesetzt sein, damit ein anonymer Upload überhaupt möglich ist.
  • Passwortschutz erzwingen: Wenn diese Option gesetzt ist, wird beim Zugriff auf das Upload-Verzeichnis immer nach einem Passwort gefragt. Wenn man es externen Benutzern möglichst einfach machen will, dann kann man diese Option deaktivieren und das Verzeichnis für den anonymen Upload ohne Passwort freigeben.
Einstellungen für Teilen in den Admin-Settings

Einstellungen für Teilen in den Admin-Settings

Um dieses Feature nun nutzen zu können, legt sich ein Benutzer zunächst einmal ein spezielles Verzeichnis in der Files-App an (z.B. Public Upload). Nun kann in den Details zu diesem Ordner die Teilen-Funktion aktiviert werden (Link teilen). Wählt man nun noch die Option Dateien ablegen (nur Hochladen), hat man damit ein Verzeichnis zum anonymen Hochladen von Dateien erzeugt.

Konfiguration von File-Drop über einen geteilten Link

Konfiguration von File-Drop über einen geteilten Link

Den automatisch von Nextcloud erzeugten Link kann man nun über die kleine Schaltfläche neben dem Textfeld kopieren und an Freunde oder Bekannte weitergeben.

Ruft man diesen Link nun im Browser auf, kann eine Datei hochgeladen werden, die dann dem entsprechenden Benutzer der Cloud zur Verfügung gestellt wird und im extra dafür angelegten Ordner gespeichert wird.

Anonymer Upload mit File-Drop

Anonymer Upload mit File-Drop

Fazit

Der Artikel ist nun doch etwas länger geworden als ursprünglich gedacht. Trotzdem hoffe ich mal, dass ein paar Tipps für Nextcloud-Admins und/oder User dabei waren, die noch nicht hinlänglich bekannt sind.

Habt ihr weitere Tipps und Tricks, um Nextcloud besser an eure eigenen Wünsche und Nutzungsgewohnheiten anzupassen? Hinterlasst mir doch einfach einen Kommentar…

Weiterführende Artikel

Links

, , ,

Kommentare: 96

  • Amelia sagt:

    Hallo,

    natürlich erst einmal vielen Dank für diese und die zahlreichen anderen tollen Artikel!
    In verschiedenen Foren bin ich auf Warnungen in Bezug auf die Installation des php-imagick Pakets gestoßen. Aus Sicherheits-Gründen wird dort davon abgeraten. Kannst Du etwas dazu sagen? Wie ist Deine Meinung Jan?
    In der Nextcloudoberfläche wird mir die Installation empfohlen…

    Liebe Grüße
    Amelia

    • Jan sagt:

      Hi Amelia,

      hast du vielleicht mal einen konkreten Link für mich?
      Generell sind mir hier keine Schwachstellen bekannt, die ein sofortiges Handeln nötig machen würden.

      Gruß,
      Jan

  • Beni sagt:

    Hi Jan

    Vielen Dank für deine Webseite und für das Wissen das du mit uns teilst!

    Folgendes liegt mir auf dem Herzen:

    Ich habe meine Nextcloud auch mit einem externen Speicher verbunden, da ich nicht möchte, dass die Daten auf dem Server liegen, sonder auf der NAS gespeichert werden.

    Jetzt stelle ich mir die Frage, wie man es einrichten könnte, dass die NAS wie oben im Artikel beschrieben als Hautverzeichnis eingerichtet ist und dass dann automatisch die Benutzerordner angelegt werden, damit die Files von den andern Usern nicht eingesehen werden könnten?
    Sodass jeder User automatisch seinen eigenen Ordner auf der NAS bekommt.

    Vielleicht hättest du ja ein Idee dazu.

    Vielen Dank schon mal im Voraus.

    Viele Grüße
    Beni

    • Jan sagt:

      Hi Beni,

      normalerweise geht man hier so vor, dass man am NAS einen NFS-Share (oder Samba-Share) einrichtet. Dieser wird dann auf der Linux-Maschine gemountet. Anschließend verhält sich das gemountete Laufwerk ja wie ein normaler Ordner. Hier kann dann das Datenverzeichnis der NC platziert werden.

      Gruß,
      Jan

      • Beni sagt:

        Hi Jan,

        Danke für die schnelle Rückmeldung.

        Ja, das ist auf jeden Fall richtig.
        Den Weg habe ich auch versucht.
        Ich vermute aber, dass ich irgendwo ein Fehler mache.

        Folgende Gegebenheiten habe ich:

        -Einen Ubuntu Server
        -Eine QNAP als Storage

        Auf der QNAP habe ich ein Share eingerichtet, das ich über smb/cifs gemautet habe.

        Wenn ich nun sage, dass der Ordner chown -R www-data:www-data /(eingebundenes share) bekommen soll, bekomme ich auch keine Fehlermeldung.
        Allerdings bekommt der Ordner aber nicht die Rechte, weil es ja eigentlich ein Ordner auf der QNAP ist.

        Vielleicht habe ich ja auch ein Denkfehler?

        Oder wie müsste man die Rechte für das Share vergeben, damit der www-data auch die Berechtigung hätte?

        Vielen Dank für deine Rückmeldung!

        • Jan sagt:

          Hi,

          probier mal folgenden Eintrag in der fstab: //192.168.178.100/share /mnt/share cifs credentials=/home/user/.smbcredentials,noperm,cache=loose,_netdev,x-systemd.automount 0 0

          Vielleicht braucht man hier auch noch ein „vers=2.0“ in den Parametern, je nachdem, welche SMB-Version das QNAP unterstützt.
          Wichtig ist auf jeden Fall, dass der User www-data auf das gemountete Share schreiben kann.

          Gruß,
          Jan

          • Beni sagt:

            Habe es jetzt so gelöst, dass ich es über ein NFS share angebunden habe, so funktioniert es auch ganz gut.

            Vielen Dank für deine Unterstützung und deine guten Blocks!

            Viele Grüße
            Beni

  • Chris sagt:

    Guten Tag Jan

    Herzlichen Dank für deine detaillierten zielführenden Erklärungen.

    Dazu eine Frage: Muss der spezielle Ordner zur Ablage geteilter Dateien (gemäss Abschnitt «Vordefiniertes Verzeichnis für geteilte Dateien») mit der Anweisung „’share_folder‘ => ‚/Mit mir geteilt‘,“ in der config.php nachher beim Erstellen eines neuen(!) Benutzers zuerst jeweils noch händisch erstellt werden oder wird er dann automatisch (mit)generiert? Und ich gehe davon aus, dass er bei bereits bestehenden Usern nachträglich angelegt werden muss – oder?

    Danke für dein Feedback.

    Gruss und einen schönen Tag
    Chris

    • Jan sagt:

      Hi Chris,

      dieser Ordner wird meines Wissens nach automatisch erstellt, wenn der erste Share geteilt wurde (und der Ordner noch nicht vorhanden war). Zumindest meiner Erfahrung nach…

      Gruß,
      Jan

      • Chris sagt:

        …und es funktioniert!

        Ist korrekt, der Ordner wird erst mit dem ersten Share erstellt; und (logischerweise) dadurch auch bei bereits bestehenden Usern. Super!

        Danke Jan.

        Gruss
        Chris

  • Ralf Rupf sagt:

    Hallo Jan – tolle Anleitungen Danke!

    Ein Input und eine Frage:
    a) Ich habe bei einigen Installationen das Datenverzeichnis der Nextcloud auch auf eine NAS gelegt. Im Vergleich zu einem internen Verzeichnis scheint mir dadurch aber etwas Performance verloren zu gehen. Latenzen entstehen…

    b) Ich habe in meiner config.php das mit dem share_folder ausprobiert, weil mich die vielen geteilten Ordner unter alle Dateien auch nerven. Allerdings passiert nichts… Eine Ahnung wieso? Info: Ca. 20 User auf der Cloud und etwa 15 bereits vorhandene Shares…

    Gruss aus der Schweiz

    • Jan sagt:

      Hi Ralf,

      a) Ja, das konnte ich auch schon beobachten. Hier gibt es auch immer mal wieder komische Fehlermeldungen beim Update von NC (über die Kommandozeile), die aber anscheinend keine Auswirkungen auf die Cloud haben.

      b) Ich kann mir vorstellen, dass dies nur bei neu angelegten Shares „zieht“. Ansonsten hatte ich mit diesem config-Paramter noch nie Probleme.

      Gruß,
      Jan

  • Ralf Rupf sagt:

    Ach und noch was…

    Siehst du einen Weg das Datenverzeichnis in z.B. /srv/data abzulegen (um höhere Performance zu haben – da intern) aber über den oben beschriebenen Weg mit externem Speicher das / auf ein NAS zu legen. Das ganze nicht nur bei einem Benutzer, sondern bei allen. Also Datenverzeichnis und Userprofile intern – Daten „files“ aber extern auf dem NAS?

    • Jan sagt:

      Hi Ralf,

      was meinst du mit „Datenverzeichnis und Userprofile intern – Daten „files“ aber extern auf dem NAS“? Das Dateiverzeichnis (dort, wo die PHP-Dateien liegen) und das Datenverzeichnis können getrennt voneinander irgendwo abgelegt werden. Meinst hier diese Trennung?

      Gruß,
      Jan

      • Ralf Rupf sagt:

        Bei der Installation muss ich ja ein Datenverzeichnis angeben. Dies führt zu Latenzen, wenn das Datenverzeichnis auf der NAS abgelegt wird. Daher möchte ich das Datenverzeichnis innerhalb des LCX Container (nutze Proxmox). Da habe ich für die Cloud aber nur ca. 10 GB – was ohne Daten auch problemlos reicht.
        Nun möchte ich aber, wie oben beschrieben (Externer Speicher als Haupt-Speicher), erzwingen, dass die User ihre Daten automatisch nur auf der NAS abspeichern können.

        • Jan sagt:

          Hi Ralf,

          ja, das sollte prinzipiell funktionieren. Es wird dann allerdings nichts im (lokalen) Datenverzeichnis gespeichert weil dieses ja durch den externen Speicher „verdeckt“ ist.
          Ob die Performance dann aber sehr viel besser ist, kann ich dir aber leider nicht sagen.

          Gruß,
          Jan

          • Ralf Rupf sagt:

            Funktioniert bei mir leider nicht… NC 20.0.7 – eingebundener SMB Share und mit „/“ als Rootverzeichnis markiert. Login, logout mit dem Benutzer – habe immer noch die Möglichkeit direkt im Rootverzeichnis des Users Daten abzulegen, die dann auch im Datenverzeichnis der Cloud landen statt auf dem NAS. Nun ja – nicht so wichtig – wäre nur ein nettes Features. Läuft bei mir aber nicht.

          • Jan sagt:

            Hi Ralf,

            sind im „normalen“ Datenverzeichnis evtl. schon Dateien vorhanden? Kann sein, dass Nextcloud diese dann doch anzeigen will und das „Überschreiben“ des Root-Verzeichnisses verhindert.

            Gruß,
            Jan

1 2

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.