2078068

Private Cloud auf Raspberry Pi dank Seafile - so geht's

09.08.2015 | 16:09 Uhr |

Persönliche Daten in die öffentliche Cloud zu legen, ist mit Bauchschmerzen verbunden. Damit geben Sie im Prinzip die Kontrolle aus der Hand. Eine private Cloud wie Seafile können Sie hingegen zu Hause auf einem stromsparenden Raspberry Pi betreiben.

Die private Cloud auf einem Raspberry Pi hört sich unrealistisch an: Doch ist so ein kleiner Rechner mit so viel Cloud tatsächlich möglich. Auf einem Raspberry Pi 1 Modell B+ läuft Seafile als persönliche Cloud brauchbar, mit dem jüngeren Raspberry Pi 2 können Sie mit Sicherheit einem kompletten Haushalt die private Cloud spendieren. Seafile ist derzeit ein reiner Synchronisations-Server für Dateien. Sie können Dateien und Ordner freigeben und mit anderen Anwendern teilen. Seafile stellt allerdings nicht wie Owncloud Kalender und Kontakte zur Verfügung. Dafür ist Seafile aber ungleich schneller als Owncloud: Gerade auf einem Winzling wie dem Raspberry Pi sind die Leistungsunterschiede enorm.

Der neue Raspberry Pi 2

Voraussetzungen: Was Sie alles benötigen

Die Investitionskosten hängen sehr von der gewünschten Ausstattung ab: Ab 35 Euro sind Sie dabei, aber nach oben ist einiges möglich, insbesondere wenn Sie eine externe USB-Festplatte benötigen: Sie brauchen einen Raspberry Pi und eine Stromversorgung (5 Volt / Micro-USB). Sollten Sie noch keine Platine besitzen, raten wir zum aktuellen Modell 2 mit Quadcore-CPU und einem GB RAM. Wie groß die Micro-SD-Karte sein soll, hängt von Ihren Storage-Ansprüchen ab. Minimum sind vier bis acht GB. Wir raten außerdem zu einer Class-10-Karte für optimale Leistung. Soll die Cloud viele Daten aufnehmen, brauchen Sie eventuell eine externe Festplatte.

My SQL ist für Seafile empfohlen: Die neueste Version des My-SQL-Servers ist mit einem einzigen Befehl im Terminal installiert.
Vergrößern My SQL ist für Seafile empfohlen: Die neueste Version des My-SQL-Servers ist mit einem einzigen Befehl im Terminal installiert.

Tastatur, Maus und Bildschirm (HDMI) sind nur für die Ersteinrichtung des Raspberry Pi notwendig. Sobald das System läuft, können Sie Open SSH aktivieren (via raspi-config auf der Kommandozeile) und den Raspberry Pi aus der Ferne administrieren. Ist der Raspberry Pi entfernt vom Router platziert und somit keine Ethernet-Verbindung möglich, können Sie den Raspberry Pi notfalls mit einer USB-WLAN-Karte ausstatten. Die WLAN-Adapter von Edimax funktionieren mit dem Raspberry Pi sehr gut.

Wollen Sie dieser Anleitung folgen, benötigen Sie das Debian-Derivat Raspbian auf der Micro-SD-Karte. Alternativ laden Sie sich Noobs von www.raspberrypi.org/downloads/ herunter und folgen den Anweisungen. Die Installation von Raspbian ist heutzutage ein Kinderspiel.

Cloud-Server Owncloud auf Raspberry Pi installieren

Tipp für Nicht-Bastler: Wem die Installation zu umständlich ist, sollte sich den Ionas-Server ansehen. Unter anderem sind dort Seafile und Open VPN vorinstalliert, und Sie bekommen mit dem Kauf telefonischen Support bei der Einrichtung. Die Daten liegen auf einer Ein-TB-Festplatte, die ebenfalls im Preis enthalten ist.

Grundlagen zu den Software-Komponenten

Nach der Installation ist es zu empfehlen, dem Raspberry Pi eine fixe lokale IP-Adresse zuzuweisen. Eine feste IPAdresse können Sie direkt im Gerät konfigurieren, oder Sie weisen den Router an, der MAC-Adresse des Pi immer die gleiche IP-Adresse zu geben. Die meisten modernen Router bieten diese Option. In unserem Fall haben wir dem Raspberry Pi die IP-Adresse 192.168.100.50 gegeben. Das wird später noch wichtig. Die MAC-Adresse der Netzwerkkarte des Raspberry finden Sie heraus, indem Sie auf der Kommandozeile den Befehl ifconfig ausführen. Die MAC-Adresse finden Sie hinter „Hardware Adresse“ (etwa „00-00-E8-5B-F2-FE“).

Sie könnten nun die Software Seafile herunterladen und in der einfachsten Form installieren, also mit Sqlite als Datenbank-Back-End. Allerdings raten die Seafile-Entwickler zu einer My-SQL-Datenbank. Ferner wird Nginx oder Apache als Webserver empfohlen, wenn man ein Reverse-Proxy-Setup einsetzt (der Server wäre also zum Beispiel unter „mein-seafile-server.de“ erreichbar). Ansonsten bringt die Software nur den eigenen, in Python geschriebenen HTTP-Server gunicorn mit. Wollen Sie verschlüsselt mittels HTTPS auf die Seafile-Instanz zugreifen, benötigen Sie ebenfalls Ndginx oder Apache. Weitere Informationen zu verschlüsselten Verbindungen finden Sie im Kasten „HTTP oder HTTPS für einen Zugriff“.

Starkes Passwort für den administrativen My-SQL-root-Benutzer: Wenn die Seafile-Cloud über das Internet erreichbar ist, ist ein sicheres Zugangspasswort Pflicht.
Vergrößern Starkes Passwort für den administrativen My-SQL-root-Benutzer: Wenn die Seafile-Cloud über das Internet erreichbar ist, ist ein sicheres Zugangspasswort Pflicht.

Unser Beispiel nutzt Seafile 4, My SQL als Datenbank-Server und gunicorn. Bevorzugen Sie eine andere Kombination, gibt es detaillierte Informationen im Seafile-Handbuch, das auch auf Deutsch verfügbar ist. Sie finden dort wertvolle Hinweise zur Versions-Kontrolle (Kapitel 6.3 „seafile.conf“) und dem Ignorieren von Dateien („Excluding Files“).

Seafile 4 teilt sich in drei Komponenten auf: Seahub ist die Weboberfläche; sie bringt den HTTP-Server gunicorn mit, der die Webseite ausliefert.

Die Top-20 der Linux-Distributionen: So finden Sie Ihr Lieblings-Linux

Seafile Server ist das Herzstück – der Daten-Service-Daemon. Diese Komponente ist für Upload, Download und Synchronisation mit Desktop- und Mobile Clients zuständig. Ccnet Server erledigt als RPC-Service-Daemon die Kommunikation zwischen den Komponenten.

Seafile-Installation auf dem Raspberry Pi

Bevor Sie neue Software installieren, stellen Sie sicher, dass sich die Repositories auf dem neuesten Stand befinden:

sudo apt-get update  

Da Sie MySQL als Datenbank-Server einsetzen, müssen Sie im ersten Schritt zunächst die relevanten Software-Pakete installieren:

sudo apt-get install mysql-server  

Warten Sie dann ab, bis das System nach einem Passwort für den administrativen My-SQL-root-Benutzer fragt. Sie sollten unbedingt ein starkes Passwort dafür benutzen. Im nächsten Schritt bestätigen Sie das Passwort, und die Installation wird abgeschlossen. Das Passwort benötigen Sie später wieder. Weiterhin benötigen wir einige Python-Module:

sudo apt-get install python-setuptools python-imaging python-mysqldb python-simplejson  

Nun laden Sie das Seafile-Server-Paket (hier Version 4.0.6) für Raspberry Pi herunter. Am einfachsten begeben Sie sich dafür zum Download-Bereich unter Seafile.com und kopieren die Link-Adresse. Dann führen Sie diesen Befehl im Terminal des Raspberry aus:

wget -c https://bitbucket.org/haiwen/seafile/downloads/seafileserver_ 4.0.6_pi.tar.gz  

Erstellen Sie nun ein Verzeichnis mit einem Wunschnamen, und verschieben Sie die tar.gz-Datei dorthin:

mkdir meinseafile  mv seafile-server_4.0.6_pi.tar.gz meinseafile/  

Das hat den Vorteil, dass man die Konfigurationsdateien nun ebenfalls im Ordner „meinseafile“ ablegen kann und somit alles an Ort und Stelle ist.

Seafile-Konfiguration: Dieses Beispiel zeigt die Abfragen bei der Installation des Seafile-Servers. Bei den Portangaben können Sie überall die Standards belassen.
Vergrößern Seafile-Konfiguration: Dieses Beispiel zeigt die Abfragen bei der Installation des Seafile-Servers. Bei den Portangaben können Sie überall die Standards belassen.

Wechseln Sie nun mit cd meinseafile in den Ordner und packen das Archiv aus:

tar xzvf seafile-server_4.0.6_pi.tar.gz  

An dieser Stelle entsteht ein Verzeichnis entsprechend der genutzten Version, in welches Sie nun mit cd seafileserver- 4.0.6 wechseln. Dort starten Sie das enthaltene Setup-Script:

./setup-seafile-mysql.sh  

Zunächst wählen Sie den Namen des Servers, wie er in den Clients angezeigt werden soll. Im Anschluss geben Sie Domäne oder IP-Adresse ein. Da wir in unserem Beispiel lokal installieren, wählen wir die IP-Adresse 192.168.100.50. Das ist die erwähnte feste IPAdresse für das Raspberry Pi. Läuft nichts anderes auf Port 10001, können Sie im nächsten Schritt einfach die Eingabetaste drücken. Alternativ dürfen Sie hier einen unterschiedlichen Port für den Ccnet-Server angeben.

Lesetipp: Schneller surfen dank Raspberry Pi als LAN-Proxy

Auch die nächste Frage können Sie einfach mit der Eingabetaste bestätigen. In diesem Fall würden alle Daten im Verzeichnis „meinseafile“ liegen. Achten Sie aber darauf, dass dieser Ort genügend Speicherplatz bietet. Die Frage nach den Ports für den Seafile-Server ist äquivalent zum Ccnet-Server.

Bei der Datenbank geben Sie eine „1“ an und legen damit eine neue an. Der Host ist „localhost“, der Port 3306, und das Passwort haben Sie während der My-SQL-Installation festgelegt. Nun können Sie noch einen My-SQL-Anwender für Seafile bestimmen oder den Standard mit Eingabetaste bestätigen. Das gilt auch für die Datenbanknamen in den Komponenten ccnet-server, seafile-server und seahub. Nach diesen Schritten erhalten Sie eine Übersicht, die Sie mit der Eingabetaste bestätigen. Nun konfiguriert das System die Seafile-Instanz. Die relevanten Konfigurationsdateien liegen in unserem Beispiel im Ordner „~/meinseafile/ ccnet/“ und nennen sich „ccnet.conf“ (Konfiguration) und „seafile.ini“ (Pfad der Seafile-Daten). Seafile und Seahub starten Sie nun mit diesen beiden Befehlen:

./seafile.sh start  ./seahub.sh start  

Beim ersten Start von Seahub fordert Sie die Software auf, ein Administratorkonto anzulegen. Es handelt sich dabei um eine E-Mail-Adresse, die auch Ihr Log-in darstellt und ein Passwort. Sobald Sie das erledigt haben, erreichen Sie den Seafile-Server im Browser unter „http://[lokale IPAdresse]: 8000.“

Neue Datenbank mit Standard-Einstellungen anlegen: Das hier geforderte My-SQL-Passwort haben Sie an früherer Stelle festgelegt.
Vergrößern Neue Datenbank mit Standard-Einstellungen anlegen: Das hier geforderte My-SQL-Passwort haben Sie an früherer Stelle festgelegt.

Erste Schritte und Clients

Nach der Anmeldung bringt Sie oben rechts ein orangefarbener Schraubenschlüssel zur Administration. Dort legen Sie neue Nutzerkonten an, auch Gruppenverwaltung ist vorgesehen. Klicken Sie auf die E-Mail-Adresse eines Anwenders, können Sie auf der linken Seite Quotas vergeben und somit das Speicherkontingent definieren.

Desktop-Clients finden Sie im Download-Bereich der Projektseite. Es gibt Sync-Clients für Linux, Windows und Mac-OS X. Weiterhin gibt es mobile Clients für Android und iOS. Um die Clients mit dem Server zu verbinden, geben Sie lediglich Server-Name oder IP-Adresse, Log-in und Passwort ein. Haben Sie die Ports geändert, müssen Sie das im Client womöglich ebenfalls anpassen.

Damit der Seafile-Server bei einem Raspberry-Start automatisch lädt, können Sie im Handbuch dem Punkt „2.9 Seafile beim Systemstart starten“ folgen. Beim Raspberry Pi wäre es auch möglich, die nachfolgenden beiden Befehle

/home/pi/meinseafile/seafile-server-latest/seafile.sh start   /home/pi/meinseafile/seafile-server-latest/seahub.sh start  

in die Datei „/etc/rc.local“ vor der Zeile „exit 0“ einzufügen (als root).

HTTP oder HTTPS für den Zugriff?

Verwenden Sie Seafile nur zu Hause, reicht unverschlüsseltes HTTP. Ist Seafile jedoch über Portweiterleitung im Router und Dyn-DNS-Service via Internet erreichbar, sollten Sie eine verschlüsselte Verbindung verwenden. Eine Option ist es, der Anleitung des Seafile-Handbuchs für HTTPS und einem selbst unterschriebenen Zertifikat zu folgen. Eine weitere Option wäre, dass Sie einen Open-VPNServer auf dem Raspberry Pi einrichten. Dann würden Sie sich via VPN auf dem heimischen Mini-Server anmelden und ebenso verschlüsselt damit kommunizieren, womit auch die HTTP-Verbindung in gewisser Weise wieder sicher wäre.

Video: Quadcore-CPU & 1 GB RAM - der Raspberry Pi 2
0 Kommentare zu diesem Artikel
2078068