Differences between revisions 15 and 16
Revision 15 as of 2014-12-17 18:20:29
Size: 16097
Editor: RudolfReuter
Comment: added Baikal backup
Revision 16 as of 2015-03-17 15:51:46
Size: 655
Editor: spirea
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
##master-page:DockStarTemplate
#format wiki
#language de

||<tablestyle="float: right; margin: 0px;"style="padding: 0.5em; border: 0px none; font-size: 100%;"><<TableOfContents>> ||

== DAV sync mit Baikal ==
Ich möchte meine '''Adressen und Kalender Daten''' im Android Smartphone nicht aus der Hand geben. Deshalb suche ich schon lange nach einer praktikablen Backup/Sync. Lösung mit eigenem Server.

Die '''Kontakte''' kann man mit der eingebauten Export/Import Möglichkeit exportieren (*.vcf) und wieder importieren.

Die '''Kalender''' haben leider keine eingebaute Export/Import Möglichkeit. Da hilft aber die App '''iCal Import/Export 2.2 ''' weiter (*.ics).

In Jahr 2012 habe ich mit dem Programm '''Zarafa und Z-Push''' angefangen, siehe [[ActiveSyncZarafa]], da zu dieser Zeit für Android standardmäßig nur '''Active Sync''' zu Verfügung stand, und Zarafa mit '''Z-Push''' das kostenlos erlaubte. '''CalDAV und CardDAV''' freie Client Programme gab es zu dieser Zeit noch nicht für Android. Das hat zwar im Prinzip funktioniert, es gab aber immer wieder Probleme, und die Datensicherung war auch schwierig.

Bezüglich der Methode '''Active Sync''' habe ich sonst nichts brauchbares gefunden.

Ein weiterer Versuch wurde mit '''Owncloud 6''' gestartet. Das war auch nicht zuverlässig.

Dann wurde der CalDAV und CardDAV Server '''Radicale''' (version 0.9) ausprobiert. Das war auch nicht zuverlässig.

'''Baikal''' ist ein kleiner, einfacher '''CardDAV / CalDAV Server''' (basierend auf '''SabreDAV'''), der nicht mehr braucht als eine normale PHP Installation mit Datenbankanbindung (SQLite3 oder MySQL). Da haben erste sync Versuche mit gängigen Clients funktioniert. Nur der SOGo Connector unter Thunderbird hat nicht funktioniert.

 * Die aktuelle Version kann man über den Link '''DAVdroid releases''' erfahren.
Der benutze '''Android Kalender Client''' ist '''DAVdroid''' (von bitfire web engineering).

Der benutze '''Android Kontakte Client''' ist '''DAVdroid''' (von bitfire web engineering).

/!\ Wichtig zu wissen: '''Der Server hat immer recht'''. Wenn man also bei einem '''Client''' einen Kalender Eintrag, oder einen Kontakt löscht, wird bei '''nächster sync Gelegenheit''' bei allen verbundenen Clients das gleiche gemacht. Also ist es empfehlenswert, vor größeren '''Änderungen''' auf allen Clients eine '''Datensicherung''' zu machen.
 

=== Baikal Installation ===
Nach ersten Versuchen mit dem '''Flat und Regular''' Paket (Version .0.2.7), die irgendwie unvollständig waren, habe ich mir die Github Version installiert. Bei der Github Seite war auch eine gute Anleitung mit dabei. Der Baikal Server wurde als '''virtual host''' bei dem Apache2 Server Web eingebunden. Bei der Test Installation wurde aus dem Github das Master-Archiv heruntergeladen und entpackt. Dann muss noch der '''composer''' installiert werden (PHP Versionsverwaltung). Um '''git''' zu nutzen waren folgende Schritte notwendig:
{{{
# Installiere PHP5 Pakete
# php5-sqlite

# source code holen
$ cd /var/www
$ sudo git clone https://github.com/jeromeschneider/Baikal.git baikal

# download composer
$ cd baikal
$ curl -sS https://getcomposer.org/installer | php
Composer successfully installed to: /var/www/baikal/composer.phar
Use it: php composer.phar

# installiere
$ sudo php composer.phar install
Loading composer repositories with package information
Installing dependencies (including require-dev)
  - Installing sabre/vobject (2.1.5)
    Downloading: 100%

  - Installing sabre/dav (1.8.10)
    Downloading: 100%

Writing lock file
Generating autoload files

# Rechte setzen
$ cd /var/www
$ sudo chown -R www-data:www-data baikal

# Erlaube den Gruppen Mitgliedern ein "cd" in die Ordner zu machen.
$ sudo find baikal -type d -print0 | xargs -0 sudo chmod 775

# Erlaube der Gruppe die Files zu ändern.
$ sudo chmod -R g+w baikal

# Prüfe, ob apache2 module "rewrite" enabled ist
$ ls /etc/apache2/mods-enabled/rew*
/etc/apache2/mods-enabled/rewrite.load

  # wenn nicht vorhanden, dann:
  $ sudo a2enmod rewrite
  $ sudo service apache2 restart

# Apache2 virtual host
$ cd /etc/apache2/sites-available
$ sudo ln -s /var/www/baikal/Specific/virtualhosts/baikal.apache2
# In baikal.apache2, ersetze die Referenzen zu dav.mydomain.com mit dem eigenen domain name (baikal)
    DocumentRoot /var/www/baikal/html
    ServerName baikal
    <Directory "/var/www/baikal/html">

# Aktiviere den neuen virtual host
# legt einen Link an, in sites-enabled zu sites-available/baikal.apache2
$ sudo a2ensite baikal.apache2

# Web Server Apache2 neu starten
$ sudo service apache2 reload

# sperre Ordner "baikal" gegen Anzeige
$ touch /var/www/baikal/index.html
}}}
Dann kann man mit dem administrieren anfangen:
{{{
# Web Browser auf Adresse <server-IP>/baikal/html
# Man sieht jetzt:
  Baïkal Install Tool is locked.
  To unlock it, create (or re-create if it exists already) an empty file named ENABLE_INSTALL
  (uppercase, no file extension) in the Specific/ folder of Baïkal.

$ cd /var/www/baikal/html/admin
$ touch Specific/ENABLE_INSTALL

# Lade die Web Seite neu, jetzt erscheint die Administration Maske
  Baikal Install tool

# "admin" Passwort eingeben
}}}
Es wurde nicht die '''DAV.xxx Subdomain''' verwendet, sondern der normale Pfad, um beim testen flexibler zu sein.

=== Baikal administrieren ===
'''Baikal''' kann sehr schön mit einer '''Web-Maske''' administriert werden. Man kann '''keine''' Kalender oder Kontakt Daten ändern. Was man ändern/einrichten kann ist:
 * Benutzer anlegen
 * Spezielle Kalender und Kontakt-Listen (andere als '''default''') anlegen.
 * Einstellungen ändern

Um an die Administration Web-Maske zu kommen, muss man folgende URL im Web Browser eingeben:
{{{
http(s)://<SERVER>/baikal/html/admin
}}}
Dann erscheint das '''Dashboard''' (Armaturenbrett) mit '''Informationen''' zu allen wichtigen Zahlen.

Weitere Web-Masken sind:
 * Users and resources - Benutzer, Kalender und Kontakt Listen anlegen
 * Settings - Baikal Einstellungen
 * System settings - Baikal System Einstellungen, z.B. Datenbank (MySQL oder SQLite)

=== Kontakte, Bilder ===
Wenn unter Android einem Kontakt ein '''Bild''' hinzugefügt werden soll, ist es sinnvoll, es '''vor dem hinzufügen''' zum Kontakt, mit einem Bild Bearbeitung Programm auf 96 x 96 Pixel '''zu beschneiden'''. Sonst gibt es ein '''Problem''' bei der '''Synchronisation''' mit Baikal.

=== Sync Handhabung ===
Eine aktuelle '''Datensicherung''' ist sehr wichtig, da bei der Synchronisation sehr schnell etwas verloren gehen kann.
 1. Nach dem Installieren von Baikal ist die Datenbank erst einmal leer.
 1. Beim Client mit den meisten und aktuellen Daten macht man eine Datensicherung in einen *.vcf und *.ics File.
 1. Dann wird auf diesem Client ein CalDAV und CardDAV Konto für den '''Baikal Server''' eingerichtet.
 1. In dieses Konto importiert man dann die Datensicherung. Diese Daten werden normal sofort auf den Server synchronisiert.
 1. Jetzt richtet man am zweiten und folgenden Clients ein CalDAV und CardDAV Konto ein. Entweder erfolgt die Daten Synchronisierung automatisch, oder man muss sie per Hand anstoßen.
 1. Wenn ich jetzt auf einem Client einen Daten Eintrag ändere, hinzufüge oder lösche, wird das sofort, oder nach einem voreingestellten Takt auf den Server synchronisiert, und dann an die anderen Clients per Abruf verteilt.

=== Android Clients ===
Es gibt einige '''CalDAV und CardDAV''' Client Programme in dem '''Play Store'''. Aber es gibt nur wenige freie Programme.
 * '''DAVdroid''', von bitfire web engineering, kostenlose Version 1.0, CalDAV und CardDAV (Notizen inklusive).
  * Um die kostenlose Version zu bekommen, muss man zuerst '''F-Droid''' installieren, siehe Link.
   * Das kann nur installiert werden mit Android->Einstellungen->Sicherheit/Unbekannte Quellen, Haken setzen.
   * Mit '''ES Datei Explorer oder !AndExplorer''' die heruntergeladene Datei '''FDroid.apk''' kurz antippen, und '''Installieren''' antippen.
   * Mit F-Droid kann man dann DAVdroid installieren.
   * Danach den '''Haken''' bei '''Unbekannte Quellen''' wieder entfernen.
  * Einstellung->Server (Name: baikal-card): http://192.168.17.72/baikal/html/cal.php/ (calendar/reuterru/)
  * Einstellung->Server (Name: gmail Adresse): http://192.168.17.72/baikal/html/card.php/ (addressbooks/reuterru/)
  * Benutzername: reuterru
  * Passwort: ***
 * CardDAV-Sync free beta, von Marten Gajda
  * in der freien Versionen werden leider keine Firmen Namen und Notizen (notes) synchronisiert.


=== Mac OS X Clients ===
 * Kontakte Version 8.0, ohne SSL
  * Einstellungen->Account->
   * Benutzername: reuterru
   * Kennwort: ***
   * Serveradresse: 192.168.17.72/baikal/html/card.php/principals/reuterru/
  * Synch: automatisch (vermutlich nach jeder Änderung)
 * Kalender Version 7.0, ohne SSL
  * Accounttyp: Fortgeschritten
  * Benutzername: reuterru
  * Kennwort: ***
  * Serveradresse: http://192.168.17.72/baikal/html/cal.php/principals/reuterru/


=== Daten Export ===
'''SabreDAV''' erlaubt mit einem '''plugin''' den Export aller '''Calendar und Contact Daten''' in einen '''xxx.ics oder xxx.vcf''' File. Unglücklicherweise ist das noch nicht integriert in '''Baikal''' (version 0.2.7), aber es kann leicht nachgerüstet werden, wie folgt:
{{{
# für die Calendar Daten:
# Editiere file cal.php, entweder in baikal/cal.php, oder in baikal/html/cal.php
# Füge eine Zeile ein, hinter den anderen plugins, in der Nähe des File Endes.
$server->addPlugin(new \Sabre\CalDAV\ICSExportPlugin());

# für die Contact Daten:
# Editiere file card.php, entweder in baikal/card.php, oder in baikal/html/card.php
# Füge eine Zeile ein, hinter den anderen plugins, in der Nähe des File Endes.
$server->addPlugin(new \Sabre\CardDAV\VCFExportPlugin());

# exportiere Calendar Daten, via web browser:
http(s)://<SERVER>/baikal/html/cal.php/calendars/<USER>/default?export
# benenne den file Namen: kalender_<USER>.ics

# exportiere Contact Daten, via web browser:
http(s)://<SERVER>/baikal/html/card.php/addressbooks/<USER>/default?export
# benenne den file Namen: kontakte_<USER>.vcf
}}}
Um das in der Praxis einfacher zu machen, ein '''Beispiel Shell Script''' zur '''Datensicherung'''. Das '''Benutzer Passwort''' muss jeweils per Hand eingegeben werden. Der Shell Script muss in dem Ordner der Datensicherung sein, und dort aufgerufen werden.
{{{
# DO NOT COPY THIS LINE
#!/bin/bash
# 2014-12-17 RudolfReuter
# backup Baikal addressbook and calendar
USER=reuterru
URL_A=http://192.168.17.72/baikal/html/card.php/addressbooks/$USER/default?export
URL_C=http://192.168.17.72/baikal/html/cal.php/calendars/$USER/default?export
PATH_A=contacts_$USER'_'$(date "+%Y-%m-%d_%H-%M").vcf
PATH_C=calendar_$USER'_'$(date "+%Y-%m-%d_%H-%M").ics
wget --user=$USER --ask-password $URL_A -O $PATH_A
wget --user=$USER --ask-password $URL_C -O $PATH_C

USER=reuter.ingeb
URL_A=http://192.168.17.72/baikal/html/card.php/addressbooks/$USER/default?export
URL_C=http://192.168.17.72/baikal/html/cal.php/calendars/$USER/default?export
PATH_A=contacts_$USER'_'$(date "+%Y-%m-%d_%H-%M").vcf
PATH_C=calendar_$USER'_'$(date "+%Y-%m-%d_%H-%M").ics
wget --user=$USER --ask-password $URL_A -O $PATH_A
wget --user=$USER --ask-password $URL_C -O $PATH_C

echo Job done
}}}

=== Troubleshooting ===
Nach der Installation ist der erste Test, der Aufruf der Basisseite:
{{{
# Web Browser auf Adresse <server-IP>/baikal/html
# Man sieht jetzt:
  Baïkal is running allright.
}}}

Um sich den Inhalt der Datenbank anzusehen, kann man sich '''phpliteadmin''' installieren, '''download''' siehe Links. Neben dem Programm Archiv sollte man sich auch die '''Themen herunterladen''' (CSS). Ich habe das Thema `default/phpliteadmin.css` benutzt.

Im '''Konfiguration File''' ist die Voreinstallung vom Password "admin". Da der File `phpliteadmin.config.sample.php` unter Windows erstellt wurde, sollte man das "End Of Line" Zeichen mit '''fromdos''' umstellen, zu installieren mit:
{{{
$ sudo apt-get install tofrodos

$ fromdos phpliteadmin.config.php

# Edit "password" und "directory"
  $password = '***';
  $directory = 'baikal/Specific/db';

# kopiere file phpliteadmin.php, phpliteadmin.css, und phpliteadmin.config.php nach /var/www/

# passe den Benutzer an:
$ sudo chown www-data:www-data /var/www/php*

# Aufruf in Web Browser: SERVER/phpliteadmin.php
}}}
Zur Not kann man damit auch '''Inhalte editieren'''.

Eine interesante Information ist die '''Anzahl der Kontakte''' in den '''einzelnen Adressbüchern'''. Das kann man in der Baikal Administrator Seite leider nicht sehen. Dort gibt es nur eine Gesamtsumme der Kontakte, was bei mehreren Adressbüchern keine Kontrolle erlaubt.

Wenn man in '''Adressen sucht''', klickt man die Tabelle '''cards''' an, und sucht dann im Feld '''carddata''' mit '''LIKE %...%''' nach dem Text, zum Beispiel "Ursula" (im Suchfeld ohne die Hochstriche).
 

=== Links ===
'''Übersicht Groupware'''
 * [[https://wiki.debian.org/Groupware|Groupware Übersicht von Debian]]
 * [[http://caldav.calconnect.org/implementations/servers.html|CalDAV Server Übersicht]]
'''DAV Server'''
 * [[http://baikal-server.com/|Baikal, version 0.2.7]]
  * [[https://github.com/jeromeschneider/Baikal|Baikal github]]
  * [[https://thomas-leister.de/allgemein/carddav-caldav-mit-baikal-auf-dem-eigenen-server-php-mysql/|Blog zu Baikal]]
  * [[https://getcomposer.org/download/|Composer download]]
  * [[https://wiki.archlinux.org/index.php/WebDAV|Authentication]]
  * [[http://blog.christian-stankowic.de/?p=5609|2013-10-28 Blog: Kontakte- und Kalender-Synchronisation mit Baikal auf eigenem Webserver]]
  * [[https://thomas-leister.de/allgemein/carddav-caldav-mit-baikal-auf-dem-eigenen-server-php-mysql/|2013-06-19 Blog: Eigener CardDAV- und CalDAV Server mit Baikal (PHP, MySQL)]]
 * [[http://sabre.io/dav/|SabreDAV - WebDAV framework for PHP. Use it to create WebDAV, CalDAV and CardDAV servers]]
  * [[http://sabre.io/dav/upgrading/|SabreDAV upgrading ]]
 * [[http://radicale.org/|DAV server Radicale for Linux]]
 * [[http://trac.calendarserver.org/|Calendar Contact server (Python)]]
  * [[http://trac.calendarserver.org/wiki/QuickStart|Quickstart Info]]
'''DAV Clients'''
 * [[https://f-droid.org/|F-Droid is an installable catalogue of FOSS (Free and Open Source Software) applications]]
 * [[https://play.google.com/store/search?q=davdroid&c=apps&hl=de|Android DAVdroid, für CalDAV und CardDAV]]
 * [[https://github.com/rfc2822/davdroid/releases/|DAVdroid releases, 2014-10-02 Version 0.6.3]]
 * [[http://davdroid.bitfire.at/configuration|DAVdroid, configuration]]
 * [[https://github.com/gggard/AndroidCaldavSyncAdapater|Github of Android CalDAV sync Adapter]]
 * [[https://play.google.com/store/apps/details?id=org.dmfs.carddav.sync&hl=de|CardDAV-Sync free beta v. 0.4.5, Marten Gajda]]
 * [[http://dmfs.org/carddav/|CardDAV-Sync v. 0.4.5, Marten Gajda]]
'''Groupware Server'''
 * [[http://www.horde.org/apps/groupware|horde groupware, DAV Sync]]
 * [[http://www.linuxforen.de/forums/showpost.php?s=bc386334dd3c6e68d1aaaeebc2e66420&p=1806351&postcount=17|Owncloud Erfahrung, Thunderbird/Sogo]]
 * [[http://de.wikipedia.org/wiki/Zarafa_%28Software%29|Wikipedia, Zarafa]]
'''Tools'''
 * [[https://code.google.com/p/phpliteadmin/wiki/DownloadLinks?tm=2|phpliteadmin download]]
 * [[http://marcowue.wordpress.com/2013/10/16/howto-eigener-kalender-von-samsung-androids-mit-google-kalender-synchronisieren/|Android Kalender exportieren/importieren]]
 * [[https://support.google.com/calendar/answer/37111?hl=de|Google support, Kalender exportieren]]


=== List of pages in this category: ===

<<FullSearch(category:CategoryAndroid)>>

-- RudolfReuter <<DateTime(2014-06-26T07:48:16Z)>>

----

Go back to CategoryAndroid or FrontPage ; KontaktEmail (ContactEmail)
Andres just what you can call my wife and i doesn't appreciate it at just about all. She currently lives in Guam and her [[http://www.newsweek.com/search/site/family+loves|family loves]] it. Software developing already been my normal work for a while but I plan on changing this kind of. Her husband doesn't like it the way she does but what she really likes doing is modelling railways but she's been taking on new things lately. He's not godd at design but you might want to check his website: http://scriptogr.am/portablevaporizermaid<<BR>><<BR>>
<<BR>><<BR>>
Also visit my page :: [[http://scriptogr.am/portablevaporizermaid|http://scriptogr.am/]]

Andres just what you can call my wife and i doesn't appreciate it at just about all. She currently lives in Guam and her family loves it. Software developing already been my normal work for a while but I plan on changing this kind of. Her husband doesn't like it the way she does but what she really likes doing is modelling railways but she's been taking on new things lately. He's not godd at design but you might want to check his website: http://scriptogr.am/portablevaporizermaid<<BR>><<BR>>

Also visit my page :: http://scriptogr.am/

DAVsyncBaikal (last edited 2019-01-28 10:49:49 by RudolfReuter)