dynaperl

100% porentief rein

CalDav Kalender Server

Bisher hatten wir einige Kalender mit Apache_moddav realisiert. Das führte aber immer wieder zu Problemen beim gleichzeitigen Zugriff mehrer Clients auf einen Kalender. Dabei kam dann teilweise die ICS-Datei abhanden.

Ich habe mir jetzt mal freie CalDav Server angeguckt (die Java basierenden Versionen Cosmo und Bedework habe ich gleich außen vorgelassen). DAViCal macht einen ganz interessanten Eindruck setzt aber PostgreSQL als Backend voraus. Zudem war die Liste der Abhängigkeiten (Apache + tausende Perl und Php Pakete) mir etwas zu lang. Positiv fällt allerdings auf das man Davical unter Lenny einfach als Paket installieren kann.

Ich habe mich jetzt für den Darwin Calendar Server entschieden. Der ist in Python geschrieben und unter Lenny als Debian Paket zu beziehen. Abgesehen von den unangenehmen plist Konfigurationsdateien ist mir noch nichts negatives aufgefallen. Über zwei Dateien sind schnell User und Gruppen (/etc/caldavd/accounts.xml) angelegt, x509 Zertifikat installiert und SSL aktiviert  (/etc/caldavd/caldavd.plist). Schon kann es los gehen.

Auf der Projekte Website ist die Konfiguration der Gängigen Clients beschrieben. Was hilfreich ist da sich die richtige URL zwischen Apple-iCal und Sunbird unterscheidet. Dabei ist noch anzumerken das Apples iCal die Verbindung verweigert wenn man SSL mit einem selbst signierten Zertifikat verwendet. Bevor die Anmeldung kalppt muß man sein Root-CA (oder das von cacert wenn man hier ein Zertifikat geordert hat) in der Schlüsselbundverwaltung importieren. Dazu zieht man die PAM kodierte Zertifikats Datei auf Schlüsselbunde/Anmeldung, öffnet das Zertifikat mit einem Doppelklick, öffnet den Punkt vertrauen und stellt die Auswahl auf immer vertrauen.

Der Server legt jeden Termin als eigene ics-Datei ab. Als Index verwendet er ein SQL-light Datenbank File. So funktionieren auch gleichzeitige Änderungen an einem Kalender problemlos. Ändern mal zwei Sunbird-Clients auch noch den gleichen Termin bekommt der eine von beiden (der langsamere) eine Warnung das sich der Eintrag in der Zwischenzeit geändert hat. Man hat nun die Auswahl seine Änderungen zu verwerfen oder die fremden Änderungen zu überschreiben.  Apples iCal gibt keine Warnung aus. Die Änderung geht verlohren.

Leider unterstützt der Darwin Calendar Server noch kein IPv6:

twisted.internet.error.CannotListenError: Couldn’t listen on [2001:7f0:23::42]:80: (-2, ‚Name or service not known‘).

Update:

Der Server erkennt Änderungen an dem accounts.xml und liest das File neu ein. Das ist blöd wenn man einen Syntaxfehler gemacht hat und schön da man sich ein reload spart.

Offensichtlich kann man auch eine Directory Service wie LDAP oder Active Directory als Usersdatenbank verwenden. Das gucke ich mir dann als nächstes an. 🙂

Tags: , , ,

Eine Antwort zu “CalDav Kalender Server”

  1. dynaperl» Blogarchiv » Caldav Client(s) sagt:

    […] habe ja vor ein paar Wochen geschrieben das ich einen Caldav Server teste. Aktuell haben wir ein dutzend Kalender eingerichtet und nutzen […]