In diesem Beitrag werde ich euch erklären, wie ihr einen eigenen Cloud-Server mit Hilfe von Nextcloud und einem Raspberry Pi 4 auf die Beine stellen könnt. Im folgenden werde ich ein wenig auf die Hardwarekomponenten eingehen und im Anschluss dann Schritt für Schritt die Installationsroutine beschreiben.
Hardware
- Raspberry Pi 4. Generation* mit 1,2 oder 4 GB Arbeitsspeicher mit Netzteil
- microSD-Karte* mit ca. 32 GB
- Samsung Evo 850* mit beispielsweise 250 GB
- Ethernet-Kabel* (0,5 Meter)
Anleitung – Nextcloud für Raspbian
Es gibt mittlerweile viele Möglichkeiten euren Raspberry Pi als Server mit Nextcloud einzurichten. Mit dem Nextcloud Image, welches eigens für den Raspberry Pi entwickelt wurde, werden euch die meisten Konfigurationsschritte abgenommen. In dieser Anleitung werde ich euch allerdings den klassischen Weg über eine ganz normale Raspbian Installation erklären. Dies hat den Vorteil, dass ihr bei der Installation deutlich flexibler seid und den Raspberry Pi auch noch anderweitig verwenden könnt. Fangen wir also an mit der Raspbian installation.
Installation von Raspbian
Aktuell könnt ihr euch auf der RaspberryPi.org Seite das Raspbian Image „Buster“ downloaden. Das Betriebssystem könnt ihr mittels dd-Komando
(Mac und Linux) auf die SD-Karte flashen. Um das richtige Ziel auszuwählen, empfehle ich auf jeden Fall den Befehl diskutil list
in der Kommandozeile auszuführen. Dieser zeigt euch alle gemounteten Geräte.
$ sudo dd if=<Quelle> of=<Ziel>
Solltet ihr mit Windows arbeiten, empfehle ich euch das Programm Etcher. Dieses könnt ihr kostenlos downloaden und installieren. Zum Flashen wählt ihr dann einfach das Buster-Image und die SD-Karte aus.
SSH erlauben
Um auf den Raspberry Pi über das Heimnetzwerk zuzugreifen, müsst ihr SSH in der Boot-Partition erlauben. Erstellt dafür eine Datei ohne Inhalt mit dem Namen ssh
und speichert diese auf der geflashten SD-Karte in dem Ordner boot.
Raspberry Pi booten
Im Anschluss nehmt ihr die SD-Karte und steckt sie in den Raspberry Pi. Verbindet jetzt das Gerät anhand des Ethernet-Kabels mit dem Router. Als letztes müsst ihr dem Gerät nur noch Strom geben und der Raspberry Pi sollte ohne Probleme das System starten.
Allgemeine Anpassungen
Mittels ssh könnt ihr nun von eurem PC eine Verbindung zu dem Raspberry Pi im Heimnetzwerk aufbauen. Für eine SSH-Verbindung mit einem Windows-Gerät benötigt ihr die zusätzliche Software Putty.
$ ssh pi@raspberrypi
Das Standard-Nutzerdaten sind wie folgt:
User | Passwort |
pi | raspberry |
Nachdem ihr euch mit dem Raspberry Pi verbunden habt, könnt ihr den Raspberry Pi auf den neusten Stand bringen. Dazu könnt ihr in der Konsole die folgenden Befehle eingeben. Ändert bitte auch auf jeden Fall das Nutzerkennwort mit dem Befehl passwd pi
.
$ sudo apt update
$ sudo apt upgrade
Nextcloud installieren
Kommen wir jetzt endlich zu Nextcloud. Mit Hilfe dem Paketverwaltungstools snapd werden wir das Programm downloaden. Um snapd verwenden zu können, müsst ihr auch dieses erstmal installieren. Nach der Installation solltet ihr den Raspberry Pi mit dem Befehl sudo reboot
neustarten und erneut eine ssh-Verbindung zu dem Raspberry Pi aufbauen.
$ sudo apt install snapd
Wenn ihr wieder mit ssh eine Verbindung zum Raspberry Pi aufgebaut habt, könnt ihr mit Hilfe von snapd das Programm Nextcloud installieren.
$ sudo snap install nextcloud
Externe Festplatte anschließen
Nachdem wir Nextcloud auf dem Raspberry Pi installiert haben, können wir eine externe Festplatte mit dem Raspberry Pi verbinden. Die externe Festplatte soll anschließend als Speicher für die eigene Cloud dienen. Sollte euch der Speicher auf der SD-Karte ausreichen, oder eine externe Festplatte steht euch noch nicht zur Verfügung, dann könnt ihr diesen Schritt auch überspringen und gegebenenfalls später noch nachholen. (Dabei müsst ihr allerdings auf ein paar Kleinigkeiten achten. Schreibt mir gerne ein Kommentar dazu, wenn ich dazu noch eine Anleitung schreiben soll.)
Als erstes müsst ihr natürlich die Festplatte mit dem Raspberry Pi verbinden und die Festplatte bei dem Raspberry Pi anmelden/mounten. Um den richtigen USB-Port auszuwählen, könnt ihr euch mit dem Befehl lsblk
alle verbundenen Medien anzeigen lassen. Die Festplatte könnt ihr auch anhand der Speichergröße identifizieren. Solltet ihr euch nicht sicher sein, welchen Port (zum Beispiel sdb1) ihr für die Festplatte ausgewählt habt, zieht die Festplatte nochmal ab und wiederholt den Befehl. Das Gerät sollte jetzt in der Liste der Geräte nicht mehr angezeigt werden.
Vor dem Mounten müsst ihr die Festplatte noch in das richtige Format umstellen. Nextcloud benötigt das ExFat-Format. In dem Beispiel formatieren wir die Festplattenpartition sdb1. Dies kann variieren, deswegen schaut auf jeden Fall genau nach, welchen Pfad ihr auswählt.
$ sudo mkfs ext4 /dev/sdb1
Zum Schluss müssen wir die Festplatte noch mounten. Legt dazu bitte einen Ordner in dem Verzeichnis media an. Danach müsst ihr nur noch den erstellen Ordner mit der Festplatte verbinden.
$ sudo mkdir /media/Festplatte
$ sudo mount /dev/sdb1 /media/Festplatte
Damit ihr auch nach einem Reboot den mountpoint nicht erneut setzen müsst, empfiehlt es sich die UUID mit folgenden Befehl in der fstab-Datei zu speichern, damit der Raspberry Pi die Festplatte auch nach einem Neustart selbstständig einbindet.
$ sudo blkid /dev/sdb1
$ sudo nano /etc/fstab
In der fstab-Datei müsst ihr folgende Zeile mit euren Daten also der richtigen UUID und Festplattepfad zusätzlich eingeben:
UUID=eureUUID /media/Festplatte ext4 defaults 0
Nextcloud Konfigurationsdatei
Um die Konfigurationsdatei von Nextcloud zu öffnen, kopiert bitte den folgenden Befehl in das Terminal.
$ sudo nano /var/snap/nextcloud/current/nextcloud/config/autoconfig.php
In der Datei muss der Pfad für 'directory'
angepasst werden. Achtet auch hier wieder darauf eure Daten zu verwenden.
'directory' => '/media/Festplatte/',
Startet, nachdem ihr die Datei gespeichert habt, den Service mit dem 2. folgenden Befehl neu.
$ sudo snap restart nextcloud.php-fpm
Nextcloud im Browser öffnen
Jetzt haben wir es fast geschafft. Gebt die IP-Adresse eueres Raspberry Pis, die ihr über euren Router (Fritzbox: Heimnetz > Netzwerke) einsehen könnt, in dem Suchfeld eures Browsers ein. Wenn ihr alles richtig gemacht habt, sollte hier die Nextcloudseite erscheinen. Zum Schluss müsst ihr nur noch einen Admin-Nutzer mit Passwort erstellen. Im Anschluss ist die Installation abgeschlossen.
Folgende Nextcloud-Anleitungen könnten für euch interessant sein:
- Externer Zugriff außerhalb des Heimnetzwerks mit Hilfe eines DynDNS Anbieters
- Verschlüsselte Server-Client Kommunikation mit SSL und Let’s Encrypt
- Nextcloud aktualisieren mit dem eingebauten Updater
Mehr Projekte mit dem Raspberry Pi:
- Raspberry Pi als Bridge konfigurieren (Smart Home)
Eine Übersicht zu allen Projekten mit dem Raspberry Pi findet ihr hier:
Der Pfad der Configdatei existiert bei mir nicht! Nextcloud neu installiert, snap neu installiert… brachte alles kein erfolg..
Im Ordner /var/snap/nextcloud/current/nextcloud ist nur das Verzeichnis extra-apps vorhanden, auf die ich nicht zugreifen kann.
Hallo, habe ein wenig recherchiert und dabei folgenden Workaround gefunden:
Wenn der Config-Ordner noch nicht vorhanden ist, rufe bitte dazu Nextcloud im Browser auf, wie ich es am Ende der Anleitung beschreiben habe. Lege hier einen Admin-Nutzer an. Im Hintergrund sollte dann auch der Config-Ordner erstellt werden. In diesem Ordner befindet sich jetzt eine config.php-Datei. Öffne diese und ändere den Speicher-Pfad, wie bei autoconfig.php beschrieben. Da die externe Festplatte nicht mit .ocdata initialisiert wurde, musst du noch diese Datei (ocdata) aus dem alten Verzeichnis, welches in der Config.php angegeben war in das neue Speicherverzeichnis kopieren. Das kopieren kannst du mit dem folgenden Befehl ausfühen:
sudo mv /var/snap/nextcloud/common/nextcloud/data/* /media/Festplatte/ (passe ggf. den Pfad an)
Starte den Server im Anschluss erneut mit:
sudo snap restart nextcloud.php-fpm
Ich hoffe das hilft dir! Viele Grüße, Jan
Zuert Vielen dank, es ist die best funktionirende anleitung
ich konnte die autoconfig.php auch nicht sehen, erst als ich:
sudo snap restart nextcloud.php-fpm
ausgeführt habe, konnte ich (sofort danach) editieren:
sudo nano /var/snap/nextcloud/current/nextcloud/config/autoconfig.php
dann ist sie verschwunden.
der server funktioniert aber super gut, ohne fehler.
Vielen dank nochmal
Jean-Luc
Can’t create or write into the data directory /snap/nextcloud/16740/htdocs/data
Die Fehlermeldung kommt beim anlegen des Admin Benutzers
Hast du mal geschaut, wie es mit den Zugriffsrechten in dem Verzeichnis ‚data‘ aussieht?
Probiere mal die Zugriffsrechte auf alle Benutzer umzustellen mit dem Befehl:
sudo chmod 777 -c -R /snap/nextcloud/16740/htdocs/data
Viele Grüße, J
Auch dieses Verzeichnis existiert nicht. Das 16740.
Die anderen die da mit Nummer sind enthalten kein htdocs
hab nochmal genauer nachgeschaut, das Verzeichnis htdocs existiert, jedoch ist es nur lesbar. Zugriffsrechte lassen sich nicht ändern, Ordner erstellen auch nicht.
Okay, das ist merkwürdig. Dann würde ich versuchen Nextcloud nochmal neu zu installieren und erstmal keine externe Festplatte als Speicher anzulegen. Das heißt also Nextcloud installieren und dann gleich anmelden als Admin. Wenn das funktioniert hat, kannst du probieren über die Config-Datei das Speichermedium zu wechseln. Nicht vergessen dann auch die Datenbank von dem alten Verzeichnis in das neue Verzeichnis zu verschieben.
Ich hoffe das hilft! Viele Grüße, J
„$ sudo dd if=Ziel of=Quelle“
das stimmt so nicht. if steht für input file und of für output file 😉
Danke dir für den Hinweis! Habe die Reihenfolge verdreht. Die Begriffe „Ziel“ und „Quelle“ sind aber trotzdem meiner Meinung nach besser verständlich.
pi@raspberrypi:~ $ sudo snap install nextcloud
error: unable to contact snap store
Weis jemand einen Rat?