Owncloud-Alternative with Seafile und Baikal

Now that I finally had my little server, I wanted to sync all my stuff from a variety of electronic devices: ie the working files on different computers, and also the calendar data and addresses should finally be in sync on all devices.

After a quick search I am first came to OwnCloud. A truly worry-free solution and also really easy to install.
OwnCloud offers:

  • a convenient Web interface
  • a calendar including CalDAV interface
  • a contact list including CardDAV interface
  • WebDAV interface
  • clients to synchronize for almost any operating system

Unfortunately i had problems with my OwnCloud-installation. There were always problems with the synchronization of calendar data and files.
So it came regularly to an error message of the CalDAV SyncAdapter during synchronization of calendar data from my phone, synchronizing with Thunderbird/Lightning led to huge traffic and high CPU load on the server because the synchronization did not work.
The synchronization of files with the sync client was very slow – a folder of 2,4 GB needed for the initial synchronization with the server about 4 hours. That alone was not really a problem, but for no apparent reason some files were missing on the server after the synchronization.
In addition, the performance of Owncloud was a disaster on my BeagleBone.

So i had a look for an alternative and then finally found: SeaFile as a cloud solution and Baikal for synchronization of calendar and contact data.

Seafile

Seafile is a cloud solution that was implemented in C and Python. Seafile has its own little web server for handling his web interface. The port for the web server is freely selectable.
Furthermore, there are sync clients for all major operating systems and mobile devices.

Seafile provides the ability to encrypt their data in the cloud. The data on the client are encrypted, transfered encrypted and also stored encrypted in the cloud. Conversely, the data will be transfered encrypted to the client and then will be decrypted on the client. So the password is only on the client. Nice thing.
Furthermore Seafile provides version control, which is useful when multiple clients work with the same files.

As a database backend you can choose between SQLite or MySQL. SQLite is used by default. I’ve tried both and found no relevant differences.

In addition Seafile has, like OwnCloud too, a WebDAV interface, so that you can access your files from mobile devices without having to synchronize them completely. With a suitable file manager the files in the cloud can be accessed like in a network drive.
Up to now only unencrypted files can be accessed via the WebDAV interface on the server. According to a developer that would be feasible, that you can also access encrypted files. However, there is yet no information whether that should be implemented.
So you should take that into account when creating your libraries. If you want to access, for example, your music collection on your Seafile server with a tablet-pc, you must not encrypt it.

That Seafile has largely been implemented in C, speaks in advance for a good performance, which has also been confirmed during the test. The same folder with 2.4GB was synchronized in less than 20 minutes … over W-Lan.

The installation of the Seafile server requires a bit of manual work, but is quite simple and is described very detailed in the Wiki. There is even a special version of Seafile for the Raspberry Pi – which of course also works on the BeagleBone Black. Since Python it is already installed by default on both in the Debian-version, only a few packages need to be installed additionally.

Instructions on how to setup Seafile with NginX and MySQL can be found in this article: Seafile with NginX and MySQL

Baikal

Baikal is is a small, in the PHP implemented server, which is capable of the CalDAV and CardDAV protocol. CalDAV is a protocol for synchronizing calendar data, with the CardDAV protocol address and contact information can be synchronized.
The data can either be stored in a SQLite or MySQL database. With the simple and clear web interface users, calendars, and address books can be created and administrated easily.

How to install Baikal with the web server nginx, I’ve described in this article .

8 Gedanken zu “Owncloud-Alternative with 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