Seit Prism und Tempora ist klar: Daten in der öffentlichen Cloud sind vor dem Zugriff der Geheimdienste nicht sicher. Abhilfe schafft da nur eine selbst gehostete Lösung – Seafile bietet dafür einen ebenso simplen wie genialen Ansatz.
Cloud-Speicher erfreut sich zunehmender Popularität. Daten lassen sich dort zentral ablegen und über mehrere Rechner synchronisieren, mit Kollegen und Freunden teilen oder komplett der Öffentlichkeit zugänglich machen. Im Zug des Abhörskandals rund um die NSA fragen sich allerdings viele Nutzer, ob ihre Daten in einer solchen Cloud wirklich in guten Händen sind. Andere denken darüber nach, was mit den Daten geschieht, wenn ein Anbieter pleite geht oder aufgekauft wird. Wieder andere, vor allem Betreiber eigener Server, sehen keine Veranlassung, für Speicherkapazitäten zu zahlen, wo sie doch selbst über ausreichend ungenutzten Speicher verfügen.
Gerade an Letztere richten sich die freien Alternativen Owncloud [1] und Seafile [2]. Während Owncloud seine Anwender mit reichhaltigen Funktionalitäten jenseits des Datenaustausches zu erschlagen droht, konzentriert sich Seafile nur darauf, Daten im Netz zu speichern, anderen zugänglich zu machen und sie zu synchronisieren.
Seafile stammt von der in China ansässigen Firma Seafile Ltd. Die Anwendung steht unter der GPLv3 und ist größtenteils in C und Python implementiert. Der Seafile-Server steht als Quelltext und Binärpaket für Debian “Squeeze”, Ubuntu 11.10 und 12.04 sowie CentOS 5.8 und 6.0+ zum Download bereit. Er bringt neben dem Netzwerk-Daemon einen eigenen HTTP-Server sowie die auf dem Django-Framework 1.5 basierende Administrationsoberfläche Seahub mit. Seafile-Clients gibt es für Linux, Mac OS X, Windows, Android und iOS.
Sogenannten Bibliotheken – sie enthalten die zu synchronisierenden Daten – ermöglichen es, mehrere Verzeichnisse auf einem Rechner mit dem Server zu synchronisieren und unterschiedliche Verzeichnisse auf verschiedenen Rechnern über die Online-Festplatte immer auf einem Stand zu halten. Hat beispielsweise ein Nutzer die Bibliotheken Privat und Arbeit, könnte er erstere nutzen, um Datenbestände auf seinen heimischen Rechnern und mobilen Geräten zu synchronisieren. Die Bibliothek Arbeit könnte er auch für seine Kollegen freischalten.
Installation
Der Seafile-Server liegt aktuell in Version 1.7 vor. Laden Sie zunächst das Tar-Archiv der aktuellen Version von der Webseite des Projekts herunter und entpacken es. Eventuell müssen Sie auf dem Zielsystem noch einige Python-Pakete und deren Abhängigkeiten installieren. Die Entwickler nennen hier neben Python 2.6 oder 2.7 auch die Bibliotheken python-setuptools, python-simplejson und python-imaging. Anwender, deren Linux-Distribution Seafile nicht nativ unterstützt, kompilieren die Software aus den bei Github gehosteten Quelltexten [3].
Da der Installationsprozess mehrere Unterverzeichnisse anlegt, empfehlen die Entwickler, das Archiv in einem separaten Verzeichnis zu extrahieren. Anschließend führen Sie die Datei setup-seafile.sh aus, die sich im neu entstandenen Verzeichnis seafile-server-Version/ befindet. Hier fragt das Skript einige Angaben zur Konfiguration ab, beispielsweise, auf welchen Ports Seafile und die zugehörige Weboberfläche lauschen und in welchem Verzeichnis es die Nutzerdaten ablegen soll (Abbildung 1). Danach starten Sie die Dienste mit den Kommandos aus Listing 1. Da Seafile keine privilegierten Ports nutzt, erfordert sein Start keine Root-Rechte.
Listing 1
$ /PfadZuSeafile/seafile.sh start $ /PfadZuSeafile/seahub.sh start
Jetzt sollten die in der Konfiguration angegebenen Ports geöffnet sein; standardmäßig sind das 8000, 8082, 10001 und 12001. Funktioniert das, erreichen Sie die Oberfläche der Applikation Seahub und den Seafile-HTTP-Server via Browser. Seahub (Port 8000) präsentiert eine übersichtliche Oberfläche (Abbildung 1), der Seafile-HTTP-Server zeigt lediglich ein leeres Browserfenster. Funktioniert etwas nicht, prüfen Sie via ps, ob die Anwendungen laufen oder eine Firewall den privaten Cloud-Speicher blockiert. Wie Sie die Ports in Iptables freischalten, zeigt Listing 2.

Abbildung 1: Seafile kommt mit der übersichtlichen Weboberfläche Seahub, welche die Konfigurationseinheit des Datensammlers bildet.
Listing 2
#Iptables-Rules für Seafile iptables -A INPUT -p tcp -m multiport --dports 8000,8082,10001,12001 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A output -p tcp -m multiport --sports 8000,8082,10001,12001 -m state --state ESTABLISHED -j ACCEPT
Client installieren
Um Seafile sinnvoll einzusetzen, benötigen Sie die korrespondierende Client-Software. Die kommandozeilenbasierte Variante stellt das als Seafile-Projekt als Tar-Archiv zum Download bereit [4]. Die Seafile-Konfigurationsdateien benötigen ein separates Verzeichnis. Für die Online-Festplatte selbst empfiehlt sich ebenfalls ein eigener Ordner, er ist aber nicht zwingend notwendig. Beides legen Sie mit folgendem Befehl an:
$ mkdir ~/.seafile-client ~/seafile-sync_dir
Um nach dem Entpacken des Archivs den Client mit dem Konfigurationsordner vertraut zu machen, müssen Sie ihn initialisieren. Dazu dient folgendes Kommando:
$ /Client-Pfad/seaf-cli init -d ~/.seafile-client
Der Init-Vorgang legt ein Verzeichnis .ccnet an, in dem sich eine Konfigurationsdatei für Schlüssel, für das zu synchronisierende Verzeichnis sowie für den Verbindungsaufbau zum Server befinden. In .seafile-client speichert der Client später Datenbank- und Konfigurationsdateien, die er zum Synchronisieren benötigt. Anschließend starten Sie den Seafile- und Ccnet-Daemon mit dem Aufruf:
$ /Client-Pfad/seaf-cli start
Der Kommandozeilen-Client Seaf-cli kennt momentan acht Befehle (siehe Tabelle “Seaf-cli-Befehle”). Nicht alle davon funktionierten im Test: So ließen sich Bibliotheken weder herunterladen noch neue erstellen. Außerdem fehlt ein Befehl, um die IDs der Bibliotheken eines Nutzers anzuzeigen. Das erfordert ab und zu ein Login in das Web-Frontend Seahub.
Seaf-cli-Befehle
| Kommando | Beschreibung |
|---|---|
init |
erstellt Konfigurationsdateien des Seafile-Clients |
start |
startet Seafile-Client als Daemon |
stop |
beendet Seafile-Client |
list |
zeigt lokale Bibliotheken |
status |
zeigt Synchronisationsstatus |
download |
lädt Bibliothek vom Server in ein angegebenes Zielverzeichnis |
sync |
synchronisiert Bibliothek auf dem Server mit dem Datenbestand eines Zielverzeichnisses |
desync |
beendet Synchronisierung mit Server |
Neben den Unterkommandos benötigt der Kommandozeilen-Client bei vielen Aktionen zusätzliche Parameter (siehe Tabelle “Seaf-cli-Parameter”). Um beispielsweise die Bibliothek Dokumente vom Server auf den heimischen Rechner zu holen, verwenden Sie einen Befehl der Struktur:
$ seaf-cli download -l Library-ID -s http[s]://Server -d Sync-Ordner
Seaf-cli-Parameter
| Parameter | Beschreibung |
-c configfile |
Pfad zur Konfigurationsdatei |
-d Ordner |
zu synchronisierendes lokales Verzeichnis |
-l id |
Bibliothek auf dem Server |
-p pass |
Passwort |
-s http[s]://Server[:Port] |
URL des Seahub-Servers |
-u User |
Benutzername |
Die Library-ID gilt es derzeit noch in der Seahub-Oberfläche abzulesen, wo sie als Repo-ID in jedem die Bibliothek betreffenden Link auftaucht. Um ein bestehendes Verzeichnis auf den privaten Online-Speicher schieben, verwenden Sie einen Befehl der Struktur:
$ seaf-cli sync -l Library-ID -s http[s]://Server -d Ordner
Allerdings müssen Sie die Bibliothek zuvor über die Weboberfläche anlegen. Das Kommando seaf-cli status zeigt, wie es um die Synchronisierung bestellt ist. Der Befehl seaf-cli list führt auf, welche lokalen Verzeichnisse mit welchen Online-Bibliotheken verbunden sind.
Grafischer Client
Der grafische Client macht das Einrichten wesentlich komfortabler. Allerdings steht er nur für Ubuntu und dessen Derivate als Binärpaket bereit, Nutzer anderer Distributionen müssen selbst zum Compiler greifen.
Nach der Installation fragt die Software beim ersten Start mit dem Seafile-Applet Parameter ab, wie etwa das Datenverzeichnis. Letzteres erstellt es automatisch und nistet sich als dann als Icon in der Taskleiste ein (Abbildung 2). Auch dieser Client bietet keine Möglichkeit, Bibliotheken zu erstellen oder auf dem Server abzufragen. Dafür aber das schnelle Herunterladen von der Seahub-Oberfläche oder das Synchronisieren mit einem bestehenden Verzeichnis.

Abbildung 2: Das Seafile-Applet des grafischen Clients fragt alle zum Betrieb nötigen Informationen ab.
Der grafische Seafile-Client startet, wie auch die Kommandozeilenvariante, einen eigenen HTTP-Server, der allerdings auf Port 13420 statt auf 13419 lauscht. Um lokale Bibliotheken aufzulisten, die Synchronisierung zu unterbrechen, Server-Adressen zu ändern oder Dateien verschlüsselt zu übertragen, behilft sich der Client eines Webbrowsers.
Seahub-Oberfläche
Die webbasierte Seahub-Oberfläche erlaubt es Ihnen nicht nur, Bibliotheken anzulegen, zu löschen, zu veröffentlichen und deren Inhalte zu verwalten. Sie erstellen oder entfernen damit auch Freigaben, definieren (Arbeits-)Gruppen, legen Kontaktlisten an und pflegen die bearbeiten Dateien online.
Als Administratoren registrierte Anwender dürfen Benutzer hinzufügen und löschen, deren Passwörter zurücksetzen oder Administratorenrechte vergeben und entziehen (Abbildung 3). Neben der Benutzerverwaltung dürfen Admins auch Gruppen oder Bibliotheken anderer Nutzer löschen oder Benachrichtigungen verfassen, die anschließend bei allen Nutzern erscheint.

Abbildung 3: Im Seahub-Admin-Bereich verwalten Sie Nutzer, Bibliotheken und Gruppen; eine Abfrage der Bibliotheksinhalte erlaubt er aber nicht.
Bibliotheken
Als normaler Seafile-Nutzer herrschen Sie lediglich über ihren persönlichen Arbeitsplatz. Standardmäßig landen Sie nach dem Login in der Übersicht ihrer Bibliotheken, die es auch erlaubt, neue anzulegen. Ein Reiter zeigt die Freigaben an, also Bibliotheken anderer Nutzer, für die Sie Lese- oder Schreibrechte besitzen (Abbildung 4). Der dritte Bibliotheksreiter enthält favorisierte Dateien.
Bibliotheken entsprechen Ordnern, die Sie – wie oben schon erwähnt – separat herunterladen und synchronisieren dürfen. Sie können auch mehrere Bibliotheken besitzen, die sie auf Ihrem lokalen Rechner verschiedenen Verzeichnissen zuordnen. Eine neue Bibliothek erstellen Sie durch Klicken auf den gleichnamigen Button. Daraufhin öffnet sich ein kleines Overlay-Fenster, das den Namen und eine Beschreibung für die Bibliothek abfragt.
Die Bibliotheken lassen sich beim Erstellen mit einem AES-128-Algorithmus verschlüsseln, später klappt das nicht mehr. Dazu setzen Sie das entsprechende Häkchen und geben das gewünschte Passwort zwei Mal an. Das Passwort wird nicht auf dem Server gespeichert, sondern verbleibt beim Nutzer und all denen, die an der Bibliothek teilhaben. Ein nachträgliches Ändern des Passworts lässt das Programm nicht zu.
Bewegen Sie den Mauszeiger über den Link zu einer Bibliothek, zeigt der Browser in der URL die zugehörige ID an, die Sie für den Kommandozeilen-Client benötigen. Nutzen Sie dagegen den grafischen Client, synchronisieren Sie die gewünschte Bibliothek einfach mittels des Herunterladen-Schalters mit den lokalen Datenbeständen. Die Bibliotheksübersicht erlaubt es auch, eine Bibliothek für andere Nutzer freizugeben oder sie zu löschen.
Innerhalb einer geöffneten Bibliothek lassen sich neue Dateien und Ordner auf dem Server anlegen, Dateien ohne Client hochladen oder einzelne Dateien verwalten. Sie dürfen sie herunterladen, freigeben, aktualisieren, löschen, umbenennen, verschieben oder kopieren (Abbildung 5). Anders als bei freigegebenen Bibliotheken benötigen die Nutznießer freigegebener Dateien oder Ordner keine ID: Sie bekommen per E-Mail einen Link zugesandt und dürfen die Datei anschließend herunterladen oder den Ordner öffnen. Dateien verschlüsselter Bibliotheken lassen sich auf diese Weise nicht freigeben. Die Applikation gestattet es auch, den Bearbeitungsverlauf einer Datei anzuzeigen und frühere Zustände wieder herzustellen.
Den Verlauf speichert Seafile nicht nur für einzelne Dateien, sondern auch für ganze Bibliotheken. Das Tool legt nach jeder Änderung einen Schnappschuss an, der es erlaubt, zu jeder Zeit einen früheren Zustand wieder herzustellen. Der Verlauf lässt sich in den Einstellungen der Bibliothek ändern, komplett ausschalten oder auf eine definierte Anzahl von Tagen einschränken.
Gruppen
Seafile eignet sich hervorragend als kollaboratives Werkzeug. Die Gruppenfunktion erlaubt es, problemlos verschiedene Personenkreise zu verwalten, Bibliotheken ohne großen Aufwand freizugeben oder Nachrichten zu versenden. Unter dem dafür vorgesehenen Reiter darf jeder Nutzer Gruppen anlegen beziehungsweise die ansehen, denen er selbst angehört. Letztere blendet Seafile auch auf dem Startbildschirm des Seafile-Arbeitsplatzes am rechten Bildschirmrand ein.
Ein Klick auf eine existierende Gruppe ermöglicht es, Bibliotheken oder ein Wiki für diese anzulegen, eine Diskussion zu starten, die Mitgliederliste einzusehen oder die Gruppe zu administrieren. Der letzte Punkt ermöglicht es, den Gruppen zusätzliche Mitgliedern und Admins hinzuzufügen. Das vereinfacht es, eine Bibliothek einer Gruppe zugänglich zu machen (Abbildung 6).

Abbildung 6: Beliebige Bibliothek geben Sie mit nur einem Mausklick allen Mitgliedern einer Gruppe frei.
Freigaben
Um eine Bibliothek freizugeben und so mit anderen Team-Mitgliedern zu teilen, klicken Sie in der Übersicht auf den Freigabe-Button der entsprechenden Bibliothek. Sie dürfen diese sowohl für Gruppen als auch Einzelmitglieder freigeben. Um Daten mit einzelnen Personen zu teilen, müssen diese einen Seafile-Account besitzen. Geben Sie statt separater Nutzer und Gruppen das Schlüsselwort all an, öffnen Sie die Bibliothek allen Seafile-Nutzern des Servers.
Erstellte Freigaben zeigt der gleichnamige Reiter des Seahub-Arbeitsplatzes an. Bei Bedarf genügt ein Klick, um die Shares zu widerrufen. Freigaben einzelner Dateien verwalten Sie in diesem Bereich ebenfalls. Andere Nutzer sehen die für sie freigegebenen Bibliotheken unter Start | Bibliotheken | Freigaben.
Organisation und Kontakte
Unter dem Punkt Organisation verbergen sich die öffentlichen Bibliotheken, Gruppen und Mitglieder, die der Seafile-Server beherbergt. Wie viele das jeweils sind, zeigt die Übersicht im rechten Bildschirmbereich an. Während normale Anwender hier nur eigene Gruppen und öffentlichen Bibliotheken anlegen dürfen, sieht es im Benutzerbereich anders aus: Hier lassen sich einzelne Benutzer den eigenen Kontakten hinzufügen (Abbildung 7).

Abbildung 7: Andere Benutzer fügen Sie mit einem Klick oder einer Freigabe zu Ihren Kontakten hinzu.
Das erlaubt es Ihnen, zukünftig diesem Personenkreis aus Seafile heraus Nachrichten zu schicken oder Freigaben einzurichten. Teilen Sie mit andern Teilnehmern eine Bibliothek, werden diese automatisch automatisch zu Kontakten. Nutzer sehen innerhalb der Header-Zeile, ob neue Nachrichten für sie bereitstehen.
Quotas
Seafile kennt eine eigene Quota-Steuerung, mit deren Hilfe Sie festlegen, über wie viel Speicherplatz einzelne Nutzer verfügen dürfen. Um Verwirrungen bei der Vergabe von Quotas vorzubeugen, empfiehlt es sich, auf dem System einen Nutzer seafile-user anzulegen, dem systemseitig nur ein gewisses Kontingent an Speicherplatz zur Verfügung steht, und den Dienst unter dessen Rechten zu starten (Listing 3). So lässt sich verhindern, dass sich der Speicherplatz des Servers überraschend bis zum Anschlag füllt, wenn die Benutzer einmal unerwartet viel speichern möchten.
Listing 3
# neuen Nutzer anlegen $ sudo useradd seafile-user # home-Partition in /etc/fstab mit der Option # "usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0" # oder "usrquota,grpquota" versehen # im Wurzelverzeichnis der zu überwachenden Partition: $ sudo mount /Mountpoint -o remount $ sudo quotacheck -cmugv /mountpoint # Blocksize der Partition ermitteln $ sudo tune2fs -l /mountpoint # Soft- und Hardlimits sowie Gnadenfrist für # seafile-user setzen, 0=kein Limit # Blöcke = erlaubte Größe / Blocksize $ sudo edquota -u seafile-user $ sudo edquota -t #Quota aktivieren $ sudo quotaon -a #Quota prüfen $ sudo quota -u seafile-user
Verschlüsselte Transfers
Wer die Daten seiner Online-Festplatte dem eigenen Server anvertraut, möchte sicher nicht, dass diese auf dem Weg zum Ziel entfleuchen. Ab Seafile 1.7 verschlüsseln die Desktop-Clients den Datentransfer standardmäßig mit einem AES-128-Algorithmus. Wer jedoch mangels grafischem Client für sein System auf die Weboberfläche oder den Kommandozeilen-Client angewiesen ist, findet das nicht hilfreich.
Während der Seafile-HTTP-Server HTTPS unterstützt, gilt es Seahub ein Apache oder Nginx als Reverse-Proxy-Server vorzuschalten, der den Datentransfer verschlüsselt ausliefert. Entsprechende Anleitungen und Beispielkonfigurationen zeigt das Seafile-Wiki auf Github [5].
Flott entsorgt
Um Speicherplatz zu sparen, nutzt Seafile eine Deduplication-Technologie: Verschiedene Dateiversionen und Bibliotheken teilen sich die selben Datenblöcke. Das Löschen derartiger Bibliotheken oder Dateien gibt den Speicher nicht sofort ans System zurück, entsprechend dümpeln ungenutzte Blöcke auf der Festplatte des Servers herum und verstopfen diese mit der Zeit. Um diesen Speicherplatz aufzuräumen, existiert ein Abfallbeseitigungsprogramm (“Garbage Collection”), das Sie ab und zu einsetzen sollten. Eine genaue Anleitung zeigt auch hierfür das Seafile-Wiki [5].
Fazit
Während dem PHP- und MySQL-basierten Dropbox-Ersatz Owncloud ein entsprechender Webspace ausreicht, kommen Sie beim in C und Python umgesetzten Seafile nicht um den eigenen Server herum. Anders als Owncloud beschränkt sich der Datentauscher in seinen Funktionen aber aufs Wesentliche, nämlich Online-Speicher und Kollaboration. Letztere impliziert neben dem Teilen von Bibliotheken und Dateien das Versenden von Nachrichten oder das Zusammenfassen mehrerer Benutzer zu Gruppen.
Da Seafile mit unprivilegierten Ports arbeitet, erfordert dessen Start keine Root-Rechte. Die Anwendung ist recht gut dokumentiert und in momentan acht Sprachen lokalisiert. Die Software ließ sich problemlos in Betrieb nehmen und lief während des mehrwöchigen Tests stabil. Lediglich für das Software-Update wurde der Server einmal gestoppt. Den Seafile-Client gibt es für die meisten gängigen Betriebssysteme. Die grafischen Clients glänzen durch eine einfache Bedienung, aber auch der kommandozeilenbasierte Client erfordert nur eine kurze Einarbeitungszeit.
Für all diejenigen, denen Dropbox und Google Drive inzwischen zu unsicher ist, die aber dennoch Dateien mit anderen austauschen oder synchronisieren möchten, stellt Seafile damit eine echte Alternative dar.
Infos
[1] Owncloud: http://owncloud.org
[2] Seafile: http://seafile.com
[3] Seafile Github: https://github.com/haiwen/seafile/
[4] Download Seafile: http://www.seafile.com/en/download/
[5] Seafile-Wiki: https://github.com/haiwen/seafile/wiki








Hallo! Seafile hat sich in den letzten Wochen und Monaten unglaublich weiterentwickelt. Die Version 1.7 von damals ist nicht zu vergleichen mit der aktuellen Version 6. Die aktuelle Seafile Version – auch die freie Community Variante – bietet: * plattformübergreifende Synchronisation * mobile Apps für iOS und Android * verschlüsselte Bibliotheken * Up- und Downloadlinks * Dokumentenvorschau für Grafikformate (JGP, PNG, GIF) und PDF sowie, je nach Integration, auch Office Formate * Online Dokumentenbearbeitung mit Web Office oder Collabora * Einbindung von Ordnern als virtuelle Laufwerke * Dateiversionierung * AD/LDAP-Integration * Zwei-Faktor-Authentifikzierung * WebAPIs Ein Beispiel für die Möglichkeiten der… Mehr »