[1]Funambol ist ein kostenloser und sehr einfach zu installierender Synchronisierungs-Server. Es existieren Clients für fast jede Plattform (Symbian, Android, Blackberry, Windows Mobile, Thunderbird+Lightning, Outlook, …) und Schnittstellen einer breiten Palette an Groupwares. Das Tutorial beschreibt die Installation auf Ubuntu und die Synchronisation mit Android, Windows Mobile und Thunderbird.
EDIT: Die Installation von Funambol 10 und das Upgrade von Funambol 9 werden hier [2] behandelt: http://blog.is-a-geek.org/opensource-sync-losung-funambol-10…-9-upgraden [2]
Will man die Kontakte und Termine seines Smartphones nicht unbedingt an Google oder andere Dienste senden ist Funambol mit seinen zahlreichen Clients die ideale Lösung. Nachdem man seinen Server Installiert und eingerichtet hat kann man problemlos die meisten Desktop-Apps mit so gut wie jedem Smartphone-Betriebssystem synchronisieren und hat dabei volle Kontrolle über seine Daten, da diese auf dem eigenen Server liegen.
Das Tutorial bezieht sich hauptsächlich auf einen Headless Ubuntu Server, kann jedoch 1:1 auf die Desktopedition angewandt werden. Eine Windows Edition des Servers ist ebenfalls hier [3] erhältlich.
Installation und Konfiguration des Servers
1. Download und Extract
Der Funambol-Server ist nicht in den Ubunturepositories und muss deshalb direkt von der Downloadseite [4] heruntergeladen werden.
Download 32 Bit Edition:
wget http://download.forge.objectweb.org/sync4j/funambol-9.0.0.bin
Download 64 Bit Edition:
wget http://download.forge.objectweb.org/sync4j/funambol-9.0.0-x64.bin
Ausführen der Installation:
sudo sh funambol-9.0.0.bin
oder für die 64 Bit Edition:
sudo sh funambol-9.0.0-x64.bin
Do you agree to the above license terms? [yes or no]
yes
Directory to extract Funambol [/opt] ?
Hier einfach „Enter“ drücken oder ein anderes Verzeichnis angeben. In diesem Tutorial verwende ich den Standardpfad.
Do you want to start the server? [yes or no]
no, da wir vorher noch diverse Einstellungen vornehmen müssen.
2. Java
Solltet ihr Java noch nicht installiert haben müsst ihr zuerst die Source-Liste anpassen:
sudo nano /etc/apt/sources.list
Dort aktiviert ihr die Partner-Repository (vorangestellte „#“ löschen und je nach Version „lucid“ ersetzen).
deb http://archive.canonical.com/ lucid partner
Wir speichern mit „Strg+o„, schließen nano mit „Strg+x“ und installieren Java.
sudo apt-get update && sudo aptitude install sun-java6-bin sun-java6-jre
Um die installierte Java anstatt der Gebündelten zu nutzen fügen wir folgende zwei Zeilen ganz am Anfang (nach #!/bin/sh) des Funambolscripts ein.
sudo nano /opt/Funambol/bin/funambol
export JAVA_HOME=”/usr/lib/jvm/java-6-sun” export JRE_HOME=$JAVA_HOME
Danach kann man die Funambol-Java löschen und setzt noch ein Symlink zur installierten Version.
sudo rm -rf /opt/Funambol/tools/jre* sudo ln -s /usr/lib/jvm/java-6-sun /opt/Funambol/tools/jre-1.6.0
3. MySQL anstatt Hypersonic nutzen
Der gesamte Punkt kann übersprungen werden wenn man die mitgelieferte Hypersonic Datenbank nutzen will.
sudo nano /opt/Funambol/bin/funambol
Um zu verhindern, dass Funambol versucht Hypersonic zu starten ändern wir folgenden Eintrag (ca Zeile 50) von „true“ auf „false“.
COMED=false
Dann laden wir uns noch den Connector herunter:
sudo wget http://blog.is-a-geek.org/downloads/mysql-connector-java-5.1.14-bin.jar -O /usr/lib/jvm/java-6-sun/jre/lib/ext/mysql-connector-java-5.1.14-bin.jar
Funambol bringen wir nun dazu MySQL zu nutzen, indem wir dieses File bearbeiten:
sudo nano /opt/Funambol/ds-server/install.properties
In Zeile 24 ändert man die Datenbank „hypersonic“ auf „mysql“.
dbms=mysql
Wichtig sind Zeile 55-59. Wie man hier sehen kann, passt man die MySQL-Connector Version an und ergänzt die Daten der zu verwendenden Datenbank.
# MySQL # ===== # jdbc.classpath=jdbc.classpath=/opt/Funambol/tools/jre-1.6.0/jre/lib/ext/mysql-connector-java-5.1.14-bin.jar jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost/<DATENBANKNAME> jdbc.user=<DATENBANKUSER> jdbc.password=<DATENBANKPASSWORT>
Die Zeilen 63-67 kommentieren wir aus (# davorsetzen):
#jdbc.classpath=../tools/hypersonic/lib/hsqldb.jar #jdbc.driver=org.hsqldb.jdbcDriver #jdbc.url=jdbc:hsqldb:hsql://localhost/funambol #jdbc.user=sa #jdbc.password=
Nun kann man Hypersonic löschen:
sudo rm -rf /opt/Funambol/tools/hypersonic
Die Datenbank muss vor dem Ausführen des Install-Scripts mit den hier eingefügten Daten erstellt werden.
4. Tomcat Port anpassen
Läuft im Hintergrund schon ein Tomcat Server, welcher an anderer Stelle mitinstalliert wurde, muss man den Port dieses Tomcat ändern.
sudo nano /opt/Funambol/tools/tomcat/conf/server.xml
In Zeile 68 kann man das Port anpassen.
<Connector port="8080" protocol="HTTP/1.1"
Wollt ihr auch von ausserhalb syncen, müsst ihr dieses Port am Router freigeben.
5. Installation ausführen
sudo /opt/Funambol/bin/install
Einfach alle fragen mit „yes“ beantworten.
Der Server wird nach dem Ausführen automatisch gestartet und man kann folgendermaßen auf das Webdemo zugreifen:
http://<SERVERIP>:<PORT>/funambol
6. Start/Stop Autostart
Um Funambol komfortabel starten und stoppen zu können legen wir das Startscript in den „init.d“ Ordner. Vorher muss man jedoch den Installationspfad anpassen, da der Server sonst nicht startet.
sudo nano /opt/Funambol/bin/funambol
Wir ersetzen diese Zeile:
FUNAMBOL_HOME=`(cd .. ; pwd)`
gegen diese (Wenn ihr nicht den Standardinstallpfad verwendet müsst ihr diese Zeile nach eurer Konfiguration anpassen.):
FUNAMBOL_HOME=`(cd /opt/Funambol ; pwd)`
Dann noch kopieren:
sudo cp /opt/Funambol/bin/funambol /etc/init.d/
Jetzt könnt ihr den Server mit dem Service-Befehl starten und stoppen.
sudo service funambol start/stop
Um Funambol automatisch starten zu lassen einfach folgenden Befehl ausführen (Funambolscript muss vorher in die „init.d“ kopiert werden):
sudo update-rc.d -f funambol defaults
7. Server mit anderem User starten
Da vieleicht einige von euch auch so paranoid sind wie ich, beschreibe ich hier wie ihr den Funambol-Server nicht als root starten müsst. Der Funambol-Service muss vorher gestoppt werden.
Als erstes legen wir uns einen User ohne Shell und Homeverzeichniss an:
sudo useradd -s /bin/false -d /bin/null <USERNAME>
Passwort zum User hinzufügen:
sudo passwd <USERNAME>
User als Besitzer des Funambol-Ordners definieren:
sudo chown -R <USERNAME> /opt/Funambol
Für die Aufgabe des Startens als anderer User habe ich mir ein eigenes Startscript erstellt, welches ihr herunterladen könnt:
sudo wget http://blog.is-a-geek.org/downloads/funambol /etc/init.d/
Ist in der „init.d“ schon ein gleichnamiges File vorhanden, kann es passieren, dass der Download als „funambol.1“ gespeichert wird (also kurz überprüfen).
Damit man das Script ausführen kann noch schnell Rechte ändern:
sudo chmod 755 /etc/init.d/funambol
Das Script gibt dem User vorübergehend Shell-Zugriff und entfernt diesen nach dem Start wieder.
Im Script muss der User den ihr verwenden wollt oder eben gerade für diesen Zweck erstellt habt eingetragen werden.
sudo nano /etc/init.d/funambol
Dort einfach diese Zeile anpassen:
# The Username to start Funambol USER="funambol"
Starten, Stoppen und automatisch starten funktioniert analog zum vorherigen Punkt.
Funamboladmin
Das Funamboladmin kann entweder auf einem Linuxcomputer mithilfe einer SSH-X-Weiterleitung gestartet werden oder man installiert einfach nur das Admininterface auf Windows. Damit es auf Windows 7 einwandfrei funktioniert, musste ich es als Administrator ausführen.
Download Funamboladmin für Windows [5]
Hat man einen XManager/Desktop installiert kann man das Admininterface direkt starten:
sudo sh /opt/Funambol/admin/bin/funamboladmin
1. Login und User anpassen
Serverip und Port verstehen sich von selbst. Der Standardbenutzername des gerade installierten Servers ist „admin“ und das Passwort „sa“ (Bild 1). Dieses Passwort sollte man aus Sicherheitsgründen sofort ändern. Dazu navigiert man zu „Users“ und klickt mit einem leeren Suchfeld auf „Suchen„. Jetzt sollte der „admin“ User erscheinen und man kann ihn ändern (Bild 2).
Achtung: Nach dem Ändern des Admins muss man sich neu einloggen oder den Server neu starten, wenn man keine Verbindung aufbauen kann..
Den User „guest“ sollte man ebenfalls aus Sicherheitsgründen löschen.
2. Server-URI und automatische Usergenerierung
Diese Einstellungen vollziehen wir im Reiter „Server settings“.
Die Server-URI ist anscheinend deshalb wichtig, weil Funambol diese hin und wieder als Weiterleitungslink benutzt. Sie sollte in dieser Form eingetragen werden (Bild 3):
http://<SERVERIP>:<PORT>/funambol/ds
Da User nicht automatisch generiert werden sollen, ändern wir in den Officer-Eintrag (Bild 3):
com/funambol/server/security/DBOfficer.xml
Clients
Meistens sind die Clients in den diversen App-Stores veraltet, deshalb ladet sie stets von der Herstellerseite [9] oder dort nicht enthaltene von memotoo [10].
Habt ihr den Server wie von mir beschrieben installiert, setzt man die „Server location“ nach diesem Schema:
http://<SERVERIP>:<PORT>/funambol/ds
1. Windows Mobile
Ich setze Funambol auf dem HD2 mit Windows Mobile 6.5 (Duttys Rom) ein auf welchem die Synchronisation der Kontakte und des Kalenders mit dem Client 9.0.1 für PocketPC problemlos funktioniert. Hier könnt ihr den Client herunterladen:
http://sourceforge.net/projects/funambol/files/winmobile/ [11]
Und noch zwei Screenshots:
2. Android
Da der Client im Market seit Version 9.0.3 auch schon die Kalendarsynchronisation beherrscht (einfach nach funambol suchen), könnt ihr diesen problemlos benutzen, oder ihr ladet den Neuesten von der Projektseite herunter:
http://sourceforge.net/projects/funambol/files/android/ [14]
Ich verwende diese Version mit Calendar-Sync:
http://blog.is-a-geek.org/downloads/funambol-android-sync-client-9.0.0.apk [15]
Und wieder zwei Screenshots:
3. Thunderbird und Lightning
Lightning ist der integrierbare Kalender für Thunderbird und kann ganz einfach als Addon unter „Extras“ und „Add-ons“ installiert werden.
Den Client habe ich bei http://www.memotoo.com/ [10] geladen (hier [18]), da dort scheinbar die einzig funktionierende Version für Thunderbird 3 erhältlich ist.
Auf die genaueren Einstellungen der einzelnen Clients werde ich hier nicht mehr weiter eingehen, da diese eigentlich selbsterklärend sind. Sollten dennoch Fragen auftreten, hinterlasst diese doch einfach als Kommentar und ich werde dann versuchen euch weiterzuhelfen.
Auch wenn ihr keine Fragen habt würde ich mich über euer Kommentar freuen 😉
Viel Spaß mit Funambol und ein großes Danke an alle Entwickler!