- chalblog - http://blog.is-a-geek.org -

Funambol: Die OpenSource Sync-Lösung für alle Mobiles auf Ubuntu Server

Funambol: Die OpenSource Sync-Lösung für alle Mobiles auf Ubuntu Server [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.

Funambol Server 1 [6]

Bild 1

Funambol Server 2 [7]

Bild 2

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

Funambol Server 3 [8]

Bild 3

 

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:

Funambol WM 1 [12]

Bild 4

Funambol WM 2 [13]

Bild 5

 

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:

Funambol Android 1 [16]

Bild 6

Funambol Android 2 [17]

Bild 7

 

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.

Funambol Thunderbird 1 [19]

Bild 8

Funambol Thunderbird 2 [20]

Bild 9

 

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!