Difference between revisions of "Funambol"
(Start script for Funambol) |
|||
Line 140: | Line 140: | ||
MySQL Engine : Also in ''/opt/Funambol/bin/funambol'' change ''COMED=true'' to ''COMED=false'' somewhere around line 44 while you're at it (this prevents the start/stop script from trying to start or stop the Hypersonic database, since we’re going to use MySQL). After that, you can ''rm -rf /opt/Funambol/tools/hypersonic'' to save yet a bit more disk space if you want. | MySQL Engine : Also in ''/opt/Funambol/bin/funambol'' change ''COMED=true'' to ''COMED=false'' somewhere around line 44 while you're at it (this prevents the start/stop script from trying to start or stop the Hypersonic database, since we’re going to use MySQL). After that, you can ''rm -rf /opt/Funambol/tools/hypersonic'' to save yet a bit more disk space if you want. | ||
+ | |||
+ | == Auto start Funambol on startup == | ||
+ | |||
+ | To make Funambol start automagically, create /etc/init.d/funambol with the following content (and chmod 755 /etc/init.d/funambol afterwards) : | ||
+ | |||
+ | #! /bin/bash | ||
+ | # | ||
+ | # funambol Start the funambol services | ||
+ | # | ||
+ | NAME="funambol" | ||
+ | FUNAMBOL_HOME=/opt/Funambol/bin | ||
+ | FUNAMBOL_USER=root | ||
+ | case "$1" in | ||
+ | start) | ||
+ | echo -ne "Starting $NAME.\n" | ||
+ | cd $FUNAMBOL_HOME | ||
+ | /bin/su $FUNAMBOL_USER funambol start | ||
+ | ;; | ||
+ | |||
+ | stop) | ||
+ | echo -ne "Stopping $NAME.\n" | ||
+ | cd $FUNAMBOL_HOME | ||
+ | /bin/su $FUNAMBOL_USER funambol stop | ||
+ | ;; | ||
+ | |||
+ | *) | ||
+ | echo "Usage: /etc/init.d/funambol {start|stop}" | ||
+ | exit 1 | ||
+ | ;; | ||
+ | esac | ||
+ | exit 0 | ||
== Configuring the Calendar Sync connection == | == Configuring the Calendar Sync connection == |
Revision as of 02:20, 5 May 2010
Introduction
This is a very preliminary writeup on the installation of Funambol on an SME8b5 installation for use with Sogo
Use only for testing on non production machines and when you find an error, please correct it right here :-)
Download & Install Funambol
Goto https://www.forge.funambol.org/DomainHome.html to download Funambol 8.0. The latest GNU/Linux 32bit funambol server is 8.5, but this has not been confirmed yet for use with SOGO.
cd /opt wget http://download.forge.objectweb.org/sync4j/funambol-8.0.2.bin
Run the binary to install:
chmod +x funambol-8.0.2.bin ./funambol-8.0.2.bin
Agree on the licence terms and accept /opt as the directory to extract Funambol. This will install it in:
/opt/Funambol
At the end of the install, answer NO on the question if you want to start the server.
Download Apache Commons components
Download components from here
http://commons.apache.org/
Copy components in the following directory
cd /opt/Funambol/tools/tomcat/lib/
collections (v3.2.1)
wget http://www.apache.org/dist/commons/collections/binaries/commons-collections-3.2.1-bin.zip unzip commons-collections-3.2.1-bin.zip cp -p commons-collections-3.2.1/commons-collections-3.2.1.jar /opt/Funambol/tools/tomcat/lib/ rm -rf commons-collections-3.2.1
confguration (v1.6)
wget http://www.apache.org/dist/commons/configuration/binaries/commons-configuration-1.6.zip unzip commons-configuration-1.6.zip cp -p commons-configuration-1.6/commons-configuration-1.6.jar /opt/Funambol/tools/tomcat/lib/ rm -rf commons-configuration-1.6
logging (v1.1)
wget http://www.apache.org/dist/commons/logging/binaries/commons-logging-1.1.1-bin.zip unzip commons-logging-1.1.1-bin.zip cp -p commons-logging-1.1.1/commons-logging-1.1.1.jar /opt/Funambol/tools/tomcat/lib/ rm -rf commons-logging-1.1.1
lang (v2.4)
wget http://www.apache.org/dist/commons/lang/binaries/commons-lang-2.5-bin.zip unzip commons-lang-2.5-bin.zip cp -p commons-lang-2.5/commons-lang-2.5.jar /opt/Funambol/tools/tomcat/lib/ rm -rf commons-lang-2.5
json-simple
cd /opt/Funambol/tools/tomcat/lib/ wget http://json-simple.googlecode.com/files/json_simple.jar
Install Funambol SOGO Connector
Check here: http://www.scalableogo.org/english/downloads/backend.html for the latest version of the Funambol SOGo Connector
cd /opt/Funambol/ds-server/modules wget http://www.scalableogo.org/uploads/Funambol/funambol-sogo-1.0.7.s4j
Then, open the /opt/Funambol/ds-server/install.properties file
vim /opt/Funambol/ds-server/install.properties
and add funambol-sogo-1.0.7 at the end of the "modules-to-install" line.
Install MySQL JDBC driver
Funambol by installation defaults to use the Hypersonic DB engine, but SOGO requires the use of MySQL.
Goto http://dev.mysql.com/downloads/connector/j/5.0.html to download the JDBC driver for MySQL. The current version is mysql-connector-java-5.0.8.zip. Download it to /opt.
cd /opt unzip mysql-connector-java-5.0.8.zip mkdir -p /opt/Funambol/tools/mysql/lib cp mysql-connector-java-5.0.8/mysql-connector-java-5.0.8-bin.jar /opt/Funambol/tools/mysql/lib rm -rf mysql-connector-java-5.0.8
Edit the /opt/Funambol/ds-server/install.properties file to change the Funambol DB connector to MySQL.
vim /opt/Funambol/ds-server/install.properties
Comment out the existing jdbc driver for Hypersonic and add:
# MySQL # ===== jdbc.classpath=../tools/mysql/lib/mysql-connector-java-5.0.8-bin.jar jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/funambol?characterEncoding=UTF-8 jdbc.user=funambol jdbc.password=yourpassword
Creating MYSQL user and database
To create the Funambol Database, you'll need to perform each of the following steps:
mysqladmin create funambol --default-character-set=utf8 mysql -e "grant all privileges on funambol.* to funambol@localhost identified by 'yourpassword'" mysql -e "flush privileges"
Access MySQL from the local network
To use the MySQL database you will need to run a script to make port 3306 available to Funambol.
/sbin/e-smith/config setprop mysqld LocalNetworkingOnly no /sbin/e-smith/expand-template /etc/my.cnf /etc/rc.d/rc7.d/S50mysqld restart
Install Modules in Funambol
Start the Funambol server using:
/opt/Funambol/bin/funambol start
Next, install the Funambol SOGo Connector within Funambol server by issuing the following commands :
cd /opt/Funambol/ ./bin/install-modules
Answer 'yes' to all questions.
Note the default install using the Hypersonic DB engine.
See also:
https://core.forge.funambol.org/wiki/HOWTOFunambolMySQLFedora10
MySQL Engine : Also in /opt/Funambol/bin/funambol change COMED=true to COMED=false somewhere around line 44 while you're at it (this prevents the start/stop script from trying to start or stop the Hypersonic database, since we’re going to use MySQL). After that, you can rm -rf /opt/Funambol/tools/hypersonic to save yet a bit more disk space if you want.
Auto start Funambol on startup
To make Funambol start automagically, create /etc/init.d/funambol with the following content (and chmod 755 /etc/init.d/funambol afterwards) :
#! /bin/bash # # funambol Start the funambol services # NAME="funambol" FUNAMBOL_HOME=/opt/Funambol/bin FUNAMBOL_USER=root case "$1" in start) echo -ne "Starting $NAME.\n" cd $FUNAMBOL_HOME /bin/su $FUNAMBOL_USER funambol start ;;
stop) echo -ne "Stopping $NAME.\n" cd $FUNAMBOL_HOME /bin/su $FUNAMBOL_USER funambol stop ;;
*) echo "Usage: /etc/init.d/funambol {start|stop}" exit 1 ;; esac exit 0
Configuring the Calendar Sync connection
mkdir -p /etc/e-smith/templates/opt/Funambol/config/sogo/sogo/sogo/sogo-cal.xml cd /etc/e-smith/templates/opt/Funambol/config/sogo/sogo/sogo/sogo-cal.xml touch template-begin vim sogo-cal.xml expand-template /opt/Funambol/config/sogo/sogo/sogo/sogo-cal.xml
Note the $sogod{'DbPassword'} in the scripts below. This pulls in the the database password that SOGO uses to access the MySQL database.
<?xml version="1.0" encoding="UTF-8"?> <java version="1.5.0_10" class="java.beans.XMLDecoder"> <object class="ca.inverse.sogo.engine.source.SOGoSyncSource"> <void property="databasePassword"> <string>{$sogod{'DbPassword'}}</string> </void> <void property="databaseURL"> <string>jdbc:mysql://localhost/sogo</string> </void> <void property="databaseUsername"> <string>sogo</string> </void> <void property="info"> <object class="com.funambol.framework.engine.source.SyncSourceInfo"> <void property="supportedTypes"> <array class="com.funambol.framework.engine.source.ContentType" length="1"> <void index="0"> <object class="com.funambol.framework.engine.source.ContentType"> <void property="type"> <string>text/x-vevent</string> </void> <void property="version"> <string>1</string> </void> </object> </void> </array> </void> </object> </void> <void property="name"> <string>sogo-cal</string> </void> <void property="sourceURI"> <string>sogo-cal</string> </void> </object> </java>
Configuring the Address Book Sync connection
mkdir -p /etc/e-smith/templates/opt/Funambol/config/sogo/sogo/sogo/sogo-card.xml cd /etc/e-smith/templates/opt/Funambol/config/sogo/sogo/sogo/sogo-card.xml touch template-begin vim sogo-card.xml expand-template /opt/Funambol/config/sogo/sogo/sogo/sogo-card.xml
<?xml version="1.0" encoding="UTF-8"?> <java version="1.5.0_10" class="java.beans.XMLDecoder"> <object class="ca.inverse.sogo.engine.source.SOGoSyncSource"> <void property="databasePassword"> <string>{$sogod{'DbPassword'}}</string> </void> <void property="databaseURL"> <string>jdbc:mysql://localhost/sogo</string> </void> <void property="databaseUsername"> <string>sogo</string> </void> <void property="info"> <object class="com.funambol.framework.engine.source.SyncSourceInfo"> <void property="supportedTypes"> <array class="com.funambol.framework.engine.source.ContentType" length="1"> <void index="0"> <object class="com.funambol.framework.engine.source.ContentType"> <void property="type"> <string>text/x-vcard</string> </void> <void property="version"> <string>1</string> </void> </object> </void> </array> </void> </object> </void> <void property="name"> <string>sogo-card</string> </void> <void property="sourceURI"> <string>sogo-card</string> </void> </object> </java>
Configuring the Todo List Sync connection
mkdir -p /etc/e-smith/templates/opt/Funambol/config/sogo/sogo/sogo/sogo-todo.xml cd /etc/e-smith/templates/opt/Funambol/config/sogo/sogo/sogo/sogo-todo.xml touch template-begin vim sogo-todo.xml expand-template /opt/Funambol/config/sogo/sogo/sogo/sogo-todo.xml
<?xml version="1.0" encoding="UTF-8"?> <java version="1.5.0_10" class="java.beans.XMLDecoder"> <object class="ca.inverse.sogo.engine.source.SOGoSyncSource"> <void property="databasePassword"> <string>{$sogod{'DbPassword'}}</string> </void> <void property="databaseURL"> <string>jdbc:mysql://localhost/sogo</string> </void> <void property="databaseUsername"> <string>sogo</string> </void> <void property="info"> <object class="com.funambol.framework.engine.source.SyncSourceInfo"> <void property="supportedTypes"> <array class="com.funambol.framework.engine.source.ContentType" length="1"> <void index="0"> <object class="com.funambol.framework.engine.source.ContentType"> <void property="type"> <string>text/x-vtodo</string> </void> <void property="version"> <string>1</string> </void> </object> </void> </array> </void> </object> </void> <void property="name"> <string>sogo-todo</string> </void> <void property="sourceURI"> <string>sogo-todo</string> </void> </object> </java>
Auto-create Funambol user accounts
Edit the Funambol config file
vim /opt/Funambol/config/Funambol.xml
And change the officer parameter:
<void property="officer"> <string>ca/inverse/sogo/security/SOGoOfficer.xml</string> </void>
Then create the SOGoOfficer.xml file
vim /opt/Funambol/config/ca/inverse/sogo/security/SOGoOfficer.xml
<?xml version="1.0" encoding="UTF-8"?> <java version="1.4.0" class="java.beans.XMLDecoder"> <object class="ca.inverse.sogo.security.SOGoOfficer"> <void property="host"> <string>localhost</string> </void> <void property="port"> <string>20000</string> </void> </object> </java>
Funambol Client Configuration
The URL for accessing the Funambol server is:
http://<server_domain_name>:8080/funambol/ds
To connect to the SOGO Funambol sync items use:
- Contacts: sogo-card
- Calendar: sogo-cal
- Tasks: sogo-todo
To connect to the generic Funambol sync items use:
- Contacts: card
- Calendar: event
- Tasks: task