via Webserver auf MacOS X Server 10.5 gehostet (nur Publish & Subscribe) – soll in Rente geschickt werden • war ein Update von MacOS X Server 10.4: Calendar Server war dort von “nicht Apple like” bis “funktionierte garnicht”
Plugin für Webservices ✔ ab OS X 10.6 ActiveSync ✔ ✔ ✔ CalDAV (✔) Connector ✔ ✔ ✔ ab v4.0 * (✔) Sync-App Wer spricht Was? Synchronisation mit Standard Programm * CalDAV/iOS: ab 3.0 nur Publish/Subscribe, ab 4.0 volle Unterstützung
DiskImages (Linux) in VirtualBox • Zarafa (C++, MySQL) - sollte gute ActiveSync Unterstützung dank Z-Push haben 㱺 Termine bestätigen funktioniert nicht immer • Sogo (GNUStep & WebObjects/EOF Clone) - wird einmal eine super Lösung dank Samba 4 㱺 Termine bestätigen funktioniert noch weniger
gut: keine fertigen IPS-Pakete • DAViCal (Perl, Postgres) – Anleitungen für Z-Push vorhanden 㱺 Termine bestätigen funktioniert nicht immer • Radicale (Python, Datei-basiert) – radikal einfache Installation 㱺 nur Synchronisation, Rest kommt irgendwann
10.4 Bestandteil von MacOS X Server • aktuelle Version 3.2 in MacOS X Server 10.7 • Weiterentwicklung mind. 1 Person in Vollzeit (W. Sanchez) • Python Code, verwendet 3rd Party Module (u.a. Twisted wg. Python-GIL) • Datenbanken: Postgres, Oracle
Resourcen / Kontakte via LDAP möglich • Kerberos Anbindung möglich • Gruppen in Gruppen • beste Unterstützung für iCal und iOS Geräte 㱺 Apple Push Notification Service für iOS • Skalierbar ( > 10.000 Accounts )
cache SQLite SQLite File system Config plist Accounts XML LDAP Termine XML Delegation Gruppen in Gruppen Anhänge XMPP SMTP Push Notifications POP3 IMAP e-Mail Versand e-Mail Empfang Apple Push Slave 1 XML Slave Gruppen Gateways
• Python 2.6.4 Paket vom OS? 㱺 build.sh anpassen, wenn man eh schon dabei ist dann: • Postgres und memcachd werden vom Calendar Server gestartet? Dafür gibts SMF… 㱺 build.sh anpassen und OS Pakete benutzen (Postgres 8.1) sowie eigenes Paket für memcached erstellen (aktuell 1.4.13, OI 1.4.1)
pyOpenSSL/setup.py • tools/bootstrapdatabase.py anpassen wg. hardcoded Path zu Postgres Tools… • vor Aufruf von ./run sowie in SMF Script: export PYTHONPATH=$INSTALLPREFIX/lib/ python • Calendar Server startet…
$INSTALLPREFIX/lib/python/twistedcaldav/ stdconfig.py • caldav.plist anpassen, Pfad zu dieser wird beim Start übergeben • “Quick & Dirty”: accounts.xml für Logins / Resourcen verwenden, HTTPS deaktivieren
"accounts.dtd"> <accounts realm="ist-egal"> USERs RESOURCEs LOCATIONs GROUPs </accounts> • interne Verwaltung über (weltweit einmalige) UUIDs (z.B. d687db01-784d-5179-8dcd-da9be129424e ) … • ohne UUID ist der Calendar Server evtl. “zickig”
vorgehen •als “Accounttyp” CardDAV auswählen •Addressbuch wird melden das der Account nicht angelegt werden kann. Trotzdem “Erstellen” •Addressbuch beenden
(wurde neu angelegt) • <key>servername</key> <string>protocol://fqdn:port/principals/__uids__/guid</string> <key>username</key> <string>uid</string> • Speichern und Adressbuch “funktioniert” dann • geht auch “einfacher” über Eintrag im DNS System
•sonst Probleme das falsch verschlüsseltes Password an den LDAP Server gesendet wird… •Für Clients https enablen, http disablen, Root- Zertifikat auf Clients installieren für sicheres Login via Clear-Text
wird benutzt • Calendar Server verbindet sich als Client • mod_presence, mod_pubsub • Problem: Calendar Server hat eigene Vorstellungen davon welche “nodes” (Pfade) in mod_pubsub angelegt werden 㱺 ldavoll wurde in MacOS X Server 10.5 eingesetzt (verbindet sich ebenfalls als Client) . http://idavoll.ik.nu/
von Apple •wird an Mobile-Me Account gebunden •“One Click” Erstellung in MacOS X Server Applikation. Überpfrüfung ob Server gekauft wurde? •Ausdrücklich keine Aufforderung die Files auf OI Server zu kopieren