{"id":1182,"date":"2012-04-26T14:51:17","date_gmt":"2012-04-26T12:51:17","guid":{"rendered":"http:\/\/www.daniel-ritter.de\/blog\/?p=1182"},"modified":"2013-01-31T14:36:28","modified_gmt":"2013-01-31T13:36:28","slug":"android-kontakte-und-kalender-ohne-google-syncen-mit-horde-4","status":"publish","type":"post","link":"https:\/\/www.daniel-ritter.de\/blog\/android-kontakte-und-kalender-ohne-google-syncen-mit-horde-4\/","title":{"rendered":"Android Kontakte und Kalender ohne Google syncen mit Horde 4"},"content":{"rendered":"<p><a href=\"https:\/\/www.daniel-ritter.de\/blog\/wp-content\/uploads\/2012\/04\/424px-Not-synchronized.svg_.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.daniel-ritter.de\/blog\/wp-content\/uploads\/2012\/04\/424px-Not-synchronized.svg_-212x300.png\" alt=\"\" title=\"424px-Not-synchronized.svg\" width=\"212\" height=\"300\" class=\"alignleft size-medium wp-image-1211\" srcset=\"https:\/\/www.daniel-ritter.de\/blog\/wp-content\/uploads\/2012\/04\/424px-Not-synchronized.svg_-212x300.png 212w, https:\/\/www.daniel-ritter.de\/blog\/wp-content\/uploads\/2012\/04\/424px-Not-synchronized.svg_.png 424w\" sizes=\"auto, (max-width: 212px) 100vw, 212px\" \/><\/a>Ich wollte meine pers\u00f6nlichen Daten nie Google geben und habe deswegen unter Android bisher auf das Syncen von Kalender und Adressbuch verzichtet. Als Notl\u00f6sung habe ich regelm\u00e4ssige Backups mit <a href=\"http:\/\/www.rerware.com\/\" title=\"MyBackup Pro\">My Backup Pro<\/a> angefertigt. Sch\u00f6n war das allerdings nicht. Da ich inzwischen auch ein Android-Tablet besitze wurde syncen noch wichtiger. Zum Gl\u00fcck l\u00e4sst sich das inzwischen komplett mit Open Source Software bewerkstelligen, falls die Android-Ger\u00e4te &#8222;Microsoft Active Sync&#8220; unterst\u00fctzen. Mit dieser Sync-Methode kann man seinen Androiden normalerweise an ein Exchange-Konto anbinden. Die kostenlose Groupware <A HREF=\"http:\/\/www.horde.org\">Horde<\/A> bietet seit Version 4 allerdings auch einen kompatiblen ActiveSync-Server an. Damit steht der Android Synchronisation \u00fcber mehrere Devices mit dem eigenen Server nichts mehr im Wege. <\/p>\n<p>Grundvoraussetung ist ein eigener Linux-Server mit Apache und MySQL.<\/p>\n<p><b>Zun\u00e4chst muss Horde 4 installiert werden:<\/b><\/p>\n<pre>\r\n# Die Paketierung von Horde 4 l\u00e4uft \u00fcber PEAR\r\napt-get install pear\r\n\r\n# PEAR auf den neuesten Stand bringen\r\npear upgrade pear\r\n\r\n# Den Horde-Channel dem lokalen Pear bekannt machen\r\npear channel-discover pear.horde.org\r\n\r\n# Horde Installationsverzeichnis konfigurieren\r\npear install horde\/horde_role\r\npear run-scripts horde\/horde_role\r\n\r\n# Hier wird nach einem Installationsverzeichnis f\u00fcr Horde 4 gefragt.\r\n# In meinem Beispiel ist es \/var\/www\/horde4\r\n\r\n# Horde installieren\r\npear install -a -B horde\/webmail\r\n\r\n# Horde Konfiguration umbenennen, um Horde zu aktivieren\r\ncd \/var\/www\/horde4\/config\r\ncp .\/conf.php.dist .\/conf.php\r\n\r\n# Dem Webserver Rechte auf alle Horde-Files geben\r\nchown -R www-data \/var\/www\/horde4\r\n\r\n<\/pre>\n<p><B>Datenbank f\u00fcr Horde in MySQL anlegen:<\/B><\/p>\n<p>Horde ben\u00f6tigt eine Datenbank in MySQL. In meinem Beispiel habe ich f\u00fcr Horde mit <a href=\"http:\/\/www.phpmyadmin.net\/\">PHPMyAdmin<\/a> den Benutzer &#8222;horde4&#8220; und die Datenbank &#8222;horde4&#8220; angelegt.<\/p>\n<p><b>Horde \u00fcber den Webbrowser konfigurieren:<\/b><\/p>\n<p>Horde kann nun \u00fcber den Webbrowser konfiguriert werden. Dazu \u00f6ffnet man im Browser http:\/\/www.meinserver.de\/horde4 . Da noch nicht konfiguriert wurde, welche Authentifizierung Horde nutzt, wird man direkt als Administrator der Installation eingeloggt.<\/p>\n<p><b>Datenbank konfigurieren:<\/B><br \/>\n(Administration -> Konfiguration -> Horde -> Database)<\/p>\n<p>Hier die Daten zur angelegten MySQL Datenbank eintragen:<br \/>\n<a href=\"https:\/\/www.daniel-ritter.de\/blog\/wp-content\/uploads\/2012\/04\/horde_db.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.daniel-ritter.de\/blog\/wp-content\/uploads\/2012\/04\/horde_db.png\" alt=\"\" title=\"horde_db\" width=\"690\" height=\"561\" class=\"alignleft size-full wp-image-1192\" srcset=\"https:\/\/www.daniel-ritter.de\/blog\/wp-content\/uploads\/2012\/04\/horde_db.png 690w, https:\/\/www.daniel-ritter.de\/blog\/wp-content\/uploads\/2012\/04\/horde_db-300x243.png 300w\" sizes=\"auto, (max-width: 690px) 100vw, 690px\" \/><\/a><\/p>\n<p><b>Horde Authentifizierung konfigurieren:<\/b><\/p>\n<p>Horde ben\u00f6tigt ein Backend um den Benutzernamen und das Passwort zu \u00fcberpr\u00fcfen. Horde bietet daf\u00fcr viele verschiedene M\u00f6glichkeiten an. Der Einfachheit halber kann man hier das Password-File benutzen (\/etc\/passwd). Der User muss dann nur im lokalen System angelegt werden:<\/p>\n<pre>\r\nadduser horde_user\r\n<\/pre>\n<p>(Administration -> Konfiguration -> Horde -> Authentication)<br \/>\n<a href=\"https:\/\/www.daniel-ritter.de\/blog\/wp-content\/uploads\/2012\/04\/horde_auth.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.daniel-ritter.de\/blog\/wp-content\/uploads\/2012\/04\/horde_auth.png\" alt=\"\" title=\"horde_auth\" width=\"843\" height=\"589\" class=\"alignleft size-full wp-image-1194\" srcset=\"https:\/\/www.daniel-ritter.de\/blog\/wp-content\/uploads\/2012\/04\/horde_auth.png 843w, https:\/\/www.daniel-ritter.de\/blog\/wp-content\/uploads\/2012\/04\/horde_auth-300x209.png 300w\" sizes=\"auto, (max-width: 843px) 100vw, 843px\" \/><\/a><\/p>\n<p><b>Datenbanktabellen f\u00fcr Horde anlegen:<\/b><\/p>\n<p>Horde konnte bisher die eigenen Datenbanktabellen in MySQL noch nicht anlegen, da wir ihm eben erst die MySQL-Benutzerdaten mitgeteilt haben. Um die Tabellen anzulegen besucht man die Hauptseite der Konfiguration und w\u00e4hlt &#8222;Alle DB-Schemata aktualisieren&#8220;, bis das Ganze so aussieht:<\/p>\n<p>(Administration -> Konfiguration)<\/p>\n<p><a href=\"https:\/\/www.daniel-ritter.de\/blog\/wp-content\/uploads\/2012\/04\/horde_aktuell.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.daniel-ritter.de\/blog\/wp-content\/uploads\/2012\/04\/horde_aktuell.png\" alt=\"\" title=\"horde_aktuell\" width=\"1041\" height=\"504\" class=\"alignleft size-full wp-image-1197\" srcset=\"https:\/\/www.daniel-ritter.de\/blog\/wp-content\/uploads\/2012\/04\/horde_aktuell.png 1041w, https:\/\/www.daniel-ritter.de\/blog\/wp-content\/uploads\/2012\/04\/horde_aktuell-300x145.png 300w, https:\/\/www.daniel-ritter.de\/blog\/wp-content\/uploads\/2012\/04\/horde_aktuell-1024x495.png 1024w\" sizes=\"auto, (max-width: 1041px) 100vw, 1041px\" \/><\/a><\/p>\n<p>Ab sofort sollte man sich in Horde mit dem Benutzer &#8222;horde_user&#8220; und dem beim adduser-Kommando gew\u00e4hlten Passwort einloggen k\u00f6nnen.<\/p>\n<p><b>Apache konfigurieren<\/b><\/p>\n<p>Damit Android an Horde syncen kann, muss noch ein Alias in die Apache-Konfiguration eingetragen werden:<\/p>\n<pre>\r\n#\/etc\/apache2\/httpd.conf\r\nAlias \/Microsoft-Server-ActiveSync \/var\/www\/horde4\/rpc.php\r\n<\/pre>\n<p>Das ist notwendig, da Active-Sync Clients automatisiert die URL \/Microsoft-Server-ActiveSync aufrufen, wenn sie mit ihrem Server connecten. Horde h\u00e4ndelt die Synchronisation allerdings \u00fcber die Datei rpc.php<\/p>\n<p>Danach muss Apache seine Konfiguration neu laden lassen:<\/p>\n<pre>\r\n\/etc\/init.d apache2 reload\r\n<\/pre>\n<p>Wenn alles geklappt hat, sollte man nun auf seinem Androiden Sync-Konten einrichten k\u00f6nnen:<\/p>\n<p><a href=\"https:\/\/www.daniel-ritter.de\/blog\/wp-content\/uploads\/2012\/04\/android_1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.daniel-ritter.de\/blog\/wp-content\/uploads\/2012\/04\/android_1.png\" alt=\"\" title=\"android_1\" width=\"320\" height=\"480\" class=\"alignleft size-full wp-image-1199\" srcset=\"https:\/\/www.daniel-ritter.de\/blog\/wp-content\/uploads\/2012\/04\/android_1.png 320w, https:\/\/www.daniel-ritter.de\/blog\/wp-content\/uploads\/2012\/04\/android_1-200x300.png 200w\" sizes=\"auto, (max-width: 320px) 100vw, 320px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/www.daniel-ritter.de\/blog\/wp-content\/uploads\/2012\/04\/android_2.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.daniel-ritter.de\/blog\/wp-content\/uploads\/2012\/04\/android_2.png\" alt=\"\" title=\"android_2\" width=\"320\" height=\"480\" class=\"alignleft size-full wp-image-1200\" srcset=\"https:\/\/www.daniel-ritter.de\/blog\/wp-content\/uploads\/2012\/04\/android_2.png 320w, https:\/\/www.daniel-ritter.de\/blog\/wp-content\/uploads\/2012\/04\/android_2-200x300.png 200w\" sizes=\"auto, (max-width: 320px) 100vw, 320px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/www.daniel-ritter.de\/blog\/wp-content\/uploads\/2012\/04\/android_3.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.daniel-ritter.de\/blog\/wp-content\/uploads\/2012\/04\/android_3.png\" alt=\"\" title=\"android_3\" width=\"320\" height=\"480\" class=\"alignleft size-full wp-image-1201\" srcset=\"https:\/\/www.daniel-ritter.de\/blog\/wp-content\/uploads\/2012\/04\/android_3.png 320w, https:\/\/www.daniel-ritter.de\/blog\/wp-content\/uploads\/2012\/04\/android_3-200x300.png 200w\" sizes=\"auto, (max-width: 320px) 100vw, 320px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/www.daniel-ritter.de\/blog\/wp-content\/uploads\/2012\/04\/android_4.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.daniel-ritter.de\/blog\/wp-content\/uploads\/2012\/04\/android_4.png\" alt=\"\" title=\"android_4\" width=\"320\" height=\"480\" class=\"alignleft size-full wp-image-1202\" srcset=\"https:\/\/www.daniel-ritter.de\/blog\/wp-content\/uploads\/2012\/04\/android_4.png 320w, https:\/\/www.daniel-ritter.de\/blog\/wp-content\/uploads\/2012\/04\/android_4-200x300.png 200w\" sizes=\"auto, (max-width: 320px) 100vw, 320px\" \/><\/a><\/p>\n<p>Mit diesem Setup Synce ich erfolgreich zwischen Horde, einem Sony Ericsson Xperia Mini Pro und einem Samsung Galaxy Tab.<\/p>\n<p><b>Fallstricke:<\/b><\/p>\n<ul>\n<li>Ich hatte zun\u00e4chst mit doppelten Kontakten und Kalendereintr\u00e4gen zu k\u00e4mpfen. Am Besten exportiert man zun\u00e4chst alle Kontakte und den Kalender aus dem Handy und importiert sie in Horde. Danach l\u00f6scht man alle Daten auf dem Handy und l\u00e4sst sie von Horde wieder in das angelegte Active-Sync-Konto auf dem handy schieben. Horde bietet viele verschiedene M\u00f6glichkeiten an Daten zu importieren. (Organisieren -> Kalender -> Import\/Export) und (Organisieren -> Adressbuch -> Import\/Export). Den Kalender bekommt man zum Beispiel aus Android gut mit der App &#8222;iCal Import\/Export&#8220; heraus. Mein SONY bot f\u00fcr den Export der Kontakte selbst die M\u00f6glichkeit an, diese in ein VCard-File zu exportieren. Aber auch hier gibt es sicher eine geeignete L\u00f6sung bei Google Play.\n<li>Die Horde Authentifizierung per \/etc\/passwd sollte wie oben beschrieben funktionieren. Ich habe sie allerdings nur der Einfachheit halber f\u00fcr dieses Howto gew\u00e4hlt und nicht getestet, da ich selbst Horde an meinem IMAP-Server authentifiziere.\n<li> Als ich angefangen habe die Syncerei zu testen, funktionierte es zuerst nur mit meinem Tablet und nicht mit dem Handy. Nach 1 Stunde frickeln war der Fehler gefunden: Android synct nicht, wenn der interne Speicher zu voll ist. Nachdem ich ein paar Apps auf die SD-Karte verschoben hatte, ging es sofort.\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Ich wollte meine pers\u00f6nlichen Daten nie Google geben und habe deswegen unter Android bisher auf das Syncen von Kalender und Adressbuch verzichtet. Als Notl\u00f6sung habe ich regelm\u00e4ssige Backups mit My Backup Pro angefertigt. Sch\u00f6n war das allerdings nicht. Da ich inzwischen auch ein Android-Tablet besitze wurde syncen noch wichtiger. Zum Gl\u00fcck l\u00e4sst sich das inzwischen [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[36],"tags":[161,162,160,159,158],"class_list":["post-1182","post","type-post","status-publish","format-standard","hentry","category-ubuntu","tag-activesync","tag-exchange","tag-horde","tag-ohne-google","tag-sync"],"_links":{"self":[{"href":"https:\/\/www.daniel-ritter.de\/blog\/wp-json\/wp\/v2\/posts\/1182","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.daniel-ritter.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.daniel-ritter.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.daniel-ritter.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.daniel-ritter.de\/blog\/wp-json\/wp\/v2\/comments?post=1182"}],"version-history":[{"count":23,"href":"https:\/\/www.daniel-ritter.de\/blog\/wp-json\/wp\/v2\/posts\/1182\/revisions"}],"predecessor-version":[{"id":1318,"href":"https:\/\/www.daniel-ritter.de\/blog\/wp-json\/wp\/v2\/posts\/1182\/revisions\/1318"}],"wp:attachment":[{"href":"https:\/\/www.daniel-ritter.de\/blog\/wp-json\/wp\/v2\/media?parent=1182"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.daniel-ritter.de\/blog\/wp-json\/wp\/v2\/categories?post=1182"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.daniel-ritter.de\/blog\/wp-json\/wp\/v2\/tags?post=1182"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}