This page (revision-5) was last changed on 15-Jul-2017 15:56 by ThomasBayen 

This page was created on 15-Jul-2017 12:26 by ThomasBayen

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
5 15-Jul-2017 15:56 9 KB ThomasBayen to previous Fazit meines Tests vom Calenderserver
4 15-Jul-2017 14:20 5 KB ThomasBayen to previous | to last
3 15-Jul-2017 14:17 5 KB ThomasBayen to previous | to last Noch ein Bug umschifft
2 15-Jul-2017 13:03 4 KB ThomasBayen to previous | to last Apple Calendarserver, Anfang des Installationsberichts
1 15-Jul-2017 12:26 1 KB ThomasBayen to last

Page References

Incoming links Outgoing links

Version management

Difference between version and

Auf der Suche nach einem guten LinuxKalender habe ich mich entschlossen, den [Calendarserver|https://www.calendarserver.org/] von Apple auszuprobieren. Dieser ist ein reiner Server für CalDAV und CardDAV-Daten. Er hat keine Oberfläche oder so etwas. Der Zugriff auf die Daten kann dann also z.B. mit einem Android Kalender, dem Thunderbird Kalendermodul oder ähnlichen Oberflächen geschehen.

Hier möchte ich dokumentieren, wie ich den Servber installiert habe und welche ersten Erfahrungen ich damit gemacht habe.

= Installation =

== Basissystem ==

Ich habe mich entschlossen, einen ganz neuen Server hierfür aufzusetzen, um alle fremden Einflüsse auszuschliessen. Als System habe ein aktuelles Testing (Debian Buster vom 15.7.17) gewählt. Das dürfte zur Zeit nicht viel Unterschied vom offiziellen Stretch-Release haben, weil dieses noch nicht sehr lange her ist.

Ich habe folgende Pakete zusätzlich zu einem Mini-Buster installiert. (Kann sein, das manche nicht wirklich nötig gewesen wären, aber das hier ist, was ich gemacht habe):

 joe, sshd, aptitude, xattr, postgresql-client binutils gcc

=== postgresql ===

Da ich einen eigenen, grossen Postgres-Server im Netz betreibe und die Daten dort gerne weiterverarbeiten möchte, habe ich diesen als externen Server benutzt. Das variiert die Installation natürlich und macht sie etwas einfacher. Informationen, wie der Server in beiden Stellen einzurichten ist, stehen aber gut erklärt in der Datei {{/usr/share/doc/calendarserver/README.Debian.gz}}

=== xattr ===

Die Calendarserver-Dokumentation sagt, das auf dem Filesystem xattr-Attribute eingeschaltet werden müssen. Dies kann man mit folgendem Befehl prüfen, der die Ausgabe "user_xattr" ergeben sollte.

 # cat /proc/fs/ext4/sda1/options | grep xattr

== Versionsauswahl ==

Der erste Schreck war, das es auf Grund einer scheinbaren Inkompatibilität kein offizielles Debian-Paket in Debian Stretch gibt. Ich habe ein bisschen recherchiert. Es gibt eine Version 3.2 in Wheezy und eine 7.0 in Sid. Und es gibt einen [grave Bug|https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=848361] auf Grund einer Inkopatibilät mit einer aktuelleren Bibliothek, die in Buster enthalten ist, an dem wohl zur Zeit gearbeitet wird. Upstream ist die Version 9.0 aktuell. Ich möchte es dennoch lieber mit der aktuelleren Version 7.0 versuchen...

https://serverfault.com/questions/22414/how-can-i-run-debian-stable-but-install-some-packages-from-testing

Das Problem konnte dann (nach dieser GRundeinstellung des APT-Systems) gelöst werden, indem ich zusätzlich zu Buster (meine eigentliche Revision) und Sid (um den Calendarserver zu installieren) auch noch Jessie (das die sqlparse-Bibliothek ohne die neue Inkompatibilität enthält) in meiner {sources.list} angegeben habe und dann folgendes gemacht habe:

 apt-cache policy python-sqlparse
 aptitude install python-sqlparse=0.1.13-2


== Konfiguration ==

=== Datenbank ===

Erst habe ich wie in der README-Datei angegeben, eine Datenbank {caldav} und einen Datenbank-User {caldavd} auf dem PostgreSQL-Server erstellt. Dann habe ich die entsprechende Schema-Datei gestartet, die die Datenbank eingerichtet hat:

 psql -h postgresql.local -f /usr/lib/python2.7/dist-packages/txdav/common/datastore/sql_schema/current.sql caldav caldavd

Nun habe ich in der Datei {/etc/caldavd/caldavd.plist} den Eintrag für den DBType angepasst:

   <!-- TB -->
   <key>DBType</key>
   <string>postgres</string>
   <key>DatabaseConnection</key>
   <dict>
       <key>endpoint</key>
       <string>tcp:postgresql.local</string>
       <key>database</key>
       <string>caldav</string>
       <key>user</key>
       <string>caldavd</string>
       <key>password</key>
       <string>geheimescaldavdpassword</string>
   </dict>

=== IPV6-Probleme vermeiden ===

Nach dem Starten des Servers hat der erste Zugriff mit dem Thunderbird bei mir leider nicht funktioniert. Im Log {/var/log/caldavd/error.log stand eine Fehlermeldung, der Methode gethostbyaddr "{socket.error: Address family not supported by protocol}". Das konnte ich nach einiger Recherche beheben. Richtig verstanden habe ich das Problem nicht, aber es tritt wohl auf, weil das System irgendwo aus Versehern IPv6 benutzt, das aber nicht korrekt in meinem ganzen Netzwerk konfiguriert ist (ich benutze es auch normalerweise nicht). Abholfe schafft folgender Eintrag in der Konfiguration. (siehe auch [hier|https://lists.macosforge.org/pipermail/calendarserver-users/2013-July/002267.html] oder [hier|https://github.com/apple/ccs-twistedextensions/issues/12]) Dadurch bindet der Server explizit an die externe IP-Adresse des Rechners, die hier eine IPv4-Addresse ist.

 <!-- List of IP addresses to bind to [empty = all] -->
 <key>BindAddresses</key>
 <array>
   <!-- TB -->
   <string>192.168.2.110</string>
 </array>


=== Server aktivieren ===

In {/etc/default/calendarserver} das starten des Servers aktivieren und dann mit

 /etc/init.d/calendarserver restart
 
starten.

Man kann in der Prozessliste mit

 ps waxu | grep cal

nachsehen, ob der Server läuft und ggf. im Systemlog sehen, was schiefgegangen ist (zumindest war das bei obigem PRoblem mit der sqlparse-Bibliothek so).

== hilfreiche Links ==

* https://wiki.debian.org/HowTo/CalendarServer
* https://www.calendarserver.org/Documentation.html
* https://www.deanspot.org/alex/2009/03/23/installing-apples-calendarserver-ubuntu.html
* https://wiki.ubuntu.com/CalendarServer

= Weitere Links =

Diese Links haben im weitesten Sinne mit dem Thema zu tun und sind mir bei meiner Arbeit aufgefallen.

* http://devguide.calconnect.org/CalDAV/Server-Implementations - Liste von CalDAV-Software
* https://github.com/caldav4j/caldav4j - Bibliothek, um CalDAV-Daten in Java zu parsen
* https://vdirsyncer.pimutils.org/en/stable/tutorial.html - Tool, um Daten von einem Server zum anderen zu kopieren

[{Tag ServerDienste Cloud}]