Owncloud-Alternative mit Seafile und Baikal

Jetzt, wo ich endlich meinen kleinen Server hatte, wollte ich endlich mal meinen ganzen Kram von den verschiedensten, elektronischen Geräten synchronisieren: also die Arbeitsdateien auf diversen Rechnern synchron halten, und auch die Kalenderdaten und Adressen sollten endlich auf allen Geräten synchron sein.

Nach kurzer Suche bin ich natürlich erstmal bei OwnCloud gelandet. Eine wirklich Rundum-Sorglos-Lösung und auch wirklich einfach zu installieren.
OwnCloud bietet:

  • eine übersichtliche Web-Oberfläche
  • einen Kalender inklusive CalDAV-Schnittstelle
  • eine Kontaktliste inklusive CardDAV-Schnittstelle
  • WebDAV-Schnittstelle
  • Clients zur Synchronisation für nahezu jedes Betriebssystem

Leider lief Owncloud bei meiner Installation nicht ganz rund. Es gab immer wieder Probleme bei der Synchronisation von Kalenderdaten und Dateien.
So gab es bei der Synchronisation der Kalenderdaten von meinem Handy regelmäßig zu einer Fehlermeldung des CalDAV-SyncAdapters, bei der Synchronisation mit Thunderbird/Lightning zu einem riesigen Traffic und hoher Prozessorlast auf dem Server, weil die Synchronisation nicht klappte.
Die Synchronisation von Dateien mit den Sync-Clients war sehr langsam – ein Ordner von 2,4GB brauchte für die erstmalige Synchronisation mit dem Server über 4 Stunden. Das alleine wäre jetzt noch nicht so schlimm gewesen, allerdings fehlten nach der Synchronisation auf dem Server auch einige Dateien, die ohne ersichtlichen Grund nicht synchronisiert wurden.
Außerdem war die Performance auf meinem Beaglebone freundlich gesagt eine Katastrophe.

Ich hab mich daher mal nach einer Alternative umgesehen und dann schließlich auch gefunden: SeaFile als Cloud-Lösung und Baikal zur Synchronisation von Kalender- und Kontaktdaten.

Seafile

Seafile ist eine Cloud-Lösung, die in C und Python umgesetzt wurde. Seafile verfügt über einen eigenen, kleinen Web-Server, über den die Web-Oberfläche bedient wird. Der Port für den Webserver ist dabei frei wählbar.
Weiterhin gibt es Sync-Clients für alle gängigen Betriebssysteme und Mobilgeräte. Die Tatsache, dass Seafile ursprünglich in China entwickelt wurde, muss einem dabei denke ich keinerlei Kopfzerbrechen machen, denn mittlerweile ist es ein Open-Source-Projekt, das von einer weltweiten Entwicklergemeinde betreut wird.

Seafile bietet die Möglichkeit, seine Daten in der Cloud zu verschlüsseln. Dabei werden die Daten auf dem Client verschlüsselt, verschlüsselt übertragen und auch so in der Cloud abgelegt. Umgekehrt werde die Daten zum Client verschlüsselt übertragen und erst auf dem Client wieder entschlüsselt. Das Passwort liegt also nur auf dem Client. Super Sache, wie ich finde.
Weiterhin bietet Seafile eine Versionskontrolle, was nützlich ist, wenn mehrere Clients mit den selben Dateien arbeiten.

Als Datenbank-Backend kann man zwischen SQLite oder MySQL wählen. SQLite ist wird dabei standardmäßig genutzt. Ich hab beides versucht und keinerlei relevante Unterschiede festgestellt.

Zusätzlich verfügt Seafile, wie OwnCloud auch, über eine WebDAV-Schnittstelle, so dass man auch von mobilen Geräten auf seine Dateien zugreifen kann, ohne diese komplett synchronisieren zu müssen. Mit einem geeigneten Datei-Manager lassen sich dann nämlich die Dateien in der Cloud wie ein Netzlaufwerk einbinden.
Bislang kann man über die WebDAV-Schnittstelle nur auf Dateien zugreifen, die unverschlüsselt auf dem Server liegen. Laut eines Entwicklers wäre das allerdings machbar, dass man darüber auch auf verschlüsselte Dateien zugreifen kann. Es gibt allerdings bislang keine Informationen, ob das auch umgesetzt werden soll.
Man sollte das also beim Anlegen der Bibliotheken berücksichtigen. Wenn man zum Beispiel von seinem Tablet auf seine Musiksammlung auf seinem Seafile-Server zugreifen möchte, sollte man diese nicht verschlüsseln.

Dass Seafile größtenteils in C umgesetzt wurde, spricht schonmal für eine zügige Performance, was sich beim Test auch bestätigt hat. Der selbe Ordner mit 2,4GB war in knapp 20 Minuten synchronisiert … und das über W-Lan.

Die Installation des Seafile-Servers erfordert ein wenig Handarbeit, ist aber sehr einfach und wird in dem sehr ausführlichen Wiki gut beschrieben. Es gibt sogar eine eigene Version des Servers für den Raspberry Pi – die natürlich auch auf dem Beaglebone Black läuft. Da auf beiden in der Debian-Variante Python schon standardmäßig installiert ist, müssen auch nur wenige Pakete zusätzlich installiert werden.

Eine Anleitung zur Installation von Seafile mit NginX und MySQL findet sich in diesem Artikel: Seafile mit Https, NginX und MySQL

Baikal

Baikal ist ist ein kleiner, in PHP geschriebener Server, der das CalDAV- und das CardDAV-Protokoll beherrscht. CalDAV ist ein Protokoll zum Abgleich von Kalender-Daten, mit dem CardDAV-Protokoll können Adress- und Kontaktdaten synchronisiert werden.
Die Daten können wahlweise in einer SQLite- oder einer MySQL-Datenbank abgelegt werden. Über die einfache und übersichtliche Web-Oberfläche können bequem Nutzer, Kalender und Adressbücher angelegt und Administriert werden.

Wie man Baikal mit dem Webserver NginX installiert, hab ich in diesem Artikel beschrieben.

8 Gedanken zu “Owncloud-Alternative mit Seafile und Baikal

  1. Bin auch sehr positiv von Seafile überrascht, die Synchronisierung bei owncloud ist einfach nur noch peinlich. Die Leute bei Seafile scheinen einfach zu wissen, was sie tun.

    • So sieht das aus. Habe es seit ein paar Monaten laufen mit ca. 500 GB auf einem Beaglebone mit angeschlossener USB-Platte und es gab nie Probleme mit der Synchronisation. Funktioniert einfach zuverlässig und schnell. Bin also völlig begeistert.
      Was mir noch nicht so richtig gut gefällt sind die mobilen Clients. Wenn man damit noch einzelne Ordner syncen kann, ist es nahezu perfekt 🙂
      Wird aber schon dran gearbeitet.

    • Hey Christoph

      Cooler test! Danke für die Nachricht.
      Ich möchte hier aber nochmal erwähnen, dass es mir nicht um Geschwindigkeit ging, sondern um Vollständigkeit. Normalerweise ist es ja so, dass man seine Ordner nur 1 mal komplett synchronisiert. Danach sind es ja nur noch selten solche Datenmengen, sondern nur noch die paar Dateien, die man den Tag über angefasst hat. Und ob er da 1 oder 5 Minuten für braucht, war für mich eher nebensächlich.
      Ich hatte nur Probleme damit, dass nach der ersten Synchronisation viele Dateien auf dem Server gefehlt haben – und das war K.O.-Kriterium.

      Auch hat die CardDAV-Synchro immer wieder gehakt .. Daher hatte ich mich dann endgültig dagegen entschieden.

      Gruß Bjoern

  2. Hallo Bjoern

    Danke für deinen ausführlichen Artikel. Was mich interessieren würde: Wie installiere ich Seafile und Baïkal auf einer Subdomain bspw. cloud.meinedomain.sh und verwende in beiden den gleichen Benutzer. Also jetzt nicht unbedingt in beiden angelegt, sondern das Baïkal z. B. die Benutzerverwaltung für Seafile mitübernimmt.
    Alles andere wäre ja Doppelgemoppel… Nicht?
    Danke dir für deine Inputs 🙂
    LG

    Abi

    • Moin

      Also das wird ein wenig schwierig, da sowohl Baikal als Seafile ihre Nutzer Verwaltung in ihrer eigenen Datenbank anlegen.
      Wenn du da was ändern willst, musst du an den Code ran.

      Ist daher wirklich einfacher, für jedes der Programme die Nutzer separat anzulegen.

      Gruß Bjoern

  3. Hallo Bjoern,
    ein großes Lob für deine ausführlichen Beiträge. Sind für mich als Linux-Neuling sehr hilfreich.
    Generell hab ich mal ne Frage zu Daten und Server und Seafile. Ich möchte für mein Heimnetz (Linux und Windows-PC, Android-Tablets) die Daten (Musik, Bilder, Dokumente) auf einem Server zentralisieren und von allen Geräten darauf Zugriff haben. Bislang hatte ich an einen Samba-Fileserver gedacht, nach deinem Artikel hier, frage ich mich, ob ich das mit Seafile nicht viel besser hinbekomme? Oder muss ich evt. beides machen?
    Gruß Frank

    • Hallo Frank

      Vielen Dank!

      Was da die bessere Wahl ist, kommt ein wenig darauf an, wie es nachher aussehen soll:
      Wenn du die Dateien zentral auf einem Server halten und von allen Geräten darauf zugreifen oder sie bearbeiten möchtest, ist ein Samba-Fileserver sicher die bessere Wahl.
      Wenn du die Dateien zwischen mehreren Geräten synchron halten möchtest, bist du mit Seafile und seinen Sync-Clients besser dran.

      Also wenn ich deine Anforderung richtig verstehe, solltest du das besser mit einem Samba-FileServer umsetzen.

      Gruß Bjoern

Schreibe einen Kommentar