Dieser Artikel ist Teil der Reihe selbstgebauter Ubuntu 20.04 Homeserver/NAS


Nextcloud hat sich mittlerweile zum Quasi-Standard für selbstgehostete Cloudanwendungen entwickelt. Nextcloud kann uneingeschränkt kostenlos genutzt werden.

In Nextcloud können Kalender und Kontakte gespeichert und mit dem Smartphone synchronisiert werden. So kann man Dienste wie Google Calender komplett ersetzen. Außerdem gibt es einen Deskop-Client, mit welchem man Dateien über mehrere Computer synchronisieren kann, ganz so, wie man es beispielsweise von Dropbox kennt. Eine offizielle Smartphone-App für Android und iOS ermöglicht es, auch von unterwegs sicher auf alle seine Daten zuzugreifen. Außerdem unterstützt die App den automatischen Bilderupload, sodass Fotos, die mit dem Smartphone gemacht werden automatisch auf den Homeserver übertragen werden.

Nextcloud ist mittlerweile als Snap-Paket für Ubuntu verfügbar, was die Installation und Einrichtung extrem vereinfacht. Wer die volle Kontrolle haben möchte, kann weiterhin den Weg der manuellen Installation und Konfiguration gehen, wie er in der alten Anleitung für Ubuntu 18.04. beschrieben ist [Homeserver/NAS mit Ubuntu 18.04: Teil 5, Nextcloud]. Dieser Weg funktioniert auch unter Ubuntu 20.04.

Da diese Anleitung bewusst möglichst einsteigerfreundlich sein soll, wird Nextcloud als Snap-Paket installiert. Damit reduziert sich die Installation auf einige wenige Kommandos und Nextcloud ist direkt einsatzbereit und fertig konfiguriert.

Nextcloud als Snap-Paket installieren

Mit folgendem Befehl wird Nextcloud installiert.

sudo snap install nextcloud

Die Installation von Nextcloud ist damit abgeschlossen. Die Benutzeroberfläche kann über die IP-Adresse des Homeservers bereits von jedem Computer im Heimnetz aufgerufen werden. In diesem Beispiel über http://192.168.30.153.

Allerdings sollte man Nextcloud noch nicht einsetzen, sondern zuerst weitere Konfigurationen vornehmen.

Übrigens: Die Nextcloud-Installation aus dem Snap-Paket befindet sich unter /var/snap/nextcloud/current.

Nextcloud konfigurieren

Bevor man Nextcloud im Browser aufrufen und verwenden kann, müssen ein paar zusätzliche Konfigurationen vorgenommen werden.

Datenverzeichnis von Nextcloud auf das RAID verschieben

Wenn wir nun anfangen Nextcloud zu verwenden, werden alle Daten auf der Systemplatte gespeichert. Dies ist natürlich nicht gewollt, da die Daten bei einem Festplattenausfall verloren wären. Stattdessen muss Nextcloud nun vor der ersten Nutzung so konfiguriert werden, dass das Datenverzeichnis auf dem RAID gespeichert wird.

Snaps werden in einer gesicherten Umgebung ausgeführt und dürfen aus Sicherheitsgründen nur auf bestimmte Verzeichnisse zugreifen. Sie können jedoch so konfiguriert werden, dass sie auch auf Daten in /media und /mnt zugreifen können, da hier normalerweise Wechseldatenträger eingebunden werden. Damit Nextcloud überhaupt auf das RAID-System unter /mnt/storage Zugriff bekommt, muss folgender Befehl ausgeführt werden. Zugriff auf alle anderen Order auf der Festplatte wird weiterhin vom System verhindert.

sudo snap connect nextcloud:removable-media

Zuerst wird das Datenverzeichnis auf dem RAID angelegt und die korrekten Benutzerrechte gesetzt.

sudo mkdir -p /mnt/storage/nextcloud/data

sudo chown -R root:root /mnt/storage/nextcloud/data

sudo chmod 0770 /mnt/storage/nextcloud/data

Nun wird die Konfigurationsdatei angepasst, in welcher steht, wo Nextcloud das Datenverzeichnis einrichten soll.

sudo nano /var/snap/nextcloud/current/nextcloud/config/autoconfig.php

Hier wird die Zeile mit „directory“ angepasst und der Pfad zum Datenverzeichnis auf dem RAID eingetragen.

 // ...
 'directory' => '/mnt/storage/nextcloud/data',
 // ...

Jetzt wird der PHP-Service neu gestartet, damit Nextcloud die geänderten Daten übernimmt.

sudo snap restart nextcloud.php-fpm

Nextcloud verwenden

Die eigene Nextcloud auf dem Homeserver kann nun von jedem beliebigen Browser aufgerufen werden, indem man http:// gefolgt von der IP-Adresse des Homeservers im Browser eingibt. Beispielsweise http://192.168.30.153.

Zuerst wird man aufgefordert einen Administratoraccount für Nextcloud einzurichten. Hier kann ein beliebiger Benutzername und Passwort vergeben werden. Außerdem bietet Nextcloud an, beliebte Apps und Zusatzfunktionen wie Kalender und Kontakte gleich automatisch mitzuinstallieren. Ich empfehle, diesen Haken zu setzen. Stellt sich heraus, dass man manche Funktionen nicht benötigt, können die dazugehörigen Apps später mit einem Klick wieder deinstalliert werden.

Nextcloud im Webbrowser aufrufen

Nachdem die Installation abgeschlossen ist, kann Nextcloud grundsätzlich bereits genutzt werden. Allerdings ist der Aufruf bisher nur über eine unverschlüsselte Verbindung möglich. Dadurch ist eine sichere Nutzung über das Internet natürlich nicht möglich. Aus diesem Grund wird als Nächstes die Verschlüsselung eingerichtet.

Vertrauenswürdige Domain hinzufügen

Damit Nextcloud sowohl über die IP-Adresse, als auch über die in der Grundkonfiguration festgelegte DynDNS-Domain aufgerufen werden kann, muss diese noch als vertrauenswürdige Domain zu Nextcloud hinzugefügt werden. Dies geschieht mit folgendem Befehl, wobei der Domainname natürlich an das eigene Setup angepasst werden muss.

sudo snap run nextcloud.occ config:system:set trusted_domains 1 --value=mimashome.ddns.net

Verschlüsselungszertifikat erstellen

Um problemlos eine verschlüsselte Verbindung über das Internet zu ermöglichen, wird ein kostenloses Verschlüsselungszertifikat von Let’s Encrypt eingerichtet. Auch dies ist mit dem Snap-Paket mit einem Befehl erledigt.

Achtung: Bei diesem Schritt überprüft ein externer Server von Let’s Encrypt, ob die Nextcloud Installation auch wirklich über die angegebene Domain erreichbar ist. Nur wenn dies der Fall ist, wird das Verschlüsselungszertifikat ausgestellt. Der Homeserver muss also unbedingt über Port 80 und 443 aus dem Internet erreichbar sein, wie in der Grundkonfiguration beschrieben.

sudo /snap/bin/nextcloud.enable-https lets-encrypt

Im ersten Schritt weist das Tool nochmal auf die genannten Voraussetzungen hin. Außerdem wird auf die Nutzungsbedingungen von Let’s Encrypt hingewiesen, die man akzeptieren muss, wenn man das Zertifikat erstellen und nutzen möchte.

Wenn alle Voraussetzungen erfüllt sind und man die Bedingungen akzeptiert, bestätigt man dies, indem man „y“ eingibt und Enter drückt.

Anschließend wird man nach einer E-Mail-Adresse gefragt. An diese Adresse wird z.B. ein Hinweis gesendet, wenn das Zertifikat abläuft, weil die automatische Erneuerung nicht funktioniert hat.

Nun muss der Domainname eingegeben werden, für den das Zertifikat erzeugt werden soll. In diesem Fall also die DynDNS-Adresse.

Damit sind alle benötigten Eingaben gemacht. Mit der Entertaste werden die Eingaben bestätigt, anschließend versucht Let’s Encrypt über die angegebene Internetadresse eine Verbindung zum Homeserver aufzubauen, um sicherzustellen, dass man auch wirklich über die Rechte an der Domain verfügt. Wenn dies funktioniert, wird das Verschlüsselungszertifikat ausgestellt und automatisch eingerichtet.

Let's Encrypt Zertifikat einrichten

Wenn alles geklappt hat, lässt sich Nextcloud nun über eine verschlüsselte Verbindung aufrufen, indem man https:// vor der DynDNS-Adresse im Browser eingibt. Der Webbrowser zeigt dann ein verschlossenen Schloss vor der Domain an.

Verschlüsselte Verbindung zu Nextcloud eingerichtet

Updates für Nextcloud einspielen

Wenn Updates für Nextcloud verfügbar sind, muss das Snap-Paket aktualisiert und Nextcloud neu gestartet werden. Dies geschieht mit folgenden Kommandos.

sudo sudo snap refresh nextcloud
sudo nextcloud.occ upgrade

sudo snap restart nextcloud

Samba-Freigaben in Nextcloud einbinden

Damit man über Nextcloud auch auf die Dateien zugreifen kann, die über die lokalen Netzwerkfreigaben auf dem Homeserver gespeichert wurden, müssen diese Ordner noch in Nextcloud eingebunden werden.

Das Problem dabei ist, dass Nextcloud und Samba mit unterschiedlichen Systembenutzern laufen, was zu Berechtigungsproblemen führt. Aus diesem Grund kann man nicht einfach die Nextcloud-Datenverzeichnisse der einzelnen Benutzer über Samba freigeben. Der Snap-Dienst, der Nextcloud ausführt, läuft als Rootuser, was unter Windows dem Administratoraccount entspricht. Samba läuft mit einem eigenen Systembenutzer, mit sehr viel weniger Rechten, sodass Samba gar keinen Zugriff auf die Daten in Nextcloud hat.

Den Samba-Server als Root laufen zu lassen wäre eine Lösung, allerdings ein sicherheitstechnisches Desaster, weshalb man dies auf keinen Fall in Erwägung ziehen sollte. Das Nextcloud hier als Root ausgeführt wird ist hingegen nicht vergleichbar. Denn tatsächlich läuft nur der Snap-Dienst als Root, der die einzelnen Snap-Pakete in einer vom restlichen System abgeschotteten Umgebung ausführt.

Einbinden von Samba-Freigaben mit dem External-Storage-Plugin (funktioniert derzeit nicht)

Die bisherige Lösung mit einer klassischen Nextcloud-Installation war das External-Storage-Plugin von Nextcloud. Dies bietet auch eine Schnittstelle für Samba Freigaben an. Damit greift Nextcloud quasi wie jeder andere Computer auf die Freigaben zu, sodass hier keine Berechtigungsprobleme entstehen. Eine einfache wie elegante Lösung.

Leider funktioniert das Einbinden von Samba-Freigaben über das External-Storage-Plugin nicht, wenn man Nextcloud als Snap-Paket einsetzt. Ein entsprechender Bugreport ist schon seit Längerem vorhanden. Allerdings ist das Problem entweder schwer zu lösen, oder es ist den Entwicklern nicht wichtig genug. So oder so, derzeit scheidet diese Lösung leider aus.

Trotzdem möchte ich an dieser Stelle auf diese Möglichkeit hinweisen, falls sich die Situation in Zukunft ändert.

Samba-Freigaben mit Bindfs in Nextcloud einbinden

Als Alternative werden die Samba-Freigaben mittels Bindfs in Nextcloud eingebunden. Bindfs ermöglicht es, Ordner an zusätzlichen Stellen im Dateisystem mit anderen Benutzerrechten einzubinden.

Man kann damit beispielsweise die Samba-Freigabe „Tom“ in das Datenverzeichnis des Nextcloud-Users „Tom“ verlinken. Aus Sicht von Nextcloud sieht es dabei so aus, als ob die Dateien Root gehören, also dem Systemuser, der Snaps und damit auch Nextcloud ausführt. Tatsächlich werden die Daten jedoch mit dem Benutzer smb geschrieben, also dem Systembenutzer von Samba.

Das Problem dabei ist, dass jedes Mal, wenn eine Datei über die Samba-Freigaben hinzugefügt oder geändert wurde mit Nextcloud ein Filsystem-Scan durchgeführt werden muss. Ansonsten bekommt Nextcloud von der neuen Datei nichts mit und die Datei wird in Nextcloud nicht angezeigt. Dieses Problem kann man vermeiden, indem man den mit Bindfs erstellten Ordner wiederum mit dem External-Storage-Plugin in Nextcloud einbindet.

In diesem Beispiel passiert also folgendes:

  • Der Order mit der Samba-Freigabe /mnt/storage/shares/tom wird mit Bindfs nach /mnt/storage/nextcloud-bindfs/heimnetz-tom verlinkt.
  • Wenn nun Nextcloud Dateien nach /mnt/storage/nextcloud-bindfs/heimnetz-tom schreibt, werden diese tatsächlich mit dem Systemuser smb nach /mnt/storage/shares/tom geschrieben. Davon merkt Nextcloud aber nichts.
  • Der Ordner /mnt/storage/nextcloud-bindfs/heimnetz-tom wird über das Nextcloud-Plugin „External Storage“ in den Nextcloud-Account von Tom eingebunden.

Damit ist die Samba-Freigabe „Tom“ auch über Nextcloud nutzbar. Änderungen werden immer mit demselben Systemnutzer auf die Festplatte geschrieben, sodass es nicht zu Berechtigungsproblemen kommt. Außerdem sind Änderungen an Dateien immer sofort in Nextcloud, als auch in den Samba-Freigaben sichtbar.

Bindfs installieren und Ordner mit anderen Benutzerrechten mounten

Zunächst einmal wird Bindfs installiert.

sudo apt install bindfs

Dann muss man für jede einzelne Samba-Freigabe die mit Nextcloud verbunden werden soll eine Zeile in die Datei /etc/fstab einfügen. In diesem Beispiel wird die Nextcloud-Freigabe „Tom“ zur Nextcloud von Tom hinzugefügt.

Zuerst wird der Ordner angelegt, in welchem die Samba-Freigabe mit den Benutzerrechten von Root eingebunden wird.

sudo mkdir -p /mnt/storage/nextcloud-bindfs/heimnetz-tom

Dann wird die Datei /etc/fstab im Texteditor geöffnet.

sudo nano /etc/fstab

Hier wird folgende Zeile eingefügt. Achtung: Es handelt sich um eine, sehr lange Zeile, die ohne Zeilenumbruch in die Konfigurationsdatei eingefügt werden muss.

bindfs#/mnt/storage/shares/tom /mnt/storage/nextcloud-bindfs/heimnetz-tom fuse force-user=root,force-group=root,create-for-user=smb,create-for-group=smb,chgrp-ignore,chown-ignore,chmod-ignore 0 0
Ordner mit Bindfs mounten

Für jede Samba-Freigabe, die man in einen Nextcloud-Benutzeraccount einbinden will, muss dieser Vorgang wiederholt werden. Für die Freigabe Media muss also der Ordner /mnt/storage/nextcloud-bindfs/heimnetz-media angelegt werden.

Dann wird eine weitere Zeile in die /etc/fstab eingefügt. Dort wird /mnt/storage/shares/tom durch /mnt/storage/shares/media ersetzt und /mnt/storage/nextcloud-bindfs/heimnetz-tom wird durch /mnt/storage/nextcloud-bindfs/heimnetz-media ersetzt.

Um die Konfiguration zu aktivieren wird folgender Befehl ausgeführt.

sudo mount -a

Ordner in Nextcloud einbinden

Um die soeben erstellten Ordner in Nextcloud verfügbar zu machen, wird nun das External-Storage-Plugin installiert. Hierzu loggt man sich mit dem bei der Installation erstellten Administratoraccount in Nextcloud ein.

Dann klickt man oben rechts auf das Icon mit dem Anfangsbuchstaben des Benutzernamens und anschließend auf „+ Apps„.

Hier findet man nun bei den deaktivierten Apps die App „External Storage Support“ die mit einem Klick auf Aktivieren installiert wird.

External-Storage-Support-Plugin aktivieren

Zum Einbinden der Ordner in Nextcloud klickt man wieder auf das Icon oben rechts und anschließend auf Einstellungen. Im linken Bereich findet man verwirrender Weise zwei Punkte mit dem Namen „Externe Speicher„. In diesem Fall wird der untere benötigt.

  • Ordnername: Mit diesem Namen erscheint die Samba-Freigabe in Nextcloud. Es kann ein beliebiger Name vergeben werden.
  • Externer Speicher: Lokal
  • Authentifizierung: Keine
  • Konfiguration: /mnt/storage/nextcloud-bindfs/heimnetz-tom
  • Verfügbar für: Alle Nextcloud-Benutzernamen, die auf diese Freigabe zugreifen dürfen.

Mit einem Klick auf den Haken wird der Ordner in Nextcloud aktiviert.

Ordner mit dem External-Storage-Plugin in Nextcloud einbinden

Sicherheitshinweis: Wenn der Haken bei „Benutzern erlauben, externen Speicher einzubinden“, darf jeder Nextcloudnutzer Ordner außerhalb seines Nextcloud-Accounts selbständig einbinden. Das bedeutet, wenn Lena den Pfad /mnt/storage/nextcloud-bindfs/heimnetz-tom kennt, kann sie die eigentlich privaten Dateien von Tom einbinden.

Wenn man nun über das Ordner-Icon in der Menüleiste zu den Dateien in Nextcloud wechselt, findet man hier den neuen Ordner Heimnetz-Tom. Hierüber hat man nun Zugriff auf die Dateien aus der Samba-Freigabe.

Ordner mit dem External-Storage-Plugin in NExtcloud eingefügt.

Übersicht: Ubuntu 20.04 Homeserver/NAS, Teil 1
Installation des Betriebssystems: Ubuntu 20.04 Homeserver/NAS, Teil 2
Grundkonfiguration: Ubuntu 20.04 Homeserver/NAS, Teil 3
Ordnerfreigaben: Ubuntu 20.04 Homeserver/NAS, Teil 4
Nextcloud: Ubuntu 20.04 Homeserver/NAS, Teil 5
Plex Mediaserver: Ubuntu 20.04 Homeserver/NAS, Teil 6
Backup: Ubuntu 20.04 Homeserver/NAS, Teil 7


35 Comments

    • Anonymous

      Das sehe ich ähnlich. Ich habe auf meinem NAS (Ubuntu 20.04), den ich vor kurzem eingerichtet habe, Nextcloud so installiert wie in der Ubuntu 18.04-Anleitung beschrieben. Bei Snaps gab es schon oft Probleme bei mir.

  1. Erst einmal danke für die großartige Tutorialreihe. Bis auf den Plex Server bin ich dieser gefolgt und es hat alles großartig funktioniert 🙂

    Bei einem Punkt bin ich von diesem Tutorial abgewischen, und der hat mich nun zwei Tage gekostet: ich habe mein Software-Raid mit zfs angelegt (4 HDDs mit raidz2).
    Die Ordner analog zu „mnt/storage/shares/tom“ habe ich dann alle als eigene datasets angelegt.

    Soweit hat auch alles damit gut funktioniert — bis ich das erste mal einen Neustart des Servers gemacht habe. Die Einträge in /etc/fstab, um die bindfs-Links zu setzen, werden wohl von systemd umgesetzt, bevor die zfs-Dateisysteme gemountet sind.

    Meine nun funktionierende Lösung ist nun folgende:
    Für jedes Link-Ziel „/mnt/storage/apps/nextcloud/ORDNER“ habe ich unter /etc/systemd/system eine datei „mnt-storage-apps-nextcloud-ORDNER.mount“ mit dem Inhalt

    [Unit]
    Description=Mount data directory with permission
    Requires=mnt-storage-ORDNER.mount
    After=mnt-storage-ORDNER.mount
    After=zfs-mount.service
    Requires=zfs-mount.service
    RequiresMountsFor=/mnt/storage

    [Mount]
    What=/mnt/storage/ORDNER
    Where=/mnt/storage/apps/nextcloud/ORDNER
    Type=fuse.bindfs
    Options=force-user=root,force-group=root,create-for-user=smb,create-for-group=smb,chgrp-ignore,chown-ignore,chmod-ignore

    [Install]
    WantedBy=multi-user.target

    angelegt. Diese Datei ersetzt den Eintrag in /etc/fstab und sorgt dafür, dass das mounten und linken auch in der richtigen Reihenfolge geschieht.
    Ich bin nicht sicher, ob manche Einträge in der Datei redundant sind oder besser andere Abhängigkeiten hätten. Dies ist allerdings die erste Version, die das Ganze bei mir zum laufen gebracht hat.

    Wer weiß, vielleicht ist diese Info ja hilfreich für jemanden..

  2. Hallo
    Ich hoffe, Fragen zu Problemen stellen ist hier erlaubt.
    Wenn nicht, bitte löschen!
    Letztes Jahr habe ich nach der Anleitung hier auf der Seite einen Server mit ubuntu 18.04 LTS und Nextcloud aufgesetzt.
    Leider ist mein System nach einem Neustart mit einem Fehler „Failed to connect to lvmetad“ und irgendwas mit …LVM2_member… nicht mehr hoch gelaufen.
    Da ich nicht gefunden habe ob und wie ich das beheben kann, habe ich eine neue SSD eingebaut und habe nun nach dieser Anleitung für 20.04 neu aufgesetzt.
    Dabei habe ich dann die Datenplatte (ich habe kein RAID sondern nur eine einzelne 4TB Platte) von der vorherigen Version so belassen, in die fstab eingebunden und möchte nun dass diese mit der gesamten Struktur auch so in der neuen Umgebung in Nextcloud erscheint. Der Einfachheit halber habe ich die Snap Version installiert, weshalb ich ja auch keinen Webuser Namens www-data einrichten musste.
    Die Anleitungen um „gefüllte“ Verzeichnisse in Nextcloud einzubinden beziehen sich aber immer darauf.
    Z.B.:
    sudo -u www-data php /pfad/zu/nextcloud/console.php files:scan –all

    Kann mir jemand sagen, wie ich dies jetzt für die mit Snap installierte Nextcloud Version umsetzen muss?
    Danke
    Roland

    • Niko

      Hallo Roland,
      klar sind Fragen zu Problemen erlaubt. Sogar erwünscht. Oft hilft das ja auch anderen Leuten weiter.
      Wenn du Nextcloud als Snap installiert hast, kannst du den Scan-Befehl einfach folgendermaßen ausführen:
      sudo nextcloud.occ files:scan --all
      Einen Pfad musst du nicht mehr extra angeben.

      • Super und vielen Dank
        Hat funktioniert und sogar schneller als bei der Version mit der 18.04

  3. Anonymous

    Hallo Niko,

    hatte mein NAS nach deiner Anleitung mit 18.04 installiert, lief auch einwandfrei.
    Jetzt ließ sich aber Nextcloud nicht mehr aktualisieren, wegen irgendeiner .rnd Datei.

    Also einfach neu aufgesetzt, mit 20.04.
    Mit einem Mix aus alter und neuer Anleitung, hab die alten User angelegt.
    Die Freigaben zu meinem Linux-Desktop funktionieren auch einwandfrei.

    Dann habe ich Nextcloud nach neuer Anleitung installiert,

    Bei der Einrichtung von Nextcloud gab es aber das Problem, dass beim Aufruf mit dem Browser der NAS-IP die Nextcloud-Einrichtungsseite zwar kam, ich da aber nicht einloggen konnte.
    Es kam immer die Meldung:
    „Das Datenverzeichnis /mnt/storage/nextcloud/data kann nicht erstellt oder es kann darin nicht geschrieben werden.“

    Erst ein Neustart des NAS machte dies möglich.
    Das sollte in die Anleitung aufgenommen werden.

    Vielen Dank und viele Grüße
    Jürgen

    • Anonymous

      Zu früh gefreut.

      Wenn ich nun im Browser die Fritz!-Adresse mit „https://“ aufrufe, kommt folgende Meldung:

      „Zugriff über eine nicht vertrauenswürdige Domain

      Bitte kontaktieren Sie Ihren Administrator. Wenn Sie Administrator sind, bearbeiten Sie die „trusted_domains“-Einstellung in config/config.php. Siehe Beispiel in config/config.sample.php.“

      Ich habe den Schritt mit DynDNS aber auch übersprungen, da die Fritzbox ja eine Adresse generiert.
      Ist das der Fehler?

      VG
      Jürgen

      • Niko

        Du musst deine Domain als vertrauenswürdig hinzufügen. Entweder über die genannte Konfigurationsdatei, oder mit dem Snap-Befehl, wenn du das Snap-Paket installiert hast.
        Steht unter der Überschrift „Vertrauenswürdige Domain hinzufügen“.
        Gruß
        Niko

      • Anonymous

        Es funktioniert nicht, obwohl ich alles nochmal durchgegangen bin:

        Last login: Sun Oct 25 08:34:43 2020 from 192.168.x.xxx
        xxxx@xxx:~$ sudo snap connect nextcloud:removable-media
        [sudo] Passwort für xxxx:
        xxxx@xxx:~$ sudo mkdir -p /mnt/storage/nextcloud/data
        xxxx@xxx:~$ sudo chown -R root:root /mnt/storage/nextcloud/data
        xxxx@xxx:~$ sudo chmod 0770 /mnt/storage/nextcloud/data
        xxxx@xxx:~$ sudo nano /var/snap/nextcloud/current/nextcloud/config/autoconfig.php
        xxxx@xxx:~$ sudo nano /var/snap/nextcloud/current/nextcloud/config/autoconfig.php
        xxxx@xxx:~$ sudo snap restart nextcloud.php-fpm
        Neugestartet.
        xxxx@xxx:~$ sudo snap run nextcloud.occ config:system:set trusted_domains 1 —
        System config value trusted_domains => 1 set to empty string
        xxxx@xxx:~$ value=xxxxxxxxxxxxx.myfritz.net
        xxxx@xxx:~$ sudo /snap/bin/nextcloud.enable-https lets-encrypt
        In order……………….

        Have you met these requirements? (y/n) y
        Please enter an email address (for urgent notices or key recovery): xxxx.xxxxxxxx@xxxx.de
        Please enter your domain name(s) (space-separated): xxxxxxxxxxxxx.myfritz.net
        Attempting to obtain certificates… done
        Restarting apache… done
        xxxx@xxx:~$

      • Anonymous

        Jetzt geht’s!

        Habe die config.php mit
        ’sudo nano /var/snap/nextcloud/current/nextcloud/config/config.php‘
        geöffnet, und es gab unter trusted domains zwar der Eintrag 1, allerdings stand zwischen den Apostrophen nichts.
        Also die MyFritz!Adresse reinkopiert, gespeichert, funzt!

        🙂

  4. Anonymous

    Hallo,
    danke erstmal für die tollen Anleitungen.

    Wäre es nicht möglich gleich die mimas.​lasdgoetnvklvwph.​myfritz.​net Adresse als vertrauenswürdige Domain zu nutzen. Für diese dann das Zertifikat zu laden, und dann über diese Adresse dann immer auf Nextcloud als Oberfläche zuzugreifen. Oder habe ich ein Denkfehler ?

    Gruß

    • Niko

      Hallo,
      kein Denkfehler. Wenn man myfritz nutzt, kann man das auf jeden Fall tun.

  5. ralphmkk61

    Hi,
    danke für das Update. Leider habe ich ein Problem bei dem ich nicht einmal den Ansatz einer Lösung finde.
    Ich nutze die Anwendung Calibre-web, welche auf dem Port 8083 mit http lauscht. Durch die Installation von Nextcloud werden jetzt alle Anfragen aus dem Internet auf https umgeleitet – damit funktioniert die Anwendung jetzt nicht mehr.
    Irgend einen Tipp für mich? Ein Stichwort, nach dem ich suchen kann?

    • ralphmkk61

      Hi,
      ignoriert das bitte, ich hatte einen Tippfehler im Portmapper (peinlich)

  6. Hat soweit funktioniert, allerdings ist das Betriebsystem auf einer Ssd und das raid auf 6x1tb hdds unter /mnt/storage eingebunden. soweit funktioniert alles, allerdings bei nextcloud wird mir nur der Ssd Speicher angezeigt und nicht die hdds, obwohl ich in der autoconf. php /mnt/storage/nextcloud hinterlegt habe. Nach etwas ausprobieren, habe ich festgestellt sobald ich die nextcloud Anwendung neustarte, ist wieder ‚directory‘ => getenv(‚NEXTCLOUD_DATA_DIR‘), hinterlegt, was mache ich falsch? unten ist der Inhalt der Datei eingefügt. Hab vielleicht gedacht, es liegt an $AUTOCONFIG = array(,
    allerdings wenn ich das wegmache und neustarte ist es wieder so wie vorher
    Bitte um möglichst schnelle Hilfe, da ich am Mittwoch weg fahre und bis dahin eigentlich benötige.
    Danke
    Mit freundlichen Grüßen
    David Löffler

    • Anonymous

      Habt rausgefunden!
      Ich vermute, das Autoconfig hat es immer wieder geändert also hab ich es unter datadirectory in die conf.php datei eingefügt und die autoconf.php gelassen, wie sie war. Der Pfad der conf.php ist der gleiche wie autoconf.php. Letzter block ganz oben steht ‚datadirectory‘ dort habe ich es eingefügt.

  7. Hallo, ich bin dieser Anleitung gefolgt, alles hat funktioniert, erst mal ein großes Danke dafür.
    Aber jetzt nach ca. 2 Monaten läuft Nextcloud sehr sehr langsam, oft ist ein einlogen garnicht möglich, oder dauert mehr als 3 Minuten.
    Habt ihr eine Erklärung dafür, oder könnt mir einen Tipp geben?

  8. Hallo,

    erstmal vielen Dank für die tolle Anleitung. Auch für einen Linux Dummy ist sie gut zu verständlich und Schritt für Schritt umsetzbar. Seit September ist bis auf den Plex alles im Einsatz.
    Seit ca. 3 Wochen habe auch das gleiche Problem wie Loomit. Nextcloud ist extrem langsam ca. 60-70 Sek. Antwortzeit. Bis auf die „normalen“ Updates habe ich keine Änderungen gemacht – wie gesagt Linux-Dummy. Wer kann helfen?
    Danke.

  9. Hallo zusammen und danke an den Autor, der diese tolle Anleitung geschrieben hat.
    Ich hatte auch das Problem mit der Reaktionsgeschwindigkeit in NextCloud und habe durch googeln erfahren, dass es an der Nxtcloud-App „Collabora Online“ liegt, die in der aktuellen Version wohl einen unendet loop erzeugt beim Verbinden mit einem Online-Server (den ich nicht eingerichtet bzw. eingegeben habe).
    Da ich die App nicht nutze, habe ich alles, was mit Collabora zu tun hat deaktiviert und sofort war das System wieder lauffähig. Wer die App nutzen will/ muss, müsste sich an die Verbindungs-Geschichte setzen … das dürfte in die richtige Richtung gehen … 😉

    Lg an alle
    Torus

    • Anonymous

      Hallo Torus,

      danke für den Tip!
      Ich habe auch schon Stunden „ver-googelt“ aber nichts gefunden.
      Ja, das war das Problem. Habe in Nextcloud alles mit Collabora deaktiviert und schon geht alles wie der Blitz. Keine Probleme mehr.

      Danke, danke, danke 🙂

  10. Anonymous

    Hallo,

    ich habe das Problem, dass ich seit geschlagenen 2 Tagen nicht weiter komme. Bitte um eure Hilfe!

    Ich habe soweit alles eingerchtet aber das Portmapping funktioniert nicht. Ich habe eine Unitymedia Connect Box, in der meines Wissens nach keine DNS Domain erstellt werden kann. Aus diesem Grund funktioniert leider auch das Thema mit LetsEncrypt nicht oder habe ich da einen Denkfehler??

    Ein zweites Proplem ist, dass der Port 443 über das Internet (iPv6 Port Scanner) immer als CLOSED angezeigt wird (wobei ich noch nicht weiß, ob es mit dem ersten Problem zu tun hat). Port 80 ist genau gleich eingerichtet und funktioniert (iPv6 ist über anderes Netzwerk erreichbar).

    Hat vielleicht jemand mit dieser sch*** ConnectBox alles was hier beschrieben ist zum laufen bekommen?
    Wäre euch unendlich Dankbar für eure Hilfe!!

    Gruß Jo

  11. Vielen Dank für die tolle Anleitung. Super!
    Im Ergebnis ist die Version 20.0.7 mit SQL 5.7.33 installiert

    Wie komme ich auf die aktuelle Version 21.0.0.18 mit SQL 8 oder höher?

    Ein Lösungsansatz wäre sehr hilfreich, vielen Dank.

  12. Auch ich möchte mich für dieses tolle Tutorial bedanken, hat alles prima funktioniert. Als Linux dummi war es Gold wert. Die Nextcloud habe ich eigentlich nur für mich eingerichtet, jetzt hat meine Frau und mein Sohn auch Interesse daran. Wie muss ich da vorgehen um für die beiden nachträglich eine Samba-Freigabe einzurichten und diese auch in Nextcloud einzubinden? Gehe ich exakt so vor wie in der Anleitung beschrieben?

    Was mich auch interessieren würde ist, ob zur Verwaltung des Servers auch Webmin installieren und genutzt werden kann? Oder geht das nicht da hier nicht weil Nextcloud als snap installiert wurde?

    Ich hoffe das die Fragen nicht allzu dämlich sind. Kenne mich wie gesagt kaum mit Linux aus. Habe vorher immer ein Windows Server gehabt, tendiere aber immer mehr zu Linux.

    • Niko

      Du kannst die einzelnen Befehle jederzeit wiederholen um neue User anzulegen.
      Die Snap-Variante habe ich gewählt, weil sie supereinfach zu installieren und einzurichten ist. Für komplexere Setups würde ich nach wie vor zur klassischen Installationsmethode greifen und den Webserver normal installieren und konfigurieren. Ob man den im Snap-Paket integrierten für weitere Dienste nutzen kann, kann ich nicht beantworten. Du kannst aber auch einen zusätzlichen Webserver auf einem anderen Port installieren.
      Von Tools wie Webmin bin ich überhaupt kein Freund, ich halte das ganze Konzept für äußerst fragwürdig.. Daher habe ich mich damit auch nie beschäftigt.

  13. Hallo Niko,

    vielen Dank für die Super-Anleitung und ein quasi Rundum-Sorglos-Paket.
    Die Sache mit den Samba-Shares war mir besonders wichtig, weil sie wirklich praktisch sind. Weißt Du, ob es inzwischen auch mit snap wieder geht? Hast Du es mal hiermit versucht: https://help.nextcloud.com/t/smbclient-is-not-installed/75098/11
    Ohne snap, lassen sie sich dann auf jeden Fall wieder installieren.
    HG Jo (2)

  14. Christian

    Hallo Nico
    Vielen Dank für die neue Anleitung
    Bis zum Start der Nextcloud hat alles geklappt. Leider ist beim Verschieben des Verzeichnisses auf/mnt/storage/nextcloud etwas schiefgegangen. Die Daten wurden noch im alten Verzeichnis /var/snap/nextcloud/common/nextcloud/data/ geschrieben.
    So habe ich den Vorgang wiederholt, ohne Erfolg.
    Hatte mich erinnert, die config.php neu zu benennen, damit sie neu angelegt wird.
    Danach kam nur noch die Meldung
    „Schreiben in das „apps“-Verzeichnis ist nicht möglich
    Dies kann normalerweise behoben werden, indem dem Webserver Schreibzugriff auf das App-Verzeichnis gegeben wird oder der App Store in der Konfigurationsdatei deaktiviert wird.“
    Im alten Verzeichnis ist die alte Datenbank noch vorhanden.
    Diese sollte verwendet werden, oder muss ich die Datenbank neu aufsetzen?

    • Christian

      Hallo
      Nach mehreren Versuchen habe ich das Datenbankproblem gelöst.
      In der config.php den alten Pfad /mnt/storage/nextcloud eingetragen.
      Die Benutzer neu angelegt. Die Daten der Benutzer, die ich vorher angelegt hatte, werden immer noch im Originalverzeichnis /var/snap/…/nextcloud/data gespeichert. Ich musste diese löschen und auch neu anlegen.
      Anschließend die Daten mit sudo nextcloud.occ files:scan –all aktualisieren.
      Warum das Verschieben nicht geht? Vermute, es liegt daran, dass alles auf /nextcloud gespeichert ist und nicht auf /nextcloud/data. Dieser Ortner ist zwar in der alten Datenbank vorhanden, ist aber leer.
      Trage ich in der config.php das Verzeichnis /mnt/storage/nextcloud/data ein, so kann ich weder neue Benutzer anlegen noch auf die Daten zugreifen.
      Beim file:scan werden die Benutzer die in /var/snap/…/nextcloud/data angelegt sind als nicht schreibberechtigt angezeigt und nicht gescannt.
      Ich hoffe, diese Ausführung hilft bei ähnlichen Problemen weiter.

  15. Hanshubert

    Hallo !

    Herzlichen Dank für die klasse Anleitung!

    Ein Problem tauchte trotzdem auf und ich finde einfach keine Lösung.
    – Nextcloud kann ich vom Internet aus über DynDNS erreichen
    – Innerhalb des Heimnetzwerkes aber nur über die IP
    —> das gibt Probleme mit meinem Kalender, da ich den ja mal intern mal über das Internet pflegen möchte
    —>wie kann ich die Nextcloud über DynDNS-Adresse auch aus meinem Heimnetzwerk erreichen?

    – ausserdem wird mein Zertifikat als unsicher angezeigt, obwohl ich die Bestätigung vom LETSENCRYPT habe, dass alles OK ist.

    Kann jemand helfen?

    Danke sehr 🙂

    • Niko

      Wenn der Zugriff über den Domainnamen nur von außerhalb funktioniert, ist ziemlich sicher der Router schuld. Dieser unterstützt wahrscheinlich kein NAT-Loopback.
      Das Zertifikat wird immer auf einen Domainnamen ausgestellt. Bei Aufruf über die IP-Adresse wird daher immer ein ungültiges Zertifikat gemeldet.

  16. hanshubertus

    Hi Niko vielen Dank!

    hab geslesen, dass viele dieses NAT loopback Problem haben. Deshalb meine Lösung hierfür (wie gesagt, im Moment geht es darum, auf einen gemeinsamen Kalender zuzugreifen)

    ich habe über die DynDNS ein VPS erstellt in der Fritz Box und jetzt kann ich von ausserhalb und von innerhalb des Netzwerkes über meine IP Adresse zugreifen. Am liebsten wäre es natürlich über meine DynDNS zuzugreifen, aber ist letztenendes egal Die Lösung funktioniert. Einziger Wehrmutstropfen ist, dass ich mich eben über VPN einloggen muss, sonst geht es nicht.

    Komischerweise kann ich mich mit Ipad und Handy on innerhalb und ausserhalb des Netzwerkes mit DynDNS oder IP Adresse gleichermaßen einloggen. Von meinem PC aus geht es nur mit IP. Daher gehe ich davon aus, dass ich das NAT-loopback Problem durch den VPN gelöst habe, aber es besteht noch ein Konflikt von PC zum Server. Also, falls hier jemand einen Lösungsvorschlag hätte, wäre ich sehr dankbar!!!

    Danke nochmal für dein klasse Tutorial!

  17. Hallo Niko,
    zunächst vielen Dank für die gute Anleitung für den Bau eines Homeservers mit Nextcloud. Der Nachbau (in einem virtuellen PC mit Hyper V) nach deiner Anleitung hat gut funktioniert und Nextcloud läuft einwandfrei. Verwendet wurde ein Ubuntu Server 20.04 und der Snap-Befehl für die Nextcloud Installation mit der Version 22.2.3.
    Jetzt zu meiner Frage. Wie kann ich auf die Version 23 upgraden?
    Vielen Dank im Voraus.

    • Niko

      Hallo Klaus,
      dafür muss das Snap-Paket aktualisiert werden. Im Snap-Paket gibt es derzeit nur Nextcloud 22, die ja noch bis Juli supportet wird.
      Irgendwann vorher wird wohl auf Version 23 umgestellt.
      Gruß
      Niko

  18. Moin,
    kann mir jemand sagen, wie oder wo ich eine Zuordnung zwischen Real-Loginname und kryptischen Verzeichnisnamen her bekomme? Habe eine Ubuntu22.04 mit snap und externem ldap-server.
    Die User-Verzeichnisse heißen:
    drwxr-xr-x 4 root root 4096 Mai 14 09:14 23aa21ba-2070-1039-8c5c-090446580cec
    drwxr-xr-x 4 root root 4096 Mai 14 08:57 f84a8cba-2bf4-103c-9965-11894230ee1f

    Da ich ne Menge Userdaten von verschiedenen Instanzen zusammenführen darf, brauche ich ne Zuordnung „Paul=23aa…“ 🙂