Mal wieder das alte Leid, Syncronisation.
Heutige Episode: Calendar Sync und Contact Sync.
So etwas wie iCloud oder Google Calendar bzw Google Contacts, aber die Daten bitte beim Besitzer lassen.
Clients: Android Telefon, Linux& Mac Desktop
(theoretisch sollte auch iPhone möglich sein, habe ich allerdings mangels Gerät nicht getestet)
Insgesammt kommen zwei offene Standarts zur Anwendung. Es wird Caldav bzw. Carddav verwendet.
Als Serversoftware ist lediglich ein Stück PHP Code mit Datenbank (Mysql) nötig ( Sabredav ) (sql-lite ist alternativ auch möglich).
Das ganze ist Serverseitig relativ anspruchslos, im Prinzip braucht es nur php und mysql, daher sollte die Software bereits auf einem simplen und günstigen Webhostingpaket laufen.
Auf den Clients kommt unterschiedliche Software zum einsatz:
Der Mac bringt die Software bereits von Hause aus mit (iCal und Adressbuch),
Unter Linux verwende ich Thunderbird mit lightning für den Kalender, und KAddresssBook (KDE) für Kontakte.
Auf dem Android verwende ich CalDav und CardDav Sync Adapter ( ja die kosten ein paar Euro, funktionieren bei mir aber wirklich sehr gut).
Aber zurück zum Server
Das Setup gestaltet sich sehr simpel.
Erst mal Runterladen der PHP dateien, zu finden hier.
Danach kanns losgehen:
Im SabreDav-Archiv befindet sich ein Ordner mit Namen “examples”, in dem die Datein calendarserver.php und addressbookserver.php. Diese am besten in den Hauptordner kopieren, und dort anpassen.
Die Anpassungen sind sehr minimal:
date_default_timezone_set('Canada/Eastern'); |
wird zu
date_default_timezone_set('Europe/Berlin'); |
.
// $baseUri = '/'; |
eventuell einkommentieren und an die eigenen bedürfnisse anpassen.
Selbiges gilt für
$pdo = new PDO('sqlite:data/db.sqlite'); |
was bei mir zu
$pdo = new PDO('mysql:dbname=HIER_NAME_DER_DB_EINSETZEN','user', 'passwort'); |
wurde.
Das wars auch quasi schon, lediglich noch die SQL-init scripts aus dem examples/sql auf die Datenbank loslassen (*.addressbook.sql , *.calendars.sql , *.locks.sql, *.principals.sql, *.users.sql (natürlich nur entweder mysql. oder sqllite))
Und schon ist der Server teil einsatzbereit, aber ACHTUNG ! mit dem users.sql script kam ein Benutzer mit Namen admin und passwort admin in die Datenbank, dieser sollte gelöscht und durch einen eigenen User ersetzt werden.
Dazu die vorhandene Zeile in der Users-Tabelle löschen, und eine neue Anlegen.
Die Spalten sind klar, wenn man von digesta1 absieht.
Bei digesta1 handelt es sich um eine “Passwortrepräsentation” in folgender Form:
md5('username:realm:password'); |
Wobei username und password zu ersetzten sind, realm ist standartmäßig auf “SabreDAV” gesetzt, entscheident dafür ist die folgende Zeile in addressbookserver.php / calendarserver.php:
$server->addPlugin(new Sabre_DAV_Auth_Plugin($authBackend,'SabreDAV')); |
Hier kann man auch das Realm ändern.
Das wars, viel Spaß beim syncen
Pingback: [ Thunderbird Addon ] Kontaktsync mit dem Donnervogel | ohneKontur - der Blog