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.

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.

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:

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).

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.

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.

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.

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
- Nextcloud auf Ubuntu Server 18.04 LTS mit nginx, MariaDB, PHP, Let’s Encrypt, Redis und Fail2ban
- Nextcloud: Updates richtig durchführen
Links
- Nextcloud 13 Brings Improved UI, Video and Text Chat, End-to-end Encryption, Improved performance and more (Nextcloud-Blog, englisch)
- Config.php Parameters (Nextcloud-Dokumentation, englisch)
- Providing default files (Nextcloud-Dokumentation, englisch)
- Theming (Nextcloud-Dokumentation, englisch)
- Imagemagick (englisch)
- Configuring External Storage (GUI) (Nextcloud-Dokumentation, englisch)
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
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
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
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
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!
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
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
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
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
…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
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
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
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?
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
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.
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
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.
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
Hallo Jan,
Ich weißm nun mnicht, ob das in diesem Bereich wirklich passt:
Habe NextCloud 20.0.14 zu laufen.
Für neue User die Registration-App. https://apps.nextcloud.com/apps/registration
Kleines Problem:
Der neue User bekommt zwar automatisch als Landessprache Deutsch, aber als Gebietsschema US.
Ich vermute mal, da müsste eine PHP-Datei angepasst werden.
Nur Welche und wo und wie?
Hast Du dafür eine Idee?
Danke schon mal und viele Grüße Mike
Hi Mike,
also in den PHP-Dateien würde ich schon aus Sicherheitsgründen nichts anpassen. Dies sollten so bleiben, wie sie von Nextcloud ausgeliefert werden.
Du kannst aber mal mit den Parametern „default_language“ und „default_locale“ in der config.php herum spielen (siehe hier). Hier kann man auch gewisse Länder-Einstellungen forcieren, was v.a. dann Sinn macht, wenn z.B. alle Nutzer sowieso aus Deutschland kommen.
Gruß,
Jan
Hallo Jan,
herzlichen Dank für die schnelle Antwort.
Das wäre dann für uns in Deutschland idealerweise de_DE ?
Dann teste ich das mal…
VG Mike
Sooo, kann jetzt auch schon Feedback geben:
‚default_language‘ => ‚de‘ und ‚default_locale‘ => ‚de_DE‘
Damit passt das jetzt.
Herzlichen Dank nochmal für den super Hinweis.
Fröhliche Weihnacheten.
VG Mike