2544259

Eigene Cloud einrichten mit Raspberry Pi und ownCloud

30.10.2020 | 13:48 Uhr | Swen Hopfe

Wer seine persönlichen Daten nicht an fremde Server übermitteln will, kann sie auch auf einem Homeserver ablegen, beispielsweise einem Raspberry Pi. Und in Verbindung mit der Software ownCloud ergibt das eine günstige Lösung für das Hosting.

Wenn private Anwender in die Cloud gehen, nutzen sie vor allem die Dienste der großen Anbieter für ihre Datenspeicherung. Vorteile sind unter anderem die einfache Bedienung, das gezielte Teilen von diversen Inhalten und die mittlerweile gute Integration in den Desktop und andere Applikationen. Der wichtigste Aspekt dürfte wohl die Datensicherheit sein. Aber auch der zur Verfügung stehende Speicherplatz und die dabei anfallenden Kosten spielen für den Nutzer eine Rolle.   

Wer mehr Kontrolle und Komfort wie eine eigene Nutzerverwaltung und verschiedene Zusatzmodule haben möchte, kann seit einiger Zeit auch auf Lösungen für das Hosting auf dem eigenen Server zurückgreifen. So erfreuen sich Lösungen wie ownCloud wachsender Beliebtheit. Die läuft auch auf dem Raspberry Pi, günstig für alle, die einen solchen als kleinen Homeserver bereits in Betrieb haben.

Bestehen bleibt die Möglichkeit, seinen Speicherplatz auch im Web und nicht nur im lokalen Netzwerk zur Verfügung zu stellen. Dann braucht der Pi eine statische IP und die notwendige Sorgfalt rund um den sicheren Zugang zu den mitunter ganz privaten Daten.  

ownCloud - Fotos
Vergrößern ownCloud - Fotos
© Swen Hopfe

Bei uns zu Hause gibt es schon länger einen Raspberry Pi mit verschiedener Server-Software und guten Erfahrungen im 24h-Betrieb. An dieser Stelle wollen wir den Sprung zum Anfang machen und illustrieren, wie man einen Pi als Cloud-Server mit ownCloud aufsetzt.

Pi vorbereiten

Wie man einen Raspberry Pi in Betrieb nimmt, dazu gibt es mittlerweile umfangreiche Anleitung im Web. Deshalb will ich für die grundlegenden Schritte auch nicht all zu sehr ins Detail gehen.

Bei uns tut es ein Raspberry Pi 3B+, welcher schon am Laufen ist und wohl einen guten Kompromiss zwischen Stromverbrauch und Leistung darstellt. Die aktuelle Pi-Version 4 eignet sich natürlich genauso. Ältere Modelle bieten weniger Leistung, das sollte man für den Serverbetrieb bedenken.

Fängt man ganz von vorn an, benötigt man zuerst ein Image mit Pi-OS, das man sich von der offiziellen Downloadseite holen kann und auf die SD-Karte für den Pi bringen muss.

Bei den großen Pis geht das Weitere am einfachsten, wenn man ein Kabel zu Router, Tastatur und Monitor anschließt, in den grafischen X-Desktop bootet, dort aktualisiert und alle wesentlichen Einstellungen vornimmt. Ein Desktop ist nicht zwingend nötig, ohne GUI ändert man mittels   

$ sudo raspi-config

unbedingt das standardmäßige Passwort und etwa auch die Benutzerkennung. Wir erlauben den Zugriff per ssh . Fortan kann man so auch im Terminal per Fernzugriff arbeiten. Und wir stellen den Hostnamen ein, mit dem man den Pi später im lokalen Netzwerk erreichen kann. Mittels

$ sudo apt update
$ sudo apt upgrade

wird zuerst aktualisiert.

Für den Betrieb der Cloud werden nun ein HTTP-Server, PHP und sqlite benötigt. Wer mit Lighttpd als ressourcensparenden HTTP-Server arbeiten möchte, installiert diesen mittels

$ sudo apt install lighttpd

Apache funktioniert natürlich wie gewohnt auch, für die Installation ersetzt man an dieser Stelle den Paketnamen durch “apache2”. Für die Installation von PHP und sqlite findet man mitunter noch ältere Anleitungen im Web, wo PHP5 genutzt werden soll.

Mittlerweile ist die 5er-Version veraltet und zurecht kein Installationskandidat mehr. Da sollte man mindestens auf die PHP-Version 7.3 zurückgreifen. Sqlite kann wahlweise auch als "sqlite3" angegeben werden:    

$ sudo apt install php7.3 php7.3-gd sqlite3 php7.3-sqlite3 php7.3-curl

Nicht zu vergessen, die spezifischen PHP-Module, welche ownCloud noch braucht:

$ sudo apt install php7.3-zip php7.3-dom php7.3-intl php7.3-mb

Bei Lighttpd befinden sich die zentralen Konfigurationseinstellungen unter „/etc/lighttpd/lighttpd.conf“. Hier findet man auch den Eintrag „server.document-root“, unter neueren Raspian-Versionen bzw. Pi-OS ist standardmäßig das Verzeichnis “/var/www/html” festgelegt:

...
# server.document-root  = "/var/www/html"
server.document-root    = "/mnt/disk/www/html"
server.upload-dirs      = ( "/var/cache/lighttpd/uploads" )
 server.errorlog         = "/var/log/lighttpd/error.log"
 server.pid-file         = "/var/run/lighttpd.pid"
 server.username         = "www-data"
server.groupname        = "www-data"
 server.port             = 80
...

Um genügend Platz für alle Inhalte zu schaffen, tragen wir nun einen neuen Pfad zu einer externen Platte oder SSD am Pi ein, die wir vorher an einem permanenten Ort im Dateisystem,  etwa unter /mnt/disk , eingehängt haben. Wie das am besten zu bewerkstelligen ist, dafür gibt es wieder diverse Anleitungen im Web und soll deshalb nicht Teil unserer Beschreibung hier sein.  

So soll im Folgenden für die Dokument-Root unseres HTTP-Servers beispielhaft /mnt/disk/www/html gelten, auf dem man nun die Dateien für die ownCloud ablegt. Wer möchte, kann nun weitere Einstellungen in der Konfigurationsdatei vornehmen. Danach sollte der Webserver mittels

$ sudo service lighttpd restart

neu gestartet werden. Wer sichergehen möchte, dass PHP ordentlich verarbeitet und das neue Dokument-Root erkannt wird, kann sich dort mit dem allseits bekannten Inhalt

<?PHP
phpinfo();
?>

eine minimale Datei mit beliebigem Namen, beispielsweise phptest.php, erstellen, nach deren Aufruf im Webbrowser unter

<hostname>/phptest.php

sich die PHP-Parameter im Fenster so oder ähnlich ablesen lassen sollten:

PHP-Testseite
Vergrößern PHP-Testseite
© Swen Hopfe

“Hostname” steht hier wie immer für die IP-Adresse oder den Namen des Pi, den er in Ihrer Netzwerkkonfiguration vorher bekommen hat.

ownCloud installieren

Zur Zeit gibt es ownCloud in der Version 10.5 auf der Downloadseite des Projekts. Einfacher holt man sich die Sourcen gleich mittels

$ wget https://download.owncloud.org/community/owncloud-10.5.0.zip

Unter https://download.owncloud.org/community/ kann man im Browser nachschauen, welche Version gerade aktuell ist und sich alternativ zur zip-Datei auch den Tarball holen. Nach dem Download von circa 44 MB gilt es, alles im Dokumentenverzeichnis zu entpacken:

$ sudo mv owncloud-10.5.0.zip /mnt/disk/www/html
$ cd /mnt/disk/www/html
$ sudo unzip -q owncloud-10.5.0.zip

Danach erhält man einen Ordner owncloud , in dem man ein Datenverzeichnis (hier data ) anlegen und mit entsprechenden Rechten versehen sollte:

$ sudo mkdir /mnt/disk/www/html/owncloud/data
$ sudo chown www-data:www-data /mnt/disk/www/html/owncloud/data
$ sudo chmod 750 /mnt/disk/www/html/owncloud/data

Danach den Pi am besten rebooten:

$ sudo reboot

Jetzt dürfen Sie durchatmen, denn alle Vorarbeiten sind getan.

Cloud in Betrieb nehmen

Neben anderen Inhalten auf dem Server sind wir mit der Cloud nun im Unterordner owncloud ansässig und können diesen somit gezielt ansteuern, in dem wir beim ersten Aufruf im Browser Folgendes als URL angeben:

<hostname>/owncloud/

Damit sollte man nun zum Anmeldebildschirm von ownCloud kommen. Es kann jedoch sein, dass man stattdessen angezeigt bekommt, welche PHP-Module man für einen einwandfreien Betrieb noch nicht installiert hat.

Fehlende Module
Vergrößern Fehlende Module
© Swen Hopfe

Aber der Server läuft schon mal, nicht schlecht. Im Fehlerfall gilt es, nachzuinstallieren und mittels Neustart oder Reboot vom Pi wieder aufzufrischen.

Hat das geklappt, wird man zum Anlegen eines Admin-Kontos aufgefordert. Die Leistungs-Warnmeldung zu sqlite kann man bei moderater Beanspruchung der Cloud ignorieren. Hat man seine gewünschten Zugangsdaten eingegeben, geht's zum ersten Login und man sieht die Startansicht von ownCloud.

ownCloud-Login
Vergrößern ownCloud-Login
© Swen Hopfe

Geschafft! Für uns als Admin lohnt sich ein Blick auf die Ordnerstruktur. ownCloud hat unter dem Verzeichnis data nun ein weiteres Unterverzeichnis gemäß dem Nutzernamen angelegt, was sich weiter nach cache , thumbnails und files verzweigt. Unter files befinden sich wiederum Documents und Photos .

Zugriff aus dem Web

OwnCloud für den Zugriff aus dem Web verfügbar zu machen, hat mit der eigentlichen Software und Installation nicht mehr direkt zu tun. Ein paar Tipps aber noch dazu, denn hat man seine eigene Cloud erst einmal am Laufen, vermisst man eventuell den Zugriff von unterwegs.

Unser Homeserver ist in den Freigaben des Routers an Port 443 als HTTPS-Server eingetragen. Um das heimische Netzwerk von außerhalb erreichen zu können, braucht es außerdem eine statische IP, unter der man definiert auf seinen Router zugreifen kann. Dazu gibt es DynDNS-Dienste, heutzutage in eher überschaubarer Anzahl, sucht man als Privatanwender einen stabilen und kostenlosen Dienst.

In den meisten Bedienoberflächen der Router findet sich eine Auswahlmöglichkeit für bekannte DynDNS-Dienste oder man macht manuelle Einträge. Hat man sich vorher bei einem Dienst angemeldet, trägt man so Domainnamen, Nutzernamen und Passwort ein. Für Fritzbox-Nutzer gibt es diesen Dialog:

Fritzbox - DynDNS-Einstellungen
Vergrößern Fritzbox - DynDNS-Einstellungen
© Swen Hopfe

Legt man keinen Wert auf einen schicken Domainnamen, geht es gerade für Nutzer der Fritzbox aber auch ohne einen externen Dienst, wo wir die Fernzugriffsmöglichkeiten der Box für unsere Zwecke umbiegen. Hier macht man sich Myfritz zunutze und braucht dort zuerst wieder einen Nutzer-Account. Den kann man durchaus mit den gleichen Credentials wie für die Box anlegen, um sich keine weiteren Zugangsdaten merken zu müssen.

Im Anschluss schaltet man nun in Internet | Myfritz-Konto den gerade konfigurierten Account und unter Internet | Freigaben | Fritzbox-Dienste den generellen Zugriff zur Fernwartung frei:

Einstellungen Fritzbox-Fernzugriff
Vergrößern Einstellungen Fritzbox-Fernzugriff
© Swen Hopfe

Hier ist nun auch die vollständige URL und Portnummer ablesbar. Da wir aber nicht auf die Fritz-Oberfläche zur Fernwartung möchten, lassen wir beim Aufruf im Browser einfach die Portnummer weg. Ein typischer Aufruf, mit der für Sie eigenen Buchstaben/Zahlen-Kombination am Anfang, sieht also so aus:

https://a2b4c6d8e0f2g4h6i8k0.myfritz.net

Nach Eingabe der Zugangsdaten für den vorher konfigurierten Fritz-Nutzer gelangt man jetzt ins Dokumentenverzeichnis seines Servers zu Hause, von dem aus man wieder ownCloud starten kann.

Zusammengefasst

Ein Vorteil von ownCloud ist, dass man die grundlegenden Einstellungen auf der Weboberfläche gut findet und dass diese nicht zu zahlreich sind und übersichtlich daherkommen. So braucht es keine lange Einarbeitung. Installation und Setup werden jedem halbwegs erfahrenen Raspi-Nutzer leicht von der Hand gehen.

Gut auch, dass es einen “Markt” gibt, wo man seine Standardinstallation mit zusätzlichen Modulen wie Bildergalerie, PDF-Viewer oder weiteren Sicherheitsfunktionen sinnvoll ergänzen kann.

Im lokalen Netzwerk ist die eigene Cloud immer noch schneller als die externen “Wolken” an einem Highspeed-Anschluss, wo es  nicht zuletzt auf die Upload-Geschwindigkeit ankommt. Speicherplatz schafft man sich beim Raspberry Pi dadurch, dass man nicht auf der SD-Karte arbeitet, sondern das Heimatverzeichnis der Cloud auf ein externes Speichermedium legt. Für das entsprechende Backup und die notwendige Sicherheit, gerade beim Zugriff aus dem Web, zeichnet man wie immer vor allem selbst verantwortlich.   

Mit dieser Lösung, die bei uns schon länger für Zwecke rund ums häusliche LAN in Betrieb ist, bin ich recht zufrieden und kann die Installation auf dem Pi als Server für die ownCloud gut empfehlen.

PC-WELT Marktplatz

2544259