Im Beitrag Himbeere reloaded habe ich über den neuen Raspberry Pi geschrieben und angedeutet, dass er dazu auserkoren wurde, für mich als private Datenwolke in die Lüfte zu steigen. Dazu wollte ich erst Own Cloud benutzen, aber Andi (schon wieder er) hat mir empfohlen, stattdessen Nextcloud zu nehmen. Eine gute Empfehlung, weil es dort Funktionen gratis gibt, für die man bei Own Cloud zahlen muss.
In den Tamedia-Zeitungen habe ich im Beitrag Wie man Googles Würgegriff entkommt (Abo plus) bereits ein wenig über den Verlauf dieses Projekts geschrieben – allerdings ohne in die Details zu gehen. Hier werde ich nun ein paar Einzelheiten preisgeben. Zumindest, soweit das möglich ist, ohne dass meine ganze Street Cred als Nerd aufs Spiel zu setzen.
Erst mal ein bisschen Rechtfertigung
Denn wie im Artikel angedeutet, habe ich mich amateurhaft angestellt. Zu meiner Verteidigung sei gesagt, dass nicht allein meine Dummheit schuld war, sondern diese, hoffentlich nachvollziehbaren Gründe:
- Erstens waren meine Linux-Kenntnisse nie besonders gut – als Computerjourni schlägt man sich (halb freiwillig, halb unfreiwillig) nun einmal vor allem mit Windows, dem Mac, iOS und Android herum. Und meine bescheidenen Kenntnisse sind inzwischen eingerostet.
- Zweitens ist die Dokumentation nicht so toll, wie sie sein könnte. Wenn man googelt, findet man Anleitungen, die teils überholt sind.
- Und drittens bin ich von falschen Annahmen ausgegangen. Ich habe geglaubt, manche Dinge (wie das Formatieren der externen Festplatte und das Verschieben des Datenordners von der SSD auf diese besagte externe Festplatte) auf manuellem Weg erledigen zu müssen (weil es früher nicht anders ging). Doch das ist überflüssig. Heute existieren Admin-Werkzeuge, die ich weiter unten vorstelle. Und aufgrund von Grund 1 war hinterher die Nextcloud-Installation hinüber.
Mit ein paar Terminal-Befehlen kommt man zurecht
Dabei wäre es eigentlich einfach. Und man braucht nur eine Handvoll Terminal-Befehle zu beherrschen. Grob geht man folgendermassen vor:
Man richtet auf dem Raspberry Pi Raspbian wie beschrieben ein. Man aktiviert als Nächstes in der Konfiguration den Zugang via SSH. Dann findet man die IP-Adresse des Raspberrys heraus, zum Beispiel über diesen Befehl:
hostname -I
Dann greift man am Mac per Terminal auf den Raspberry Pi zu:
ssh pi@192.168.1.146
Die IP-Adresse nach dem At entspricht natürlich der Angabe, die einem der erste Befehl zurückgeliefert hat. Bei Windows nutzt man Putty (hier die Anleitung). Und wenn man mag, kann man sogar eine mobile App nutzen, zum Beispiel WebSSH fürs iPhone oder JuiceSSH für Android (letztere habe ich aber nicht getestet).
Die SSH-Schlüssel wegwerfen
Übrigens, wenn man, wie ich, in die Verlegenheit kommen sollte, wegen eines eklatanten User-Versagens Raspbian mehr als einmal installieren zu müssen, dann gibt der Mac nach der Neuinstallation eine Warnung aus, in der von einer Man in the Middle-Attake die Rede ist. (Warning: Remote host identification has changed. It is possible that someone is doing something nasty.)
Das liegt daran, dass sich durch die Neuinstallation die Schlüssel zur Absicherung der SSH-Verbindung geändert haben. Man entfernt in dem Fall die alten Schlüssel, und zwar mit diesem Befehl:
ssh-keygen -R 192.168.1.146
Die IP-Adresse muss man natürlich wiederum an die Gegebenheiten anpassen.
Die Systemsoftware aktualisieren
Sinnvoll ist, an dieser Stelle ein Update für das Betriebssystem und die vorinstallierte Software anzustossen – am besten noch bevor man einen Neustart ausführt. Mir ist es nämlich passiert, dass der Raspberry Pi nach der Installation des Betriebssystems nicht mehr aufstarten konnte. Meine Vermutung ist, dass das an einem Kompatibilitätsproblem von Raspbian liegt. Für die Aktualisierung tippt man am Prompt folgende Befehle:
sudo apt-get update
sudo apt-get dist-upgrade
Mehr Details zum Updaten finden sich übrigens hier.
Die Nextcloud mit einem einzigen Befehl installieren
Nun kann es auch schon losgehen. Für die Installation von Nextcloud habe ich mich an die Anleitung Nextcloud auf dem Raspberry Pi – so gehts von Heise gehalten. Man kann die Anleitung auch kurz zusammenfassen, denn man braucht nur einen einzigen Befehl für die Installation:
curl -sSL https://raw.githubusercontent.com/nextcloud/nextcloudpi/master/install.sh | sudo bash
Die Installation dauert ihre Zeit. Wenn sie durchgelaufen ist, dann erscheint (im Browser, wenn man via IP-Adresse des Raspberry Pi auf die Nextcloud zugreift) ein Assistent, der einem die Zugangsdaten für den Administrator angibt und die man sich aufschreiben sollte. Falls man das vergisst, kann man das Admin-Passwort jedoch nachträglich ändern:
sudo -u www-data php /var/www/nextcloud/occ user:resetpassword ncp
Die Pfade und der Name des Benutzers (ncp) muss man unter Umständen den Gegebenheiten anpassen.
Der Assistent nimmt grundlegende Angaben zur Konfiguration entgegen. Hier sollte man die Gelegenheit haben, als Speicherort die externe Festplatte anzugeben. In meinem Fall hat das nicht geklappt – vielleicht deswegen, weil ich in voreilendem Gehorsam die Festplatte selbst gemountet hatte. Wie eingangs angedeutet kann man sich das sparen.
Für die Konfiguration und Administration sind an dieser Stelle zwei Befehle nützlich. Erstens dieser hier:
sudo raspi-config
Er zeigt am SSH-Terminal die Konfigurationsmöglichkeiten für den Raspberry Pi an. Im Menü erscheint auch ein Punkt für die Konfiguration von Nextcloud. Dieses Konfigurationsmenü lässt sich auch mit folgendem Befehl aufrufen.
sudo ncp-config
Unter Config ändert man den Speicherort für die Datenbank (nc-database) und die Ablage (nc-datadir). Man kann auch hier Passwörter ändern (nc-passwd), die URL-Schönschreibung aktivieren (nc-prettyURL), das Web-Interface ein- und ausschalten (nc-webui) und eine verbastelte Konfiguration zurücksetzen (nc-init).
An gleicher Stelle führt man auch die Liste der zulässigen Domains (nc-trusted-domains). Das ist notwendig, nachdem man den DynDNS-Dienst eingerichtet hat. Die dort gewählte Domain muss hier hinterlegt werden.
Die wichtigen Konfigurationspunkte
Auch die anderen Konfigurationspunkte sollte man sich ansehen. Bei Networking schaltet man z.B. Samba ein. Bei System konfiguriert man die externen Festplatten: Bei nc-automount aktiviert man die Funktion, dass externe USB-Festplatten automatisch eingebunden werden. Und man schaltet das WLAN ein und aus (nc-wifi).
Bei Tools flickt man die Berechtigungen (nc-fix-permissions), formatiert externe Festplatten (nc-format-USB), führt Wartungsaufgaben durch (nc-maintenance), erzeugt Vorschauen für die Galerie (nc-previews) und führt eine Aktualisierung durch, wenn Dateien ausserhalb von Nextcloud verändert worden sind (nc-scan).
Fazit: Wenn man dieses Instrument kennt, dann ist die Konfiguration keine Hexerei.
Erstaunlich unkompliziert war übrigens der Zugriff von aussen. Als DynDNS habe ich es einmal mit Noip.com probiert, werde aber wohl noch wechseln, weil dieser Dienst von meinem Router nicht direkt unterstützt wird. Ich muss nachsehen, ob es mit spdyn.de (Nach Hause finden) geht. Apropos Router: Beim Turris-Omnia-Router (Der Nerd-Router) gibt es ein Modul für dynamische DNS-Adressen.
Was es noch braucht, ist ein Port-Forwarding in der Firewall des Routers. Auch das war, ein bisschen zu meiner Überraschung, ein Klacks.
Tipps von Twitter
Und hier noch die Tipps von Twitter als Reaktion zu diesem Blogpost:
Meine @Nextclouders läuft als #docker Container. In der @ctmagazin 10/2018 hat es eine gute Anleitung. Mit einem #docker Container läuft deine #NC in 10 Minuten.
— Remo Scheidegger (@RemoScheidegger) September 2, 2019
Ich nutze #dietpi. Ein sehr einfaches und sparsames Pi System. Darin enthalten eine große Sammlung an Software (z.B. Nextcloud), welche ich direkt installieren lassen.
Für mich als Anfänger auch sehr gut geeigent.
— Herr Sin (@herrsin) September 2, 2019
probiere mal @NextCloudPi das vereinfachte die Installation, Wartung, Update und Backup
— hoffmann (@hurrikan77) September 2, 2019
Habe ich auf RPi4 und Odroid XU4 am Laufen. Der XU 4 ist deutlich performanter mit Letsencrypt. Aber alles sehr einfach auf beiden Plattformen zu realisieren. Inkl. des Backups und Autoupdates
— André Neumann (@herr_nm) September 2, 2019
Beitragsbild: Sobald der Arm nach oben schnellt… (Liam Ortiz/Pexels, Pixels-Lizenz).
Schöne Anleitung! Wusste nicht, dass es für den RasPi einen eigenen NextCloud-Installer gibt. Ist natürlich super, so schön eingebunden in die Konfigurationstools.
Wenn man zu faul ist, um Monitor und Tastatur anzuschliessen, kann man übrigens auf der SD-Karte eine leere Datei namens „ssh“ hinterlegen. Dann ist SSH beim nächsten Start aktiviert.
Was Du -quasi als „Kür“- noch machen könntest: bei Deiner Domain einen CNAME-Eintrag einrichten, welcher auf den DynDNS-Namen zeigt. Dann im NextCloud Let’s Encrypt aktivieren. So könntest Du über https://cloud.clickomania.ch auf den RasPi zugreifen und das mit einem gültigen Zertifikat.
Coole Idee, danke!
Hallo Matthias!
Ich habe eine „blöde“ Frage!
Muss ich unbedingt Nextcloud den Zugriff von aussen konfigurieren, oder kann ich Nextcloud auch einfach nur für den Hausgebrauch konfigurieren? Was muss/kann ich dann bei er Einrichtung weglassen.
Interessant wäre auch, wie ich ein Raid System realisieren kann, z.B. mit zwei externen USB Festplatten die gespiegelt werden sollen. Ich weiß, der Raspberry bietet keine Performance etc., aber mir kommt es hier auf die Datensicherheit meiner Dokumente (Excel- und Wordfiles, Steuerdaten, wichtige andere Dateien) an; Geschwindigkeit ist da nicht so wichtig!
Ich freue mich schon auf Deine Antwort!!!
Gruß
Jörg
Du kannst die Nextcloud auch explusiv im lokalen Netzwerk nutzen. Du sparst dir die Konfiguration von DynDNS und das Port-Forwarding am Router. Und auch einige Konfigurationshürden fallen weg, zum Beispiel das Einrichten der Verschlüsselung mittels Let’s-encrypt-Zertifikat.
Was das RAID angeht, kann ich nicht wirklich weiterhelfen: Das habe ich nicht durchgespielt: Ich sichere alle Daten vom Raspberry Pi zurück auf meine Rechner und die sind wiederum mehrfach datengesichert, sodass ich beim Raspi bislang kein Backup-Bein ausgerissen habe. Wenn mir das RAID wichtig wäre, würde ich wahrscheinlich statt des Raspberry Pi erst einmal sehen, was mit Synology oder einem anderen entsprechend gerüsteten NAS möglich wäre.
Ich habe das Problem, dass mein Raspberry Pi nach kurzer Zeit ‚einschläft‘ also nicht mehr über das Wen-Interface ansprechbar ist. Im Netz habe ich einen Hinweis gefunden, dass ich es Schwierigkeiten beim Anschluss von Festplatten geben kann, die ihren Strom über die USB-Schnittstelle beziehen. Ich verwende allerdings die Original Stromversorgung von Raspberry Pi. Deshalb wundere ich mich über dieses Verhalten. Weiß jemand Abhilfe?
Ich leider nicht – ich hatte das Problem nicht. Ich habe allerdings das Betriebssystem auf die externe Festplatte installiert. Kann sein, dass das die Platte wachhält.