Seafile auf dem Raspberry Pi

Schon seit längerem verwende ich ownCloud als Cloud-Dienst unter meiner Kontrolle: zum einen auf meinem Webspace, zum anderen auf dem Raspberry Pi. Inzwischen ist noch Seafile auf dem RPi dazugekommen. Im Vergleich zu ownCloud hat Seafile weniger Funktionen, ist dafür aber performanter.

Seafile – entwickelt von einem chinesischen Unternehmen – ist in der Community Edition kostenlos und Open Source. Es konzentriert sich im wesentlichen auf zwei Aufgaben: das Synchronisieren von Dateien und die Möglichkeit, Dateien zu teilen und gemeinsam zu bearbeiten. Allerdings kann die Community Edition so wenige Dateitypen bearbeiten, dass dieses Feature praktisch nutzlos ist. Letzlich ist Seafile für Privatanwender ein relativ flotter Synchronsierungsdienst, bei dem die Daten nicht aus der Hand gegeben werden.

Seafile auf dem Raspberry Pi installieren

Da Seafile einen eigenen Webserver mitbringt, ist die Installation auf dem RPi nicht allzu schwierig.

Für große Datenmengen und viele Benutzer ist die Seafile-Variante für den Raspberry Pi nicht geeignet. Dies liegt daran, dass die Leistung des Mini-Rechners begrenzt ist und die Pi-Variante nicht mit einer leistungsfähigen Datenbank arbeitet. Der Pi reicht gut für den heimischen Einsatz; soll es aber mehr sein, ist eine der Seafile-Varianten für „richtige“ Linux- oder Windows-Server die bessere Wahl.

Im Folgenden wird die Installation des Seafile-Servers auf dem Raspberry Pi in einem lokalen Netzwerk beschrieben. Es wird davon ausgegangen, dass der Pi die IP-Adresse „192.168.178.44“ hat.

Raspian

Ich habe mich für Raspian (Debian für den RPi) als „Unterbau“ für den Seafile-Server entschieden. Raspian ist Teil von  Noobs, einer besonders einfach zu installierenden „New Out Of the Box Software“, die neben Raspbian noch andere Betriebssystem-Varianten für den Pi enthält, z.B. Openelec, Raspbmc u.a. Das Prinzip ist recht einfach: Noobs wird auf eine SD-Karte geschrieben und bietet beim Start eine Auswahl der Betriebssysteme an. Man wählt eines aus und installiert es auf der SD-Karte.

Später kann man nach dem Drücken der Shift-Taste beim Booten ein anderes Betriebssystem auswählen und installieren; das vorher gewählte System wird dabei überschrieben.

So bin ich vorgegangen:

  1. Noobs auf den Desktop-Rechner herunterladen und entpacken.
  2. Eine mindestens 4 GB (besser 8 GB) große SD-Karte mit dem Programm  SD Formatter 4.0 für Windows oder Mac OS X formatieren. Unter Linux kann man „dd“ verwenden, um das Image auf eine SD-Karte zu schreiben; hier gibt es eine  Anleitung.
  3. Den Inhalt der entpackten NOOBS-Datei auf die SD-Karte kopieren.
  4. Die SD-Karte in den Raspberry Pi einlegen und Tastatur (Maus) und Monitor anschließen.
  5. Den Pi sarten, d.h. ihn mit dem Stromnetz verbinden.
  6. Beim Start „Raspbian“ als Betriebssystem auswählen. Raspbian wird nun auf dem Pi installiert. Das dauert etwa 20 Minuten.
  7. Nach einem Neustart das System mit Hilfe von „raspi-config“, das automatisch angezeigt wird, konfigurieren.

raspi-config-ssh_480

Die meisten Vorgaben habe ich übernommen.

  • Ich habe ein neues Passwort für den User „pi“ gesetzt,
  • ausgewählt, dass das System mit einer grafischen Oberfläche starten soll,
  • unter „Advanced Options“ angegeben, das ich einen SSH-Zugang will,
  • und mich vergewissert, dass die Spracheinstellungen stimmen.

Den SSH-Zugang brauche ich, da der RPi normalerweise ohne Tastatur und Monitor betrieben wird.

Neustart

  1. Den RPi neu starten, es erscheint die grafische Oberfläche
  2. Noch zwei Dinge erledigen:
    • eine WLAN-Verbindung mit Hilfe des Programms WiFiConfig (auf dem Desktop) einrichten
    • das System aktualisieren und ergänzen.  „LXTerminal“ (auf dem Desktop) öffnen und nacheinander folgende Befehle eingeben:
sudo apt-get update 
sudo apt-get upgrade 
sudo apt-get install python2.7 python-setuptools 
python-simplejson python-imaging sqlite3

Rasbian ist nun für die Installation von Seafile vorbereitet.

Seafile-Server vorbereiten

  1. Als (Standard-)Benutzer „pi“ auf dem Raspberry Pi das „LXTerminal“ öffnen.
  2. Einen Benutzer „seafile“ anlegen, ihm ein Passwort geben, in sein Home-Verzeichnis wechseln und ein neues Verzeichnis „seafile“ erstellen:
sudo adduser seafile
sudo su seafile
cd
mkdir seafile

Jetzt noch die  aktuelle Version des Seafile-Servers für den Raspberry Pi herunterladen und entpacken(Stand Juli 2015: Version 4.2.3):

wget https://github.com/haiwen/seafile-rpi/releases/download/v4.2.3/seafile-server_4.2.3_pi.tar.gz
tar -xvf seafile-server_4.2.3_pi.tar.gz

Seafile-Server einrichten

  1. In das entpackte Verzeichnis wechseln und das Installations-Skript starten:
cd seafile-server-4.2.3
./setup-seafile.sh

Es werden eine Reihe von Angaben abgefragt. Dem Seafile-Server einen Namen geben, die Netzwerkadresse des Pi eintragen (z.B. die lokale Adresse 192.168.178.44) und bei „seahub admin email“eine Mailadresse und ein Passwort eingeben.

Zum Schluss noch den Seafile-Server und das Webinterface Seahub starten:

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

Nach einem Neustart des RPi starten die beiden Server nicht automatisch. Anfangs habe ich die beiden Dienste nach einem Neustart des RPi manuell über SSH gestartet; später habe ich das Ganze automatisiert.

Seafile-Weboberfläche und Seafile-Clients

Die Weboberfläche ist die „Schaltzentrale“ von Seafile und ist im Browser im lokalen Netz z.B. über die Adresse „http://192.168.178.44:8000“ erreichbar.

Sie ermöglicht die komplette Steuerung von Seafile. Hier können neue Bibliotheken (zu synchronisierende Ordner) angelegt, für andere freigegeben, Favoriten verwaltet oder Nachrichten mit anderen Seafile-Nutzern ausgetauscht werden.

seafile_web

In der Praxis ist die Arbeit mit Seafile recht einfach: Alle Dateien, die in einem Unterordner des Verzeichnisses „Seafile“ gespeichert werden, werden mit dem Seafile-Server synchronisiert.

Clients gibt es für Linux, Mac OS X, Windows, Android und iOS. Sie können auf  dieser Seite bzw. in den Stores von  Google und  Apple heruntergeladen werden.

Seafile bietet die Möglichkeit an, die Bibliothek verschlüsselt zu speichern.

Verbindung mit der Außenwelt

Da ich meine beiden heimischen Cloud-Server auch aus dem Internet erreichen will, musste ich noch ein paar zusätzliche Einrichtungsschritte vornehmen. Ich benutze eine FritzBox und den Myfritz-Dienst, bei anderen Routern und DynDNS-Diensten ist die Einrichtung vergleichbar. Das Ganze ist kein Hexenwerk und besteht im Prinzip aus vier Schritten: Router für den Zugriff aus dem Internet öffnen, Portweiterleitung und DynDNS einrichten und auf HTTPS umstellen.

Router für den Zugriff aus dem Internet öffnen und den DynDNS-Dienst MyFritz! aktivieren

Auf der Fritz!Box-Weboberfläche zu „Internet“ –> „MyFritz!“ gehen und

  • Häkchen vor „MyFritz! für diese Fritz!Box aktiv“ und
  • „Internetzugriff auf die FRITZ!Box über HTTPS aktiviert“ setzen.
  • Die eigene E-Mail-Adresse eintragen.

myfritz

Portweiterleitung einrichten

Zu „Internet“ –> „Freigaben“ –> „Portfreigaben“ –> „Neue Portfreigaben“ gehen. Dort habe ich folgendes eingetragen bzw. ausgewählt:

  • Portfreigabe aktiv für = Andere Anwendungen
  • Bezeichnung = seafile
  • Protokoll = TCP
  • von Port = xxxx bis Port = xxxx (eine „hohe“ Nummer)
  • an Computer = Bezeichnung des RPi im Router
  • an IP-Adresse = IP des RPi im lokalen Netz
  • an Port = xxxx (wie oben)

MyFritz! Freigabe einrichten

Zu „Internet“ –> „Freigaben“ –> „MyFritz!-Freigaben“ gehen.

  • Netzwerkgerät = Bezeichnung des RPi im Router
  • Anwendung = HTTPS-Server
  • Verzeichnis = leer

Fritz!Box-Dienste einrichten

Zu „Internet“ –> „Freigaben“ –> „Fritzbox-Dienste“ gehen.

  • Häkchen bei „Internetzugriff auf  die Fritz!Box über HTTPS aktiviert  …“ setzen
  • Häkchen bei „Internetzugriff auf die Fritz!Box über HTTPS aktiviert“setzen und eine „hohe“ Portnummer eingetragen
  • Adresse ihrer Fritzbox= abhängig von den Einträgen unter „MyFritz!-Freigaben“ (wird automatisch eingefügt).

Wenn alles klappt, ist Seafile aus dem Internet unter einer Adresse nach dem Muster „https://lange_zeichenkette.myfritz.net:Portnummer“ erreichbar. Bei mir hat es nach etwas Rumgegurke funktioniert.

Es ist durchaus möglich, dass sich in der obigen Konfigurationsbeschreibung der Fritz!Box Fehler verstecken; leider habe ich es versäumt, mir bei der Einrichtung jeden Schritt zu notieren. Mea Culpa.

Vorläufiges Fazit

Die Community-Edition von Seafile eignet sich sehr gut dafür, Dateien online zu speichern und mit unterschiedlichen Geräten zu synchronisieren. Auch das Teilen von Dateien mit anderen Benutzern klappt problemlos. Jedoch sind die Möglichkeiten, gemeinsam an Dokumenten zu arbeiten, zu sehr eingeschränkt, um im Alltag punkten zu können.

Dieser Beitrag wurde unter Allgemein veröffentlicht. Setze ein Lesezeichen auf den Permalink.

4 Antworten auf Seafile auf dem Raspberry Pi

  1. n sagt:

    Wie kommst du drauf, dass Seafile „nicht Open Source“ ist?
    https://github.com/haiwen/seafile
    License:
    Seafile and its desktop and mobile clients are published under the GPLv3.
    The Seafile server’s web end, i.e. Seahub, is published under the Apache License.

    Build-Anleitung gibt hier: http://manual.seafile.com/build_seafile/README.html

    Ein fertiges Paket fürn Raspberry gibts direkt bei seafile.com unter Downloads – BTW, die sind offenbar von google-code auf github umgezogen.

    lg

  2. n sagt:

    Keine Ahnung, ich glaube schon. Ich find momentan keine Hinweise, dass es Close-Source war – v2.0 (Okt. 2013) war jedenfalls schon OSS (wurde auf heise.de erwähnt)

    OT: Uiiii 🙂 Firmenmäßig interessant ist die LDAP-Anbindung http://manual.seafile.com/deploy/using_ldap.html – Ok, Seafile muss ich dringend mal testen!

    BTW, die Captcha sind tw. SEHR unleserlich (5. versuch)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

sechs − fünf =