Baikal Lightweight CalDAV + CardDAV ServerWer seine Kalenderdaten und Kontakte gerne zwischen Smartphones und/oder eMail-Clients (z.B. Thunderbird, Apple Calendar OS X usw.) synchronisieren möchte, die Daten jedoch nicht in die Hände von Google, Apple und Konsorten legen will, kann dieses ganz bequem und vollautomatisch mit Baikal auf der heimischen Synology NAS machen. Baikal ist ein ressourcenschonender und flexibler CardDAV/CalDAV-Server, der schnell installiert und eingerichtet ist. Ich beschreibe hier die Installation auf einer Synology NAS mit DSM 6.0, da ich meine Daten gerne "zu Hause" liegen habe - jedoch kann Baikal natürlich auch auf fast jedem beliebigen Hosting-Paket (Minimum Apache 2, PHP 5.3 und MySQL/MariaDB oder SQLite) installiert werden.

 Sofern noch nicht geschehen, installiert ihr zuerst per Paketzentrum die "Webstation", die euch den Webserver zur Verfügung stellt. Ich habe alle Standard-Einstellungen für Apache und PHP übernommen.

Einstellungen Synology DSM Webstation

 

Bei der Installation der Webstation wird auf der Synolgy automatisch das Verzeichnis /var/services/web angelegt, welches quasi dem Apache htdocs-Verzeichnis entspricht und in das ihr eure Webdateien kopieren könnt. Das Verzeichnis web erreicht ihr auch über die Filestation. Nun laden wir von der Baikal-Homepage das "Flat Package" herunter - die Dateien könnt ihr entpacken und auf der Synology im Webroot in ein Unterverzeichnis kopieren (z.B. /baikal). Ich musste im Anschluss noch die Verzeichnis- und Dateirechte anpassen, damit der Apache-User "http", der Mitglied in der gleichnamigen Benutzergruppe "http" ist, korrekt lesen und schreiben kann. Dazu habe ich eine ssh Konsolenverbindung zur NAS aufgebaut (das geht unter Windows z.B. mit dem SSH-Client putty). Die Anmeldung an der Linux-Konsole erfolgt mit dem User admin und dem entsprechenden Passwort. Die Besitz-Rechte der Baikal-Verzeichnisse und Dateien ändert ihr nun mit folgendem Befehl: sudo chown -R http:http /var/services/web/baikal (es wird erneut nach eurem Admin-Passwort gefragt).

Anpassen der Verzeichnis-Rechte für den Apache Webserver

 

Die Daten speichert Baikal entweder per SQLite oder MySQL/MariaDB. Ich habe mich für MariaDB entschieden, da das Datenbanksystem für eine andere Anwendung eh installiert war und dieses sehr einfach von dem Synology-eigenem Backup-Tool mitgesichert wird. Falls noch nicht geschehen, installiert ihr also per Paketzentrum das Paket "MariaDB". Für die einfache Administration der Datenbanken empfiehlt es sich, das Paket "phpMyAdmin" gleich mit zu installieren. Hierüber lässt sich nun eine neue Datenbank "baikal" mit einem entsprechenden Datenbankbenutzer (ich habe ihn ebenfalls "baikal" genannt) anlegen. Wer sich mit MySQL/MariaDB auskennt, kann natürlich Datenbank sowie DB-User auf der Linux Konsole per mysql Client erstellen.

phpMyAdmin zum Erstellen der Baikal-Datenbank und des Datenbankbenutzers (Baikal hat hier bereits die Tabellen angelegt)

 

Nun ruft ihr per Webbrowser die URL eurer Synology auf, entweder über die IP-Adresse, den internen Hostnamen oder noch besser und sofern von euch eingerichtet, über die externe URL, über die eure Synology aus dem Internet erreichbar ist (z.B. eine DynDNS-Adresse) - gefolgt von dem Verzeichnisnamen eures Baikal-Verzeichnis (z.B. https://hostname/baikal/). Über das Baikal Installations-Tool werdet ihr durch die Installation geführt, es werden z.B. Daten für eure neu erstellte Datenbank abgefragt. Baikal generiert die erforderlichen Tabellen und wenn alles geklappt hat, könnt ihr euch mit dem Admin-Account auf dem Baikal-Dashboard anmelden:

Baikal Dashboard

 

Sofern ihr per https-Verbindung synchronisieren möchtet (was absolut empfehlenswert ist), müsst ihr nun noch unter "Settings" den "WebDAV authentication type" auf "Basic" umstellen:

WebDAV-Settings für https Verbindungen

 

Im Anschluss legt ihr einen Benutzer an, über den ihr eure Kontakte und Kalenderdaten synchronisieren könnt. Auf meinem Android Smartphone verwende ich für die Synchronisierung CalDAV-Sync und CardDAV-Sync von Marten Gajada. Apples Mac OS X und iOS unterstützen CardDAV und CalDAV ohne zusätzliche Plugins, genauso wie Blackberry OS10. Für Thunderbird und Outlook gibt es diverse brauchbare Plugins. Welche URL für welchen Client einzutragen ist, findet ihr im Baikal-Verzeichnis in der Datei install.md.

Wer Baikal nicht wie oben beschrieben manuell installieren möchte, kann auch das fertige Synology Paket "Baikal for Synology" nutzen. Das Paket ist leider nicht über ein Repository verfügbar sondern muss manuell herunter geladen und installiert werden. Mit anderen Pakten habe ich diesbezüglich jedoch schlechte Erfahrungen gemacht (irgendwann kamen keine Updates mehr, unsichere Pakete oder Quellen etc.), sodass ich in diesem Fall davon Abstand genommen habe - das bedeutet nicht, dass dieses von Erik Oom zur Verfügung gestellte Paket schlecht oder nicht aktuell ist - ich habe es lediglich nicht getestet.

Mir ist außerdem klar, dass Synology CardDAV und CalDAV seit DSM 5.0 von Hause aus unterstützt - jedoch war mir diese Implementierung zu rudimentär und nicht flexibel genug.

Meine Daten habe ich mehr als 2 Jahre mit Owncloud auf der Synology synchronisiert. Da ich jedoch keine Lust hatte, die recht alte und unsichere Owncloud-Installation zu aktualisieren, habe ich mit Baikal eine schnelle, ressourcenschonende und einfache Lösung gefunden, die ohne viel Ballast daher kommt und mich weiterhin Herr über meine Daten bleiben lässt ;)