Seafile deckt Teile der Funktionalität von Next- und Owncloud ab. Dabei lässt es die Konkurrenz weit hinter sich.
Wenn es um Dateisynchronisation und kollaboratives Arbeiten geht, heißen die Platzhirsche im Open-Source-Universum Owncloud und Nextcloud. Da aber auch andere Mütter schöne Töchter haben, schauen wir uns Seafile an, das sich auf seiner Webseite als eine Open-Source-Lösung für Dateisynchronisation und -freigabe darstellt, die auf hohe Zuverlässigkeit, Leistung und Produktivität ausgelegt ist [1]. Wie bei Nextcloud oder Owncloud behalten Sie als Anwender die volle Kontrolle über Ihre Daten. Seafile blüht eher im Verborgenen. Dieser Artikel versucht zu klären, warum das so ist, denn funktionell muss sich Seafile keinesfalls verstecken.
Unterschiede
Lassen Sie uns eingangs die wichtigsten Unterschiede von Seafile zu den genannten Kontrahenten klarstellen: Die Stärken von Seafile liegen im Filesharing und der Synchronisation. Nextcloud und Owncloud sehen sich eher als ausgewachsene Groupware-Lösungen mit vielen Apps und ständig zunehmender Funktionalität. Ein technischer Unterschied, der beim ersten Lesen der Spezifikation auffällt: Während Nextcloud auf PHP setzt, ist Seafile in C und Python geschrieben, wobei im Hintergrund das Django-Framework arbeitet.
Die Software wird von der chinesischen Firma Seafile Ltd. nach dem Client-Server-Prinzip entwickelt. Die kostenfreie Community-Edition wurde 2012 aus der Seafile Professional Server Edition heraus entwickelt und steht seit Dezember 2021 bei Version 9. Seither gab es mehrere kleine Aktualisierungen auf Seafile Server 9.0.5, das unserem Test zugrunde liegt.
Falls Bedenken wegen der Herkunft aus dem Reich der Mitte bestehen: Die Community-Edition von Seafile ist komplett Open Source und unterliegt der GPLv2. Den Code können Sie auf Github einsehen und so die Entwicklung verfolgen [2]. Bis 2016 gab es eine deutsche Seafile GmbH, die sich nach einem Streit um Rechte mit der in Peking ansässigen Seafile Ltd. umbenennen musste und seither als Syncwerk GmbH firmiert. Deren Produkt wurde in LU 11/2018 ausführlich besprochen [3].
Editionen
Auf der Server-Seite bietet die Professional Edition lediglich für Linux Unterstützung, während die Community Edition auch Server für Windows und Raspberry Pi OS anbietet. Clients beider Editionen gibt es für Linux, MacOS und Windows sowie Android und iOS. Zusätzlich existiert eine Seahub genannte Webschnittstelle. Die Webseite des Projekts stellt die jeweils unterstützten Funktionen beider Editionen gegenüber [4]. Dort sehen Sie, ob die Community Edition für Ihren Anwendungsfall ausreicht oder ob Sie Geld für die Pro-Edition in die Hand nehmen müssen. So fehlt der freien Edition unter anderem die Volltextsuche per ElasticSearch sowie die LDAP-Einbindung.
TIPP
Wenn Sie Seafile auf lediglich drei User beschränken, können Sie bei Bedarf die Pro-Version kostenlos nutzen [18].
Ob Ihnen Seafile zusagt oder nicht, können Sie vor der Installation herausfinden, indem Sie eine in der Cloud gehostete Installation von Seafile Professional für sieben Tage mit sieben Anwendern und 777 MByte Speicherplatz unverbindlich und kostenlos testen [5]. Die Weboberfläche von Seafile ist übersichtlich und die Handhabung schnell erlernt. Die Funktion der Icons erklären sich in der Regel von allein und die Symbole bieten beim Überfahren mit dem Mauszeiger zusätzlich Tooltipps zur Erläuterung.
Seafile verwaltet hochgeladene oder in Seafile erstellte Dateien in Bibliotheken. Jede Bibliothek lässt sich synchronisieren, Client-seitig verschlüsseln und separat freigeben. Innerhalb von Bibliotheken bauen Sie bei Bedarf mit Ordnern und Unterordnern hierarchische Verzeichnisstrukturen auf. Die Synchronisation erlaubt das ortsunabhängige Arbeiten mit stets synchron gehaltenen Clients auf den Endgeräten.
Installation
Falls Sie sich für Seafile entscheiden, steht als Erstes die Installation an. Im Download-Portal finden Sie Server für Linux für beide Editionen sowie in der Community-Sparte für den Raspberry Pi. Die Clients teilen sich in Desktop Syncing Clients und Desktop Drive Clients auf, wobei Letztere es ermöglichen, auf Dateien auf dem Server zuzugreifen, ohne sie mit der lokalen Festplatte zu synchronisieren. Für jede der beiden Varianten stehen Clients für Linux (GUI und Terminal), MacOS und Windows bereit. Clients für mobile Geräte gibt es für Googles Android-Plattform und Apples iOS [6].
Der Linux-Server bietet drei Installationsszenarien. Seit Version 8.0 empfiehlt das Projekt die Installation in einen Docker-Container. Dabei wird die Einrichtung komplett von einer Docker-Compose-Datei erledigt [7]. Die zweite Methode in Form eines Installationsskripts setzt den Server mit MariaDB, Memcached und Nginx als Reverse Proxy in wenigen Minuten auf, gilt allerdings als veraltet [8].
Bei der dritten Methode erledigen Sie alles von Hand [9]. Das bringt zwar den größten Erkenntnisgewinn, dauert aber am längsten und birgt das Risiko, vieles falsch zu machen. Falls Sie diesen Weg bevorzugen, sollten Sie MySQL/MariaDB der Option SQLite vorziehen, denn damit stoßen Sie früher oder später an Grenzen. Die Vorteile von Docker: Zum einen funktioniert die Installation mit allen Distributionen, die Docker unterstützen. Zum anderen bieten die Container mehr Flexibilität, da sie sich schneller kopieren und leicht auf einen anderen Host verschieben lassen.
Mit oder ohne Docker
Wir beschreiben hier die Docker-Variante unter Ubuntu Server 20.04. Listing 1 zeigt die Installation von Docker auf diesem System, mit den Kommandos aus Listing 2 spielen Sie dann noch Docker Compose ein und prüfen mit dem Befehl docker-compose --version, ob die gewünschte Version installiert ist.
Listing 1
Docker installieren (Ubuntu 20.04)
$ sudo apt update $ sudo apt install apt-transport-https ca-certificates curl software-properties-common $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - ### Fuer andere Releases "focal" durch den jeweiligen Codenamen ersetzen $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable" $ sudo apt update $ sudo apt install docker-ce $ sudo systemctl status docker $ sudo usermod -aG docker ${USER}
Listing 2
Docker Compose installieren (Ubuntu 20.04)
### Version 2.6.0 ggfs. durch neueres Release ersetzen $ sudo curl -L "https://github.com/docker/compose/releases/download/v2.6.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose $ sudo chmod +x /usr/local/bin/docker-compose $ docker-compose --version
Ob Sie Seafile auf einem Raspberry Pi, einem alten Rechner oder einem Server installieren, spielt zunächst keine Rolle, vorausgesetzt, Sie haben die richtige Architektur für die jeweilige Hardware heruntergeladen. Für den RasPi stehen ARM-basierte Docker-Dateien zur Verfügung [10]. Ubuntu oder Debian installieren Sie besser in der Server-Variante. Eine Desktop-Umgebung benötigt das System nicht, da Sie später über das Web-Interface arbeiten.
Zur Installation von Seafile selbst laden Sie die Datei docker-compose.yml mit den Kommandos aus Listing 3 aus dem Netz und legen sie im Home-Verzeichnis im Ordner /home/seafile/ ab, den Sie bei Bedarf zuvor erstellen.
Listing 3
Seafile via Docker Compose
$ sudo mkdir /home/seafile $ cd /home/seafile $ sudo wget -O docker-compose.yml https://download.seafile.com/d/320e8adf90fa43ad8fee/files/?p=/docker/docker-compose.yml
Dann öffnen Sie die Datei in einem Editor und passen die Konfiguration an Ihre Bedürfnisse an. Dazu vergeben Sie Passwörter für die Zeilen MYSQL_ROOT_PASSWORD, DB_ROOT_PASSWD sowie SEAFILE_ADMIN_PASSWORD und passen gegebenenfalls die beiden Pfade unter volumes an, falls Sie eine andere Stelle im Dateibaum bevorzugen. Bei SEAFILE_ADMIN_EMAIL hinterlegen Sie eine E-Mail-Adresse, die Sie später zum Einloggen benötigen.
Soll der Server auch von unterwegs erreichbar und verschlüsselt sein, müssen Sie zudem SEAFILE_SERVER_LETSENCRYPT auf true setzen. Bei SEAFILE_SERVER_HOSTNAME tragen Sie dann einen registrierten Domain-Namen ein. Falls Sie nicht über eine registrierte Domain verfügen, helfen Sie sich mit Diensten wie DynDNS. Beim ersten Versuch sollten Sie die Seafile-Installation jedoch ohne SSL (also ohne https:// in der URL) aufrufen, um mögliche Fehlerquellen auszuschließen.
Im Browser
Anschließend starten Sie aus /home/seafile/ heraus den Befehl sudo docker-compose up -d, der die benötigten Abbilder herunterlädt und in die entsprechenden Container packt (Abbildung 1). Das dauert einige Minuten. Sobald der Prompt wieder erscheint, loggen Sie sich von einem beliebigen Rechner in Ihrem Netzwerk aus auf der Weboberfläche ein. Die URL setzt sich aus der IP-Adresse des Servers und dem entsprechenden Port zusammen.

Abbildung 1: Nachdem Docker Compose die drei Container aufgesetzt hat, erläutert eine Hinweistafel die nächsten möglichen Schritte.
Je nach Installationsmethode kann das http://IP:80, http://IP:8000 oder, falls Sie ein Zertifikat für die SSL-Übertragung integriert haben, https://IP:443 sein. Falls Sie über keine feste IP-Adresse für den Server verfügen und Ihr Router es zulässt, sollten Sie dem Server immer dieselbe IPv4-Adresse zuweisen.
Klar gegliedert
Die Oberfläche von Seafile ist klar und übersichtlich gegliedert, alle Optionen sind sofort verständlich (Abbildung 2). Aus der linken Leiste heraus haben Sie Zugriff auf Bibliotheken, Gruppen, verbundene Geräte und die Freigabeverwaltung (Abbildung 3). Über das Avatar-Icon oben rechts greifen Sie auf Ihr Profil und die Systemadministration zu. Dort legen Sie weitere Benutzer und Gruppen sowie Bibliotheken an. Diese können Sie freigeben oder einem anderen Benutzer zuordnen.

Abbildung 2: Die übersichtlich gegliederte Weboberfläche von Seafile bietet über die Seitenleiste Zugriff auf alle Funktionen. Das Kontextmenü zeigt die Optionen für einzelne Dateien an.

Abbildung 3: Die Systemadministration bietet unter anderem einen Überblick über derzeit mit dem Server verbundene Geräte. Außerdem dient sie zum Anlegen von weiteren Benutzern und Gruppen.
Um zu prüfen, ob die Netzwerkverbindung zum Server funktioniert, laden Sie testweise eine Datei von Hand hoch. Dazu nutzen Sie die Schaltfläche Hochladen, die Sie in jeder Bibliothek links in der oberen Leiste finden. Alternativ ziehen Sie die Dateien in die geöffnete Bibliothek.
Tritt beim Upload ein Netzwerkfehler auf, wechseln Sie in der Systemadministration zum Unterpunkt Einstellungen und nehmen die ersten beiden Zeilen SERVICE_URL und FILE_SERVER_ROOT unter die Lupe. Steht dort Ihre IP-Adresse und gegebenenfalls der Port? Falls nicht, fügen Sie dort die IP ein, mit der Sie auch die Weboberfläche gestartet haben. Der Zusatz /seafhttp muss dabei erhalten bleiben.
Nachdem Sie die erste Zeile geändert haben, klicken Sie auf den Haken an deren Ende. Ebenso verfahren Sie bei Zeile 2. Nach einer Aktualisierung des Seiteninhalts über [F5] sollten Sie nun Dateien hochladen können. Das Problem liegt vermutlich eher bei Docker als bei Seafile.
Die Clients
Seafile bietet Desktop-Clients für Linux, MacOS, Windows, Android und iOS an. Ein Client lässt sich mit mehreren Seafile-Servern verbinden. Der Linux-Client findet sich zwar in den Repos vieler Distributionen, allerdings oft nur in älteren Versionen. Bei Ubuntu 20.04 steht der Versionszähler beispielsweise erst bei 8.0.7. Um dennoch an eine aktuelle Ausgabe des Clients zu kommen, führen Sie unter Ubuntu 20.04 die Kommandos aus Listing 4 aus. Für Ubuntu 22.04 ändern Sie im ersten Befehl focal zu jammy, für Debian 11 zu bullseye.
Listing 4
Client installieren
$ sudo bash -c "echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/seafile-keyring.asc] https://linux-clients.seafile.com/seafile-deb/focal/ stable main' > /etc/apt/sources.list.d/seafile.list" $ sudo apt update $ sudo apt install -y seafile-gui
Seafile lässt sich statt via Client auch per WebDAV direkt in Dateimanager wie Dolphin (KDE Plasma) oder Nautilus (Gnome) integrieren [12]. Ein Klick auf die IP im Client führt Sie in die Weboberfläche im Browser. Der Client lässt sich nach Installation des Terminal-Clients auf Servern ohne X oder mit dem Paket seaf-cli auch im Terminalemulator bedienen [13].
Die Spezialitäten von Seafile sind die Dateisynchronisation und das Teilen von Inhalten (Abbildung 4). Der Clients gleicht nach der Installation alle im Ordner Seafile/ abgelegten Daten mit dem Server ab, wobei Seafile selbst kleinste Unterschiede erkennt und nur die Änderungen synchronisiert. Änderungen an Dateien führen zudem zu einer sehr praktischen Versionierung (Abbildung 5).

Abbildung 4: Den Seafile-Client gibt es sowohl für den Desktop als auch für Mobilgeräte. Der hier abgebildete Desktop-Client verrät seine Optionen über das Kontextmenü der rechten Maustaste.

Abbildung 5: Das Kontextmenü einer Bibliothek erlaubt über den Menüpunkt Versionen einrichten verschiedene Versionen einer Datei permanent oder für einen bestimmten Zeitraum zu speichern.
Das erweist sich insbesondere dann als sehr nützlich, wenn mehrere Nutzer an einer Datei arbeiten. Ähnlich wie bei Git lässt sich so verfolgen, wer wann welche Änderungen vorgenommen hat. Ein Upgrade auf eine neue Version von Seafile wird in einem eigenen Ordner angelegt, sodass man im Fall von Problemen zurück zur alten Version wechseln kann.
Das Teilen von Inhalten erfolgt über Dateifreigaben, die sich auf einzelne Seafile-Nutzer beschränken lassen. Datei- und Ordnerfreigaben für Dritte funktionieren wie in Nextcloud über öffentliche Links. Um mit anderen zusammen an Dokumenten zu arbeiten, binden Sie die Online-Editoren von OnlyOffice ein oder verbinden sich mit Collabora Office [14]. Falls Sie keine vollständige Bürosuite benötigen, können Sie den integrierten Markdown-Editor zum Schreiben verwenden (Abbildung 6).

Abbildung 6: Zum gemeinschaftlichen Arbeiten an Dokumenten integriert Seafile die Office-Suiten OnlyOffice und Collabora Online.
Fazit
Legen Sie mehr Wert auf Dateiablage, Synchronisation und das Teilen von Inhalten als auf kollaboratives Arbeiten, ist Seafile vermutlich genau das Richtige für Sie. Aber auch das gemeinsame Arbeiten funktioniert gut, wenn sich auch das Einbinden der Office-Programme aufwendiger gestaltet als bei der Konkurrenz. Die ausführliche Dokumentation liegt ärgerlicherweise in vielen Teilen nur in Englisch vor [15]. Wer sich ausführlich einarbeiten möchte, dem sei eine zehnteilige Youtube-Serie in deutscher Sprache ans Herz gelegt [16].
Der größte Vorteil von Seafile gegenüber Nextcloud oder Owncloud liegt in seiner überlegenen Arbeitsgeschwindigkeit bei der Synchronisation und beim Zugriff. Das liegt hauptsächlich am verwendeten Speichermodell: Seafile nutzt im Gegensatz zur Konkurrenz Block Storage statt File Storage [17]. Andererseits gibt es bei Seafile keine Zusatz-Apps wie bei Own- oder Nextcloud. Benötigen Sie also eine Integration von Kalender, E-Mail und anderen Komponenten, müssen Sie zu einer anderen Lösung greifen. Ansonsten ist Seafile ein guter Tipp. (cla)
Infos
- Seafile: https://www.seafile.com/en/home
- Github: https://github.com/haiwen/seafile
- Syncwerk: Erik Bärwaldt, “Mogelpackung”, LU 11/2018, S. 70, https://www.linux-community.de/41554
- Funktionsvergleich: https://de.seafile.com/seafile-editionen/
- Test: https://de.seafile.com/trial/
- Download: https://www.seafile.com/en/download/
- Docker: https://manual.seafile.com/docker/deploy_seafile_with_docker/
- Install-Skript:https://github.com/haiwen/seafile-server-installer
- Manuelle Installation: https://manual.seafile.com/deploy/using_mysql/
- Seafile auf dem RasPi: https://github.com/jojo243/seafile-docker-arm64
- YAML:https://download.seafile.com/d/320e8adf90fa43ad8fee/files/?p=/docker/docker-compose.yml
- WebDAV: https://manual.seafile.com/extension/webdav/
- Seaf-cli: https://help.seafile.com/syncing_client/linux-cli/
- Collabora/OnlyOffice: https://www.youtube.com/watch?v=iCDJLRTp_Cw
- Dokumentation: https://manual.seafile.com/
- Youtube-Serie: https://www.youtube.com/watch?v=uS4c2DPZA6M&t=779s
- Block Storage: https://www.storage-insider.de/was-ist-block-storage-a-842474/
- Pro-Version kostenlos: https://www.seafile.com/en/product/private_server/#:~:text=You%20can%20get%20pro%20edition,pro%20edition%20for%203**Prozent20users.&text=Send%20an%20Email%20to%20sales,name%20and%20number%20of%20users.





