Nanu? Was soll denn „Himbeerkuchen-Wolke“ bedeuten, lieber retrololo? Du meinst wohl die „Himbeer-Wölkchen“, ein klassisches polnisches Kuchenrezept, oder?
Wer regelmäßig diesen Blog ließt, weiß, dass ich mit Backen so viel am Hut habe, wie ein schmieriger Autoverkäufer mit ehrlichen Kilometerständen! 😛 Heute geht es natürlich nicht um Backwaren, sondern vielmehr um den Einplatinencomputer „Raspberry Pi“, mit welchem sich zahlreiche interessante Bastelprojekte (siehe z.B. PiFM aus Artikel 13) verwirklichen lassen.
Fun Fact: Aufmerksame Leser sollten die Himbeerkuchen-Anspielung bereits aus Artikel 196 kennen. „Damals“ haben wir uns mit einem Raspberry Pi und der Software RetroPie eine kleine Wunderkiste gebastelt, mit der sich zig alte Videospielkonsolen und PCs emulieren lassen. Schön wars! 🙂
Eines dieser Projekte, welches ich schon seit gefühlt einer Ewigkeit angehen wollte ist „NextcloudPi“. Hinter dem progressiven Namen verbirgt sich ein Open Source Projekt, welches die Software „Nextcloud“ auf Raspberry Pi Systemen lauffähig macht. Nextcloud ist eine Cloud-Software für Self-Hosting und Cloud-Computing und wird überwiegend im privaten Umfeld als nichtkommerzielle Alternative zu Cloud-Speichern wie Amazon AWS, Google Drive oder Apple iCloud verwendet.
Fun Fact: Spätestens jetzt sollte sich der alberne Titel des heutigen Beitrags erklären: Raspberry Pi(e) + NextCLOUD = Himberkuchen-Wolke. Ist doch völlig logisch, oder? 😛
Hm, und warum will man sowas haben? Nun, es soll noch Leute geben, welche die volle Kontrolle über ihre Daten behalten und nicht Familienfotos oder schützenswerte Dokumente in die Cloud von amerikanischen Anbietern legen möchten. Ich bin kein „Aluhut-Verschwörungstheoretiker“, aber die Gefahr von Datenmissbrauch durch zwielichtige Tochterfirmen (zur „Datenanalyse“) empfinde ich persönlich als hoch. Und – sind wir mal ehrlich – unabhängig vom „Sicherheitsgedanken“ ist die Einrichtung so einer privaten Cloud mit Sicherheit ein interessantes Bastelprojekt! 😉
Ok, was brauchen wir neben dem Raspberry Pi (Modell 4 B, 4GB RAM) noch? In jedem Fall ein USB-C-Netzteil, ein Gehäuse, ein Micro-HDMI-Kabel sowie eine MicroSD-Karte. Bis auf die MicroSD-Karte (200GB) musste ich leider alles kaufen. Immerhin konnte ich ein paar der Teile zusammen als Set erstehen. Zur Zeit habe ich einfach keinen Nerv auf das „Zusammenhamstern“ von Einzelteilen. 🙁
Not so fun Fact: Ist das nicht verrückt? Bis vor ein paar Jahren (oder Monaten?) konnte man den Raspberry Pi 4 für ca. 30€ erwerben. Jetzt kosten (abhängig vom verbauten Arbeitsspeicher) Modelle des Raspberry Pi 4 schon zwischen 60-90€. Mit allen anderen Komponenten zusammengerechnet kommt man da schnell auf einen dreistelligen Betrag…
Bevor wir mit der „Technik“ loslegen, sollten wir dem Mini-PC erst mal was passendes anziehen! 😉 Ich habe mich für ein Gehäuse vom Hersteller „FLIRC“ entschieden. Das Case ist aus Aluminium gefertigt und besitzt eine passive Kühlung (Wärmeleitpad als Verbindung zum Rahmen). Besser wäre es vermutlich ein Gehäuse mit aktiver Kühlung (via Lüfter, ggf. per PWM gesteuert) zu verwenden, aber ich bin mal so optimistisch und hoffe, dass der Mini-PC auch so nicht zu heiß wird.
Damit der Raspberry Pi weiß, was eine „Nextcloud“ ist, müssen wir ihm auf der MicroSD-Karte ein Betriebssystem (Raspberry Pi OS) samt vorkonfigurierter Nextcloud-Software zur Verfügung stellen. Dafür laden wir einfach die aktuellste Version des NextcloudPi-Images herunter und schreiben es mit Hilfe der Software „Etcher“ (alternativ „Win32 Disk Imager“, siehe Artikel 13 oder 196) auf die Speicherkarte.
Gute zwei Minuten später ist die MicroSD-Karte bestückt:
Jetzt können wir den Datenträger in den Mini-PC einstecken, diesen mit Strom versorgen und über ein Netzwerkkabel in das Heimnetzwerk einbinden.
Sobald der Raspberry Pi hochgefahren ist, können wir über die Adresse “https://nextcloudpi:4443” das Webinterface der Nextcloud-Software in einem Browser aufrufen. Dieses teilt uns freundlicherweise beim Erstaufruf Benutzer und Passwörter für den administrativen Zugang (Systemeinstellungen) und „normalen“ Userzugriff auf unsere Nextcloud mit.
Not so Fun Fact: Abhängig von der im Image verwendeten Softwareversion kann es sein, dass der Aufruf auch nur über die dem Raspberry Pi zugewiesenen IP-Adresse klappt.
Beim Versuch, sich mit dem Administratorenkonto anzumelden, wird ein Wizard gestartet, welcher einmalig ein paar grundsätzliche Parameter (Anschluss eines USB-Geräts für mehr Speicherplatz, Einrichtung eines Zugangs für den Zugriff von außerhalb des Heimnetzwerks) abfragt. Fürs Erste belassen wir es mal bei einer rein lokalen Installation ohne weitere USB-Geräte.
Sind wir erst mal auf der Administrationsoberfläche angekommen, können wir Einfluss auf zahlreiche Einstellungen, wie z.B. (automatische) Backups, Sicherheitseinstellungen, Ablageort der Dateien, externe USB-Geräte zur Erweiterung des Speicherplatzes und Updates unserer Nextcloud nehmen.
Apropos Updates – ein gutes Stichwort! Bevor wir irgendwas tun, sollten wir das gesamte System erstmal mit frischen Updates versehen. Grundsätzlich lässt sich unsere private Cloud recht komfortabel über die Weboberfläche managen. So klappt z.B. der Updatevorgang für die verfügbaren Nextcloud-Anwendungen (Calendar und News) über die grafische Oberfläche einwandfrei:
Leider gilt das nicht für alle Funktionen. Gerade länger laufende Aktionen (wie z.B. das Update der Nextcloud-Software und Systemkomponenten selbst) bleiben hängen oder schmeißen unterschiedliche Fehlermeldungen. Ich vermute, dass es an einem Timeout des Webservers liegt.
Somit bleibt uns nichts anderes übrig, als das Update händisch per Terminal (via SSH) durchzuführen. Der SSH-Zugang muss dafür einmalig über die Administrationsoberfläche freigeschaltet werden. Anschließend können wir uns mit einem SSH-Client (z.B. PuTTY) auf den Mini-PC aufschalten…
…und den Updatevorgang über den Befehl „sudo ncp-update“ anstoßen.
Fun Fact: Im Nachhinein ist mir aufgefallen, dass wir durch die Nutzung von SSH das Micro-HDMI-Kabel gar nicht gebraucht hätten! Das wäre nur von Nöten gewesen, wenn man den Raspberry Pi samt Tastatur und Maus an einem Bildschirm anschließen wollen würde. Völlig verpeilt! 😀
Spätestens jetzt ist der Punkt gekommen, an dem ein verantwortungsvoller Systemadministrator sich Gedanken über Sicherungskonzepte (Backup & Restore) machen würde. Nicht mit uns! 😛 Ich weiß, wie langweilig das Thema „Backup“ ist und vermutlich würde das den Rahmen des Beitrags wohl auch sprengen. Stattdessen schauen wir uns lieber die Funktionen der frisch installieren Nextcloud aus „Kundensicht“ (also als Nutzer) an. Über den Link “https://nextcloudpi/” lässt sich der Nutzerbereich der Cloud aufrufen. So die Theorie, denn leider knallt uns der Browser eine Fehlermeldung nach der anderen entgegen: „Mögliches Sicherheitsrisiko erkannt“ – na sowas!
Fun Fact: Ich habe spaßeshalber die verschiedenen Fehlermeldungen, welche im Lauf der Fehlersuche (bzw. bei Fehlerbehebungsversuchen) aufgetreten sind, gleich zusammengefasst. IT sucks! 😀
An dieser Stelle könnte ich einen Vortrag über (selbstsignierte) Zertifikate, vertrauenswürdige Stammzertifizierungsstellen, IPv4, IPv6, OpenSSL, fehlerhafte Apache-Webserverkonfigurationen, unvollständige PHP-Definitionen, falsche Domainnamen, fehlende Berechtigungen und Subject Alternative Names halten. Ich weiß – wen interessiert das alles? Alleine mit diesen Themen könnte man vermutlich Stunden (sowie ein paar weitere Blogbeiträge) füllen. Vielleicht nur soviel: Im Endeffekt ist das Problem, dass NextCloudPi ab Werk lediglich ein selbstsigniertes TLS-Zertifikat (und keines, von einer der dem Browser bekannten Zertifizierungsstellen signiertes) mitbringt. Somit bleibt uns nichts anderes übrig, als mit Hilfe von OpenSSL selbst eine lokale CA (Zertifizierungsstelle) zu gründen…
…und uns ein Zertifikat für unsere Nextcloud auszustellen. Dabei muss einiges beachtet werden (Domainname, Subject Alternative Names, Schlüssellängen, etc.), aber wie versprochen, werde ich nicht weiter auf die ganzen (teils schon sehr kryptisch wirkenden) Parameter eingehen.
Das frisch erstellte Zertifikat muss dann noch auf dem Apache-Webserver der Nextcloud eingespielt werden. Nach der Änderung der entsprechenden Konfigurationsdatei muss der Server durchgestartet werden, sonst greift das neue Zertifikat nicht. Ebenso muss im Zertifikatsspeicher des verwendeten Browsers die von uns erstelle Zertifizierungsstelle installiert werden. Ganz schön komplex!
Ich musste ziemlich lange herumbasteln, bis ich die Sicherheitswarnungen alle beseitigt hatte. Zu allem Überfluss hat mir dann die lokale Dual-IP-Stack-Konfiguration (Stichwort IPv6) noch einen Strich durch die Rechnung gemacht. Das alles ist jetzt aber egal, schließlich wollen wir uns endlich ansehen, was man denn mit so einer Nextcloud alles machen kann!
Erst mal auf dem Dashboard angekommen, können wir alle bereits vorinstallierten Funktionen (Apps) einsehen und ansteuern. So kann man z.B. out of the box Dateien mit anderen teilen,…
…oder eigene Kalender verwalten und mit diversen Endgeräten synchronisieren.
Das funktioniert mit so ziemlich jedem Stück Technik, welches einen halbwegs modernen Internetbrowser besitzt – sei es nun ein Smartphone, ein Tablet oder ein PC. Der Zugriff von einem Mobiltelefon aus kann alternativ auch über die Nextcloud-Smartphone-App durchgeführt werden.
Fun Fact: Bei dem Smartphone im Bild handelt es sich um das Galaxy S7 aus Artikel 220! 🙂
Doch es geht noch besser! Mit Hilfe der WebDAV-Funktionalität kann man direkt auf geteilte Dateien und Verzeichnisse zugreifen. Auch hier gibt es (gerade unter Windows) zahlreiche Stolperfallen, in die man tapsen kann, aber wenn es erst mal eingerichtet ist, dann ist es eine praktische Sache.
Besonders cool finde ich, dass mit Hilfe der App „DAVx5“ der lokale Kalender über die Nextcloud mit dem CalDAV-Protokoll synchronisiert werden kann.
Damit das klappt, muss natürlich wieder unsere zuvor erstellte CA auf dem Smartphone selbst und ggf. sogar zusätzlich in den auf dem Smartphone installierten Browser importiert werden. Abhängig vom Gerät (Android- oder iOS-Version, verwendeter Browser, etc.) kann das ganz schön tricky sein.
Not so fun Fact: Hat man z.B. den Firefox-Browser installiert, wird nicht der Zertifikatsspeicher des Smartphones verwendet, sondern ein eigener, in den Browser integrierter Speicher. Dementsprechend muss man Firefox erst – durch das Aktivieren einer Option, die sich in einem unsichtbaren Menü versteckt, welches man nur durch das siebenmalige Tippen auf das Mozilla-Logo freischalten kann, dazu überreden, den Smartphone-Zertifikatsspeicher zu verwenden. Ich schwöre es euch, das ist kein Witz! 😀 Ernsthaft – welcher sadistische Entwickler lässt sich so einen Blödsinn einfallen? xD
Ich selbst (als überzeugter „Anti-Smartphone-Nutzer“) synchronisiere meine Kalender mit Thunderbird auf dem PC. Das klappt erfreulicherweise (im Vergleich zu den Handständen auf dem Smartphone) relativ einfach, wobei auch hier die Zertifizierungsstelle erst manuell in die Zertifikatsspeicher von Windows und Thunderbird importiert werden muss.
Ich denke, damit sollten wir es für heute gut sein lassen. Die Nextcloud würde noch zahlreiche weitere interessante Funktionen wie z.B. eine Online-Office-Suite (OnlyOffice) zur direkten Bearbeitung von Dokumenten im Browser, sowie einen Audio- und Videokommunikationsdienst namens „Nextcloud Talk“, durch welchem man mit anderen Nutzern chatten kann oder gar Telefon- und Videokonferenzen durchführen kann, bieten. Alles interessante Dinge, die uns aber fürs Erste nicht weiter kümmern sollen. Ich bin froh, mit der Nextcloud eine günstige Lösung für den Dateiaustausch und Kalenderabgleich im Heimnetzwerk gefunden zu haben. Ebenso hat der zwischenzeitliche „Deep Dive“ in die Technik auch mal wieder gut getan! 😉
In diesem Sinne – bis die Tage, ciao!