{"id":582,"date":"2014-08-11T16:04:52","date_gmt":"2014-08-11T14:04:52","guid":{"rendered":"http:\/\/blog.ulibauer.de\/?p=582"},"modified":"2015-07-17T18:16:10","modified_gmt":"2015-07-17T16:16:10","slug":"seafile-auf-dem-raspberry-pi","status":"publish","type":"post","link":"https:\/\/blog.ulibauer.de\/?p=582","title":{"rendered":"Seafile auf dem Raspberry Pi"},"content":{"rendered":"<p>Schon seit l\u00e4ngerem verwende ich ownCloud als Cloud-Dienst unter meiner Kontrolle: zum einen auf meinem <a title=\"owncloud bei 1und1\" href=\"http:\/\/blog.ulibauer.de\/?p=76\">Webspace<\/a>, zum anderen auf dem <a title=\"owncloud auf dem Rpi\" href=\"http:\/\/blog.ulibauer.de\/?p=239\">Raspberry Pi<\/a>. Inzwischen ist noch Seafile auf dem RPi dazugekommen. Im Vergleich zu ownCloud hat Seafile weniger Funktionen, ist daf\u00fcr aber performanter.<\/p>\n<p><!--more--><\/p>\n<p><a title=\"seafile\" href=\"http:\/\/seafile.com\/en\/home\/\" target=\"_blank\">Seafile<\/a> &#8211; entwickelt von einem chinesischen Unternehmen &#8211; ist in der Community Edition kostenlos und Open Source. Es konzentriert sich im wesentlichen auf zwei Aufgaben: das Synchronisieren von Dateien und die M\u00f6glichkeit, 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\u00fcr Privatanwender ein relativ flotter Synchronsierungsdienst, bei dem die Daten nicht aus der Hand gegeben werden.<\/p>\n<h2>Seafile auf dem Raspberry Pi installieren<\/h2>\n<p>Da Seafile einen eigenen Webserver mitbringt, ist die Installation auf dem RPi nicht allzu schwierig.<\/p>\n<p class=\"p1\">F\u00fcr gro\u00dfe Datenmengen und viele Benutzer ist die Seafile-Variante f\u00fcr den Raspberry Pi nicht geeignet. Dies liegt daran, dass die Leistung des Mini-Rechners begrenzt ist und die Pi-Variante nicht mit einer leistungsf\u00e4higen Datenbank arbeitet. Der Pi reicht gut f\u00fcr den heimischen Einsatz; soll es aber mehr sein, ist eine der Seafile-Varianten f\u00fcr &#8222;richtige&#8220; Linux- oder Windows-Server die bessere Wahl.<\/p>\n<p class=\"p1\">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 &#8222;192.168.178.44&#8220; hat.<\/p>\n<h3 class=\"p1\">Raspian<\/h3>\n<p class=\"p1\">Ich habe mich f\u00fcr Raspian (Debian f\u00fcr den RPi) als &#8222;Unterbau&#8220; f\u00fcr den Seafile-Server entschieden. Raspian ist Teil von\u00a0 <a title=\"noobs\" href=\"http:\/\/www.raspberrypi.org\/downloads\/\" target=\"_blank\"><span class=\"s1\">Noobs<\/span><\/a>, einer besonders einfach zu installierenden &#8222;New Out Of the Box Software&#8220;, die neben Raspbian noch andere Betriebssystem-Varianten f\u00fcr den Pi enth\u00e4lt, 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\u00e4hlt eines aus und installiert es auf der SD-Karte.<\/p>\n<p class=\"p1\">Sp\u00e4ter kann man nach dem Dr\u00fccken der Shift-Taste beim Booten ein anderes Betriebssystem ausw\u00e4hlen und installieren; das vorher gew\u00e4hlte System wird dabei \u00fcberschrieben.<\/p>\n<p class=\"p1\">So bin ich vorgegangen:<\/p>\n<ol class=\"ol1\">\n<li class=\"li1\"><a title=\"noobs\" href=\"http:\/\/downloads.raspberrypi.org\/raspbian_latest\" target=\"_blank\"><span class=\"s1\">Noobs<\/span><\/a> auf den Desktop-Rechner herunterladen und entpacken.<\/li>\n<li class=\"li1\">Eine mindestens 4 GB (besser 8 GB) gro\u00dfe SD-Karte mit dem Programm\u00a0 <a href=\"https:\/\/www.sdcard.org\/downloads\/formatter_4\/\"><span class=\"s1\">SD Formatter 4.0<\/span><\/a> f\u00fcr Windows oder Mac OS X formatieren. Unter Linux kann man &#8222;dd&#8220; verwenden, um das Image auf eine SD-Karte zu schreiben; hier gibt es eine\u00a0 <a href=\"http:\/\/www.raspberrypi.org\/documentation\/installation\/installing-images\/linux.md\"><span class=\"s1\">Anleitung<\/span><\/a>.<\/li>\n<li class=\"li1\">Den Inhalt der entpackten NOOBS-Datei auf die SD-Karte kopieren.<\/li>\n<li class=\"li1\">Die SD-Karte in den Raspberry Pi einlegen und Tastatur (Maus) und Monitor anschlie\u00dfen.<\/li>\n<li class=\"li1\">Den Pi sarten, d.h. ihn mit dem Stromnetz verbinden.<\/li>\n<li class=\"li1\">Beim Start &#8222;Raspbian&#8220; als Betriebssystem ausw\u00e4hlen. Raspbian wird nun auf dem Pi installiert. Das dauert etwa 20 Minuten.<\/li>\n<li class=\"li1\">Nach einem Neustart das System mit Hilfe von &#8222;raspi-config&#8220;, das automatisch angezeigt wird, konfigurieren.<\/li>\n<\/ol>\n<p><a href=\"http:\/\/ulibauer.de\/blog\/wp-content\/uploads\/2014\/08\/raspi-config-ssh_480.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-597\" src=\"http:\/\/ulibauer.de\/blog\/wp-content\/uploads\/2014\/08\/raspi-config-ssh_480-300x225.jpg\" alt=\"raspi-config-ssh_480\" width=\"300\" height=\"225\" srcset=\"https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2014\/08\/raspi-config-ssh_480-300x225.jpg 300w, https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2014\/08\/raspi-config-ssh_480.jpg 480w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p class=\"p1\">Die meisten Vorgaben habe ich \u00fcbernommen.<\/p>\n<ul>\n<li>Ich habe ein neues Passwort f\u00fcr den User &#8222;pi&#8220; gesetzt,<\/li>\n<li>ausgew\u00e4hlt, dass das System mit einer grafischen Oberfl\u00e4che starten soll,<\/li>\n<li>unter &#8222;Advanced Options&#8220; angegeben, das ich einen SSH-Zugang will,<\/li>\n<li>und mich vergewissert, dass die Spracheinstellungen stimmen.<\/li>\n<\/ul>\n<p>Den SSH-Zugang brauche ich, da der RPi normalerweise ohne Tastatur und Monitor betrieben wird.<\/p>\n<h3>Neustart<\/h3>\n<ol class=\"ol1\">\n<li class=\"li1\">Den RPi neu starten, es erscheint die grafische Oberfl\u00e4che<\/li>\n<li class=\"li1\">Noch zwei Dinge erledigen:\n<ul class=\"ul1\">\n<li class=\"li1\">eine WLAN-Verbindung mit Hilfe des Programms WiFiConfig (auf dem Desktop) einrichten<\/li>\n<li class=\"li1\">das System aktualisieren und erg\u00e4nzen. \u00a0&#8222;LXTerminal&#8220; (auf dem Desktop) \u00f6ffnen und nacheinander folgende Befehle eingeben:<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<pre class=\"p2\">sudo apt-get update\u00a0\r\nsudo apt-get upgrade\u00a0\r\nsudo apt-get install python2.7 python-setuptools\u00a0\r\npython-simplejson python-imaging sqlite3<\/pre>\n<p class=\"p3\">Rasbian ist nun f\u00fcr die Installation von Seafile vorbereitet.<\/p>\n<h3 class=\"p1\">Seafile-Server vorbereiten<\/h3>\n<ol class=\"ol1\">\n<li class=\"li1\">Als (Standard-)Benutzer &#8222;pi&#8220; auf dem Raspberry Pi das &#8222;LXTerminal&#8220; \u00f6ffnen.<\/li>\n<li class=\"li1\">Einen Benutzer &#8222;seafile&#8220; anlegen, ihm ein Passwort geben, in sein Home-Verzeichnis wechseln und ein neues Verzeichnis &#8222;seafile&#8220; erstellen:<\/li>\n<\/ol>\n<pre class=\"p2\">sudo adduser seafile\r\nsudo su seafile\r\ncd\r\nmkdir seafile<\/pre>\n<p>Jetzt noch die\u00a0 <a href=\"https:\/\/github.com\/haiwen\/seafile-rpi\/releases\" target=\"_blank\"><span class=\"s1\">aktuelle Version des Seafile-Servers<\/span><\/a> f\u00fcr den Raspberry Pi herunterladen und entpacken(Stand Juli 2015: Version 4.2.3):<\/p>\n<pre class=\"p2\">wget https:\/\/github.com\/haiwen\/seafile-rpi\/releases\/download\/v4.2.3\/seafile-server_4.2.3_pi.tar.gz\r\ntar -xvf seafile-server_4.2.3_pi.tar.gz<\/pre>\n<h3 class=\"p3\">Seafile-Server einrichten<\/h3>\n<ol class=\"ol1\">\n<li class=\"li1\">In das entpackte Verzeichnis wechseln und das Installations-Skript starten:<\/li>\n<\/ol>\n<pre class=\"p2\">cd seafile-server-4.2.3\r\n.\/setup-seafile.sh<\/pre>\n<p class=\"p4\">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 &#8222;seahub admin email&#8220;eine Mailadresse und ein Passwort eingeben.<\/p>\n<p class=\"p4\">Zum Schluss noch den Seafile-Server und das Webinterface Seahub starten:<\/p>\n<pre class=\"p2\">cd seafile\r\n.\/seafile.sh start\r\n.\/seahub.sh start<\/pre>\n<p class=\"p4\">Nach einem Neustart des RPi starten die beiden Server <b>nicht<\/b> automatisch. Anfangs habe ich die beiden Dienste nach einem Neustart des RPi manuell \u00fcber SSH gestartet; sp\u00e4ter habe ich das Ganze automatisiert.<\/p>\n<h2 class=\"p1\">Seafile-Weboberfl\u00e4che und Seafile-Clients<\/h2>\n<p class=\"p2\">Die <span class=\"s1\"><b>Weboberfl\u00e4che<\/b><\/span> ist die &#8222;Schaltzentrale&#8220; von Seafile und ist im Browser im lokalen Netz z.B. \u00fcber die Adresse &#8222;http:\/\/192.168.178.44:8000&#8220; erreichbar.<\/p>\n<p class=\"p2\">Sie erm\u00f6glicht die komplette Steuerung von Seafile. Hier k\u00f6nnen neue Bibliotheken (zu synchronisierende Ordner) angelegt, f\u00fcr andere freigegeben, Favoriten verwaltet oder Nachrichten mit anderen Seafile-Nutzern ausgetauscht werden.<\/p>\n<p class=\"p2\"><a href=\"http:\/\/ulibauer.de\/blog\/wp-content\/uploads\/2014\/08\/seafile_web.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-598\" src=\"http:\/\/ulibauer.de\/blog\/wp-content\/uploads\/2014\/08\/seafile_web-300x139.jpg\" alt=\"seafile_web\" width=\"300\" height=\"139\" srcset=\"https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2014\/08\/seafile_web-300x139.jpg 300w, https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2014\/08\/seafile_web-1024x476.jpg 1024w, https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2014\/08\/seafile_web.jpg 1025w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p class=\"p2\">In der Praxis ist die Arbeit mit Seafile recht einfach: Alle Dateien, die in einem Unterordner des Verzeichnisses &#8222;Seafile&#8220; gespeichert werden, werden mit dem Seafile-Server synchronisiert.<\/p>\n<p class=\"p2\"><span class=\"s1\"><b>Clients<\/b><\/span> gibt es f\u00fcr Linux, Mac OS X, Windows, Android und iOS. Sie k\u00f6nnen auf\u00a0 <a href=\"http:\/\/seafile.com\/en\/download\/\">dieser Seite<\/a> bzw. in den Stores von\u00a0 <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.seafile.seadroid2\">Google<\/a> und\u00a0 <a href=\"https:\/\/itunes.apple.com\/cn\/app\/seafile-pro\/id639202512?l=en&amp;mt=8\">Apple<\/a> heruntergeladen werden.<\/p>\n<p class=\"p2\">Seafile bietet die M\u00f6glichkeit an, die Bibliothek verschl\u00fcsselt zu speichern.<\/p>\n<h2>Verbindung mit der Au\u00dfenwelt<\/h2>\n<p class=\"p1\">Da ich meine beiden heimischen Cloud-Server auch aus dem Internet erreichen will, musste ich noch ein paar zus\u00e4tzliche 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\u00fcr den Zugriff aus dem Internet \u00f6ffnen, Portweiterleitung und DynDNS einrichten und auf HTTPS umstellen.<\/p>\n<h3 class=\"p2\">Router f\u00fcr den Zugriff aus dem Internet \u00f6ffnen und den DynDNS-Dienst MyFritz! aktivieren<\/h3>\n<p class=\"p1\">Auf der Fritz!Box-Weboberfl\u00e4che zu &#8222;Internet&#8220; &#8211;&gt; &#8222;MyFritz!&#8220; gehen und<\/p>\n<ul class=\"ul1\">\n<li class=\"li3\">H\u00e4kchen vor &#8222;MyFritz! f\u00fcr diese Fritz!Box aktiv&#8220; und<\/li>\n<li class=\"li3\">&#8222;Internetzugriff auf die FRITZ!Box \u00fcber HTTPS aktiviert&#8220; setzen.<\/li>\n<li class=\"li3\">Die eigene E-Mail-Adresse eintragen.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-596\" src=\"http:\/\/ulibauer.de\/blog\/wp-content\/uploads\/2014\/08\/myfritz-300x200.jpg\" alt=\"myfritz\" width=\"300\" height=\"200\" srcset=\"https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2014\/08\/myfritz-300x200.jpg 300w, https:\/\/blog.ulibauer.de\/wp-content\/uploads\/2014\/08\/myfritz.jpg 1012w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<h3 class=\"p2\">Portweiterleitung einrichten<\/h3>\n<p class=\"p1\">Zu &#8222;Internet&#8220; &#8211;&gt; &#8222;Freigaben&#8220; &#8211;&gt; &#8222;Portfreigaben&#8220; &#8211;&gt; &#8222;Neue Portfreigaben&#8220; gehen. Dort habe ich folgendes eingetragen bzw. ausgew\u00e4hlt:<\/p>\n<ul class=\"ul1\">\n<li class=\"li3\">Portfreigabe aktiv f\u00fcr = Andere Anwendungen<\/li>\n<li class=\"li3\">Bezeichnung = seafile<\/li>\n<li class=\"li3\">Protokoll = TCP<\/li>\n<li class=\"li3\">von Port = xxxx bis Port = xxxx (eine &#8222;hohe&#8220; Nummer)<\/li>\n<li class=\"li3\">an Computer = Bezeichnung des RPi im Router<\/li>\n<li class=\"li3\">an IP-Adresse = IP des RPi im lokalen Netz<\/li>\n<li class=\"li3\">an Port = xxxx (wie oben)<\/li>\n<\/ul>\n<h3 class=\"p2\">MyFritz! Freigabe einrichten<\/h3>\n<p class=\"p1\">Zu &#8222;Internet&#8220; &#8211;&gt; &#8222;Freigaben&#8220; &#8211;&gt; &#8222;MyFritz!-Freigaben&#8220; gehen.<\/p>\n<ul class=\"ul1\">\n<li class=\"li3\">Netzwerkger\u00e4t =\u00a0Bezeichnung des RPi im Router<\/li>\n<li class=\"li3\">Anwendung = HTTPS-Server<\/li>\n<li class=\"li3\">Verzeichnis = leer<\/li>\n<\/ul>\n<h3 class=\"p2\">Fritz!Box-Dienste einrichten<\/h3>\n<p class=\"p1\">Zu &#8222;Internet&#8220; &#8211;&gt; &#8222;Freigaben&#8220; &#8211;&gt; &#8222;Fritzbox-Dienste&#8220; gehen.<\/p>\n<ul class=\"ul1\">\n<li class=\"li3\">H\u00e4kchen bei &#8222;Internetzugriff auf \u00a0die Fritz!Box \u00fcber HTTPS aktiviert\u00a0\u00a0&#8230;&#8220; setzen<\/li>\n<li class=\"li3\">H\u00e4kchen bei &#8222;Internetzugriff auf die Fritz!Box \u00fcber HTTPS aktiviert&#8220;setzen und eine &#8222;hohe&#8220; Portnummer eingetragen<\/li>\n<li class=\"li3\">Adresse ihrer Fritzbox= abh\u00e4ngig von den Eintr\u00e4gen unter &#8222;MyFritz!-Freigaben&#8220; (wird automatisch eingef\u00fcgt).<\/li>\n<\/ul>\n<p class=\"p1\">Wenn alles klappt, ist Seafile aus dem Internet unter einer Adresse nach dem Muster &#8222;https:\/\/lange_zeichenkette.myfritz.net:Portnummer&#8220; erreichbar. Bei mir hat es nach etwas Rumgegurke funktioniert.<\/p>\n<p class=\"p1\">Es ist durchaus m\u00f6glich, dass sich in der obigen Konfigurationsbeschreibung der Fritz!Box Fehler verstecken; leider habe ich es vers\u00e4umt, mir bei der Einrichtung jeden Schritt zu notieren. Mea Culpa.<\/p>\n<h2 class=\"p1\">Vorl\u00e4ufiges Fazit<\/h2>\n<p class=\"p2\">Die Community-Edition von Seafile eignet sich sehr gut daf\u00fcr, Dateien online zu speichern und mit unterschiedlichen Ger\u00e4ten zu synchronisieren. Auch das Teilen von Dateien mit anderen Benutzern klappt problemlos. Jedoch sind die M\u00f6glichkeiten, gemeinsam an Dokumenten zu arbeiten, zu sehr eingeschr\u00e4nkt, um im Alltag punkten zu k\u00f6nnen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Schon seit l\u00e4ngerem 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\u00fcr &hellip; <a href=\"https:\/\/blog.ulibauer.de\/?p=582\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-582","post","type-post","status-publish","format-standard","hentry","category-allgemein"],"_links":{"self":[{"href":"https:\/\/blog.ulibauer.de\/index.php?rest_route=\/wp\/v2\/posts\/582","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.ulibauer.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.ulibauer.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.ulibauer.de\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.ulibauer.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=582"}],"version-history":[{"count":22,"href":"https:\/\/blog.ulibauer.de\/index.php?rest_route=\/wp\/v2\/posts\/582\/revisions"}],"predecessor-version":[{"id":732,"href":"https:\/\/blog.ulibauer.de\/index.php?rest_route=\/wp\/v2\/posts\/582\/revisions\/732"}],"wp:attachment":[{"href":"https:\/\/blog.ulibauer.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=582"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.ulibauer.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=582"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.ulibauer.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=582"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}