Habe mich vor langer Zeit für die Nutzung von Tine 2.0 entschieden, um ohne Googledienste auszukommen, unter anderem deshalb, weil es zu dem Zeitpunkt keine Open Source App gab, die Kalender und Adressbücher ohne Einschränkungen über DAV synchronisieren konnte. Tine20 verwendet zur Synchronisation ActiveSync, welches direkt von Android unterstützt wird.

Doch seit es DAVDroid gibt, haben sich weitere Möglichkeiten aufgetan; nämlich solche, die CalDAV/CardDAV zur Synchronisation verwenden.

Baïkal

Ein ganz leichtgewichtiger Server, der nur genau diese beiden Dinge anbietet, ist Baikal, welcher unter der GPLv3 lizenziert ist. Dieser liefert zusätzlich zu DAV noch ein einfaches Admin-Interface samt Benutzerverwaltung, sonst nichts. Für mich ist die Funktionalität ausreichend; von den Dingen, die Tine 2.0 liefert hatte ich dagegen immer nur einen Bruchteil genutzt.

Baikal nutzt per Voreinstellung zum Speichern der Daten eine SQLite-Datenbank, optional auch MySQL. Doch für die wenigen Daten von mir reicht SQLite völlig aus und das Backup ist somit auch sehr einfach, siehe unten.

Habe deshalb vor wenigen Tagen das Adressbuch und den Kalender von Tine 2.0 nach Baikal migriert.

Herunterladen und installieren

Baikal kann man hier herunterladen; für die Installation gibt es in den herunterladbaren Archiven eine sehr gute Anleitung (INSTALL.md).

Einrichtung

Nach der Installation loggt man sich als Benutzer „admin“ ein; hier ein Screenshot der bereits eingerichteten, lokalen Instanz:

[Admin Interface von Baikal][6]
Admin Interface von Baikal

Hier kann man über das Menü „User and ressources“ Benutzer verwalten:

[Benutzerübersicht in Baikal][7]
Benutzerübersicht in Baikal

Für jeden neu erstellten Benutzer werden automatisch auch je ein Kalender und ein Adressbuch mit der Token ID „default“ eingerichtet. Es lassen sich auch weitere Kalender/Adressbücher hinzufügen; unterschieden werden sie über die bei der Erzeugung angegebene, eindeutige Token ID, die sich nachträglich nicht mehr ändern lässt.

Pro Kalender lässt sich auch einstellen, ob dieser Aufgaben unterstützt.

Migration der Daten – allgemein

Jetzt fehlen noch die Daten. Um diese nach Baikal zu übertragen, werden die Ressourcen der beiden Server (Tine 2.0 und Baikal) z. B. in Thunderbird oder einem anderen Programm mittels CalDAV/CardDAV (siehe unten) eingebunden und dort von A nach B kopiert.

Migration des Kalenders inklusive der Aufgaben

Da bereits Thunderbird verwendet wird, das von Haus aus CalDAV unterstützt, wurde zusätzlich zum bereits eingebundenen Tine 2.0 Kalender noch der leere von Baikal eingebunden.

Die URL für CalDAV hat das Schema

https://baikalserver/cal.php/calendars/benutzername/Calender token ID

Die „Calender token ID“ ist der eindeutige Name des Kalenders, den man im Admininterface einsehen kann.

Da es nicht viele Kalendereinträge gab, wurden diese einzeln bearbeitet und dem neuen Baikal-Kalender zugewiesen:

[Kalendereinträge zuweisen][8]
Kalendereinträge zuweisen

Genauso wurde mit den Aufgaben verfahren, die Baikal innerhalb von Kalendern unterstützt, wenn diese bei Erstellung aktiviert wurden.

Migration des Adressbuchs

Dann kann man in Thunderbird dank des installierten AddOns SoGo-Connector das noch leere Adressbuch von Baikal als CardDAV einbinden, alle Einträge des Tine 2.0 Adressbuchs markieren und nach Baikal kopieren.

Als URL für CardDAV nutzt man das Schema

https://baikalserver/card.php/addressbooks/benutzername/Address Book token ID

Die „Address Book token ID“ ist der eindeutige Name des Adressbuchs, den man im Admininterface einsehen kann.

Abschluss der Migration

Nun können in Thunderbird die Ressourcen von Tine 2.0 entfernt werden. Zur Sicherheit sollte man die alten Daten jedoch noch als Backup vorhalten.

Backup auf dem Webserver einrichten

Das ist der angenehme Teil; man muss nur die SQLite-Datenbankdatei „Specific/db“ im Hauptverzeichnis von Baikal sichern. Mir ist nicht bekannt, ob die Datenbank gecached wird, von daher könnte man den Webserver für das Backup kurz anhalten.

Einrichtung auf Android

Wie oben schon geschrieben, benötigt man DAVDroid, um sich mit Baikal synchronisieren zu können, siehe hier.

Man muss dann zwei Konten des Typs DAVDroid erstellen, eines für das Adressbuch und das andere für den Kalender; die URLs sind dabei dieselben, die bereits im Abschnitt Migration erwähnt wurden.

Aufgaben in Android

Die Aufgaben stehen bisher nicht in Android zur Verfügung sondern nur in Thunderbird, was aber an der nicht vorhandenen App dafür liegt; dazu später mehr.

Doch aktuell verwende ich für Aufgaben fast ausschließlich eine Todo-Textdatei.

Ressourcenverbrauch

Tine 2.0 und Apache benötigten zusammen ungefähr 180 MiB. Baikal mit Apache kommt auf ~ 60 MiB, MySQL fällt ganz weg.

Dadurch konnte die RAM-Zuweisung der virtuelle Maschine des lokalen Webservers auf 80 MiB RAM heruntergestellt werden.

\o/

Passt :)

Tipp: Wer KDE SC nutzt, kann den Kalender in korganizer einrichten, um im Uhr-Widget die nächsten Termine sehen zu können.