Funambol: Difference between revisions

From WickyWiki
m 104 revisions
 
(84 intermediate revisions by 2 users not shown)
Line 1: Line 1:
20111004, Ubuntu 11.04, Groupware
[[Category:201110]]
[[Category:Ubuntu]]
[[Category:Ubuntu Guide]]
[[Category:Groupware]]
Homepage: https://www.forge.funambol.org


Homepage: https://www.forge.funambol.org
Funambol is a synchronisation server for e-mail, contacts, calendar, tasks and notes. You can synchronize various software and devices, configure push e-mail for mobiles etc. Although there "webdemo" can be used to view some of the data, it not meant as an application. You will need other software and devices for this, such as [[SOGo]].


Funambol is a synchronisation server for e-mail, contacts, calendar, tasks and notes. You can synchronize various software and devices, configure push e-mail for mobiles etc. Although there is a "webdemo" to view some of the data, it not meant as a webinterface to these. You will need other software and devices for this.
== Introduction ==


In this text:
In this text:
* "myserver.org" is the machine we are installing, it can also be an IP address or "localhost"
* "wilbertvolkers.dyndns.org" is the dns of the machine we are installing, it can also be an IP address or "localhost"
* passwords are denoted like ''**funambol-database-pwd**''. so you can keep track of different passwords


== Installation ==


== Installation ==
The following installer installs Funambol default in path ''/opt/Funambol''. Accept the agreement by keeping ENTER down and type ''yes'' to agree:


The following installer installs in /opt/Funambol
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
sudo ./funambol-10.0.3-x64.bin
sudo ./funambol-10.0.3-x64.bin
</syntaxhighlight>
</syntaxhighlight>


Start Fundambol administrator console (Java)
When asked, do not start the server yet.
<syntaxhighlight lang=bash>
sudo /opt/Funambol/admin/bin/funamboladmin
</syntaxhighlight>


With funamboladmin, configure the "admin" password, default password is "sa"
== Database ==
login to "localhost" with user "admin" and default password "sa"
expand the tree on the left
double click on "Users"
click "search"
select the line of the admin user
click "edit"
change the password and confirm
save
close funamboladmin


To be able to access Funambol through a secure SSL connection you need to [[Create a Tomcat self-signed certificate]]
=== MySQL ===


Source: http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html
http://wiki.contribs.org/Funambol
 
<syntaxhighlight lang=bash>
sudo keytool -genkey -alias tomcat -keyalg RSA -keystore /etc/ssl/private/myserver_org.keystore
</syntaxhighlight>


enter sudo pwd
==== JDBC driver ====
enter new keystore password (changeit)
reenter
first and last name (myserver.org)
departement
organisation
city
province
countrycode
key password for tomcat (changeit)


Configure Funambol to use your cerificate:
The JDBC driver should be available in a number of directories.


<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
sudo gedit /opt/Funambol/tools/tomcat/conf/server.xml
sudo apt-get install libmysql-java
sudo ln -s /usr/share/java/mysql-connector-java.jar /opt/Funambol/tools/jre-1.6.0/jre/
sudo ln -s /usr/share/java/mysql-connector-java.jar /opt/Funambol/tools/tomcat/lib/
sudo ln -s /usr/share/java/mysql-connector-java.jar /opt/Funambol/pim-listener/lib/
sudo ln -s /usr/share/java/mysql-connector-java.jar /opt/Funambol/inbox-listener/lib/
</syntaxhighlight>
</syntaxhighlight>


<syntaxhighlight lang=xml>
==== Select MySQL database ====
<!-- 20111008 wjv Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
 
<Connector
Disable hypersonic database:
port="8443" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="/etc/ssl/private/wilbertvolkers.dyndns.org.keystore" keystorePass="changeit"
clientAuth="false" sslProtocol="TLS" />
</syntaxhighlight>


Configure auto startup
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
sudo cp /opt/Funambol/bin/funambol /opt/Funambol/bin/funambol.original
sudo gedit /opt/Funambol/bin/funambol
sudo gedit /opt/Funambol/bin/funambol
</syntaxhighlight>
</syntaxhighlight>


edit funambol to point to fixed path, typically /opt/Funambol
<blockquote>
...
#cd `dirname $0`
FUNAMBOL_HOME=`(cd /opt/Funambol ; pwd)`
...
 
create startup in the deamons folders
<syntaxhighlight lang=bash>
sudo cp /opt/Funambol/bin/funambol /etc/init.d/funambol
sudo update-rc.d -f funambol defaults
</syntaxhighlight>
 
start/stop manually
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
sudo /opt/Funambol/bin/funambol stop
...
sudo /opt/Funambol/bin/funambol start
#20111011 wjv disabled hypersonic
COMED=false
...
</syntaxhighlight>
</syntaxhighlight>
</blockquote>


== sync with outlook ==
Backup:
download and install funambol windows outlook client
 
user sync URL: https://myserver.org:8443/funambol/ds
 
== sync with linux evolution ==
 
NB: only managed to get this to work with a local, non SSL address like http://localhost:8080/funambol/ds


<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
sudo apt-get install syncevolution sync-ui
sudo cp /opt/Funambol/ds-server/install.properties /opt/Funambol/ds-server/install.properties.backup
sync-ui
sudo cp /opt/Funambol/config/com/funambol/server/db/db.xml /opt/Funambol/config/com/funambol/server/db/db.xml.backup
</syntaxhighlight>
</syntaxhighlight>


create a sync connection
Edit:
 
1. with funamboladmin create a User
2. try sync with sync-ui (it will fail)
3. with funamboladmin you will se that an 'Evolution' Device is added, pair this device and the User as a new Principal
4. sync with sync-ui
 
== sync with windows thunderbird + lightning ==
 
NB: didnt see the contact pictures
 
add hotmail/yahoo email accounts
1. with funamboladmin create a User
2. go to Modules, email, FunambolEmailConnector
2. section account, Add and configure, with Cache you can see if emails are retrieved
 
== sync with windows mobile ==


== mySQL for funambol ==
#http://wiki.contribs.org/Funambol
#mysql jdbc driver
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
sudo apt-get install libmysql-java
sudo gedit /opt/Funambol/ds-server/install.properties
sudo ln -s /usr/share/java/mysql-connector-java.jar /opt/Funambol/tools/jre-1.6.0/jre/
sudo ln -s /usr/share/java/mysql-connector-java.jar /opt/Funambol/tools/tomcat/lib/
sudo ln -s /usr/share/java/mysql-connector-java.jar /opt/Funambol/pim-listener/lib/
sudo ln -s /usr/share/java/mysql-connector-java.jar /opt/Funambol/inbox-listener/lib/
sudo ln -s /usr/share/java/mysql-connector-java.jar /opt/Funambol/ox-listener/lib/
</syntaxhighlight>
</syntaxhighlight>


#(todo do we need this?) install funambol connector
<blockquote>
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
sudo -i
cd /opt/Funambol/tools/tomcat/lib/
wget http://json-simple.googlecode.com/files/json_simple-1.1.jar
exit
</syntaxhighlight>
#disable hypersonic, modify
<syntaxhighlight lang=bash>
sudo gedit /opt/Funambol/bin/funambol
</syntaxhighlight>
#20111011 wjv disabled hypersonic
COMED=false
<syntaxhighlight lang=bash>
sudo cp /opt/Funambol/ds-server/install.properties /opt/Funambol/ds-server/install.properties.original
sudo gedit /opt/Funambol/ds-server/install.properties
</syntaxhighlight>
...
...
#20111014 wjv selected mysql as database
#20111014 wjv selected mysql as database
Line 163: Line 82:
jdbc.url=jdbc:mysql://localhost/funambol
jdbc.url=jdbc:mysql://localhost/funambol
jdbc.user=funambol
jdbc.user=funambol
jdbc.password=qw21YaUv
jdbc.password=**funambol-database-pwd**
...
...
</syntaxhighlight>
</blockquote>
Edit:
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
sudo cp /opt/Funambol/config/com/funambol/server/db/db.xml /opt/Funambol/config/com/funambol/server/db/db.xml.original
sudo gedit /opt/Funambol/config/com/funambol/server/db/db.xml
sudo gedit /opt/Funambol/config/com/funambol/server/db/db.xml
</syntaxhighlight>
</syntaxhighlight>
<blockquote>
<syntaxhighlight lang=xml>
<syntaxhighlight lang=xml>
<!-- 20111011 wjc selected postgresql as database -->
<!-- 20111011 wjv selected mysql as database -->
...
...
<string>url</string>
<string>url</string>
Line 182: Line 107:
...
...
<string>password</string>
<string>password</string>
<string>q***</string>
<string>**funambol-database-pwd**</string>
...
...
</syntaxhighlight>
</syntaxhighlight>
</blockquote>
==== Create database and user ====
For these lines an [[MySQL]] root password (**mysql-root-pwd**) needs to be configured. Type the **mysql-root-pwd** when required:


#create db and user
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
sudo mysqladmin create funambol --default-character-set=utf8
sudo mysql -u root mysql -p
sudo mysql -e "grant all privileges on funambol.* to funambol@localhost identified by 'q***'"
</syntaxhighlight>
sudo mysql -e "flush privileges"
 
<blockquote>
<syntaxhighlight lang=sql>
CREATE DATABASE `funambol` CHARACTER SET='utf8';
grant all privileges on funambol.* to funambol@localhost identified by '**funambol-database-pwd**'
FLUSH PRIVILEGES;
\q
</syntaxhighlight>
</syntaxhighlight>
</blockquote>
Create database, type 'y' until you see ''BUILD SUCCESSFUL'':


#create database, type 'y' until done, try again if it stops on an error
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
cd /opt/Funambol
cd /opt/Funambol
Line 199: Line 136:
</syntaxhighlight>
</syntaxhighlight>


-- PostgreSQL for funambol
=== PostgreSQL ===
 
==== JDBC driver ====
 
Postgresql jdbc driver
*http://wiki.contribs.org/Funambol


#postgresql jdbc driver
# http://wiki.contribs.org/Funambol
# http://www.receptiveit.com.au/mediawiki/index.php/Ubuntu:_Groupware_with_SOGo
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
sudo apt-get install libpg-java
sudo apt-get install libpg-java
Line 209: Line 148:
sudo ln -s /usr/share/java/postgresql.jar /opt/Funambol/pim-listener/lib/
sudo ln -s /usr/share/java/postgresql.jar /opt/Funambol/pim-listener/lib/
</syntaxhighlight>
</syntaxhighlight>
#install funambol connector
<syntaxhighlight lang=bash>
sudo -i
cd /opt/Funambol/tools/tomcat/lib/
wget http://json-simple.googlecode.com/files/json_simple-1.1.jar
exit
</syntaxhighlight>


#create database
==== Create database ====
 
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
su postgres -c psql
su postgres -c psql
</syntaxhighlight>
</syntaxhighlight>
<blockquote>
<syntaxhighlight lang=sql>
<syntaxhighlight lang=sql>
CREATE USER funambol WITH PASSWORD 'q***';
CREATE USER funambol WITH PASSWORD '**funambol-database-pwd**';
ALTER USER funambol VALID UNTIL 'infinity';
ALTER USER funambol VALID UNTIL 'infinity';
ALTER USER funambol NOCREATEDB NOCREATEUSER;
ALTER USER funambol NOCREATEDB NOCREATEUSER;
CREATE DATABASE funambol;
CREATE DATABASE funambol;
GRANT ALL PRIVILEGES ON DATABASE funambol TO funambol;
GRANT ALL PRIVILEGES ON DATABASE funambol TO funambol;
#workaround (manual):
#workaround (see Funambol manual):
CREATE FUNCTION pg_catalog.text(bigint) RETURNS text STRICT IMMUTABLE LANGUAGE SQL AS 'SELECT textin(int8out($1));';
CREATE FUNCTION pg_catalog.text(bigint) RETURNS text  
  STRICT IMMUTABLE LANGUAGE SQL AS 'SELECT textin(int8out($1));';
CREATE CAST (bigint AS text) WITH FUNCTION pg_catalog.text(bigint) AS IMPLICIT;
CREATE CAST (bigint AS text) WITH FUNCTION pg_catalog.text(bigint) AS IMPLICIT;
\q
\q
</syntaxhighlight>
</syntaxhighlight>
</blockquote>
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
sudo gedit /var/lib/postgresql/data/pg_hba.conf
sudo gedit /var/lib/postgresql/data/pg_hba.conf
</syntaxhighlight>
</syntaxhighlight>
#20111011 wjv add:
 
<blockquote>
<syntaxhighlight lang=bash>
#20111011 wjv add
host    funambol    funambol    127.0.0.1/32          md5
host    funambol    funambol    127.0.0.1/32          md5
</syntaxhighlight>
</blockquote>
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
sudo /etc/init.d/postgresql restart
sudo /etc/init.d/postgresql restart
</syntaxhighlight>
</syntaxhighlight>
#test access to this user
 
Test this database user:
 
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
psql -h 127.0.0.1 -d funambol -U funambol -W
psql -h 127.0.0.1 -d funambol -U funambol -W
Line 246: Line 192:
</syntaxhighlight>
</syntaxhighlight>


#disable hypersonic, modify
==== Select database ====
 
Disable hypersonic, modify
 
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
sudo gedit /opt/Funambol/bin/funambol
sudo gedit /opt/Funambol/bin/funambol
</syntaxhighlight>
</syntaxhighlight>
#20111011 wjv disabled hypersonic
 
COMED=false
<blockquote>
<syntaxhighlight lang=bash>
#20111011 wjv disabled hypersonic
COMED=false
</syntaxhighlight>
</blockquote>
 
Backup:
 
<syntaxhighlight lang=bash>
sudo cp /opt/Funambol/ds-server/install.properties /opt/Funambol/ds-server/install.properties.backup
sudo cp /opt/Funambol/config/com/funambol/server/db/db.xml /opt/Funambol/config/com/funambol/server/db/db.xml.backup
</syntaxhighlight>
 
Edit:


<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
sudo cp /opt/Funambol/ds-server/install.properties /opt/Funambol/ds-server/install.properties.original
sudo gedit /opt/Funambol/ds-server/install.properties
sudo gedit /opt/Funambol/ds-server/install.properties
</syntaxhighlight>
</syntaxhighlight>
<blockquote>
<syntaxhighlight lang=bash>
...
...
#20111011 wjv selected postgresql as database
#20111011 wjv selected postgresql as database
Line 266: Line 231:
jdbc.url=jdbc:postgresql://localhost/funambol
jdbc.url=jdbc:postgresql://localhost/funambol
jdbc.user=funambol
jdbc.user=funambol
jdbc.password=q***
jdbc.password=**funambol-database-pwd**
...
...
</syntaxhighlight>
</blockquote>
Edit:


<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
sudo cp /opt/Funambol/config/com/funambol/server/db/db.xml /opt/Funambol/config/com/funambol/server/db/db.xml.original
sudo gedit /opt/Funambol/config/com/funambol/server/db/db.xml
sudo gedit /opt/Funambol/config/com/funambol/server/db/db.xml
</syntaxhighlight>
</syntaxhighlight>
<!-- 20111011 wjc selected postgresql as database -->
 
<blockquote>
<syntaxhighlight lang=xml>
<!-- 20111011 wjv selected postgresql as database -->
...
...
<string>url</string>
<string>url</string>
Line 285: Line 256:
...
...
<string>password</string>
<string>password</string>
<string>q***</string>
<string>**funambol-database-pwd**</string>
...
...
</syntaxhighlight>
</blockquote>
==== Create database ====
Type y until done, try again if it stops on an error


#create database, type y until done, try again if it stops on an error
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
cd /opt/Funambol
cd /opt/Funambol
Line 294: Line 270:
</syntaxhighlight>
</syntaxhighlight>


----------- remove funambol
== Configuration ==
 
=== Admin password ===
 
Start Fundambol administrator console (Java)
 
<syntaxhighlight lang=bash>
sudo /opt/Funambol/admin/bin/funamboladmin
</syntaxhighlight>
 
With funamboladmin, change the default the "admin" password
 
# login to "localhost" with user "admin" and default password "sa"
# expand the tree on the left
# double click on "Users"
# click "search"
# select the line of the admin user
# click "edit"
# change the password to your **funambol-admin-pwd** and confirm
# save
# close funamboladmin
 
=== Certificate ===
 
To be able to access Funambol through a secure SSL connection you need to [[Create a Tomcat self-signed certificate]].
 
Configure Funambol to use your cerificate:
 
<syntaxhighlight lang=bash>
sudo gedit /opt/Funambol/tools/tomcat/conf/server.xml
</syntaxhighlight>
 
<blockquote>
<syntaxhighlight lang=xml>
...
<!-- 20111008 wjv Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
<Connector
  port="8443" maxThreads="200"
  scheme="https" secure="true" SSLEnabled="true"
  keystoreFile="/etc/ssl/private/wilbertvolkers.dyndns.org.keystore" keystorePass="changeit"
  clientAuth="false" sslProtocol="TLS" />
...
</syntaxhighlight>
</blockquote>
 
=== Auto startup ===
 
<syntaxhighlight lang=bash>
sudo cp /opt/Funambol/bin/funambol /opt/Funambol/bin/funambol.original
sudo gedit /opt/Funambol/bin/funambol
</syntaxhighlight>
 
Edit funambol to point to a fixed path, in this case /opt/Funambol:
 
<blockquote>
<syntaxhighlight lang=bash>
...
#cd `dirname $0`
FUNAMBOL_HOME=`(cd /opt/Funambol ; pwd)`
...
</syntaxhighlight>
</blockquote>
 
Create startup in the daemons folders:
 
<syntaxhighlight lang=bash>
sudo cp /opt/Funambol/bin/funambol /etc/init.d/funambol
sudo update-rc.d -f funambol defaults
</syntaxhighlight>
 
Start/stop manually:
 
<syntaxhighlight lang=bash>
sudo /opt/Funambol/bin/funambol stop
sudo /opt/Funambol/bin/funambol start
</syntaxhighlight>
 
Access to the webdemo:
 
* URL (http): http://wilbertvolkers.dyndns.org:8080/funambol
* URL (https): https://wilbertvolkers.dyndns.org:8443/funambol
 
=== Configure logging ===
 
Start Fundambol administrator console.
 
<syntaxhighlight lang=bash>
sudo /opt/Funambol/admin/bin/funamboladmin
</syntaxhighlight>
 
Under 'Server settings' -> 'Logging' -> 'Loggers' you can configure the log levels, I guess WARN is detailed enough. The INFO setting will get you loads of logging but might be more helpful solving a problem.
 
Under 'Server settings' -> 'Logging' -> 'Appenders' you can configure how the logfiles will grow. The default setting will allow logfiles of 100Mb, I changed this to 1Mb, which is more than I would like to traverse.
 
== Synchronization ==
 
If you have problems try using the IP address with http first.
 
=== Sync with Microsoft Outlook ===
 
Download and install funambol windows outlook client
 
User sync URL: https://wilbertvolkers.dyndns.org:8443/funambol/ds
 
=== Sync with Evolution ===
 
NB: only managed to get this to work with a local, non SSL address like http://localhost:8080/funambol/ds
 
<syntaxhighlight lang=bash>
sudo apt-get install syncevolution sync-ui
sync-ui
</syntaxhighlight>
 
Create a sync connection
 
# with funamboladmin create a User
# try sync with sync-ui (it will fail)
# with funamboladmin you will se that an 'Evolution' Device is added, pair this device and the User as a new Principal
# sync with sync-ui
 
=== Sync with windows Thunderbird + lightning ===
 
Note: didn't see the contact pictures
 
Add hotmail/yahoo email accounts:
# with funamboladmin create a User
# go to Modules, email, FunambolEmailConnector
# section account, Add and configure, with Cache you can see if emails are retrieved
 
=== Sync with windows mobile ===
 
Just install the Funambol client on your device and sync
 
== Configure e-mail ==
 
You can get notifications on your mobile device (push service) when you have new e-mail. Yahoo has free IMAP capability so that is a nice one to use.
 
=== Yahoo ===
 
Incoming
 
*IMAP: imap.mail.yahoo.com (port 993 SSL)
*Authentication: Password
*Username: account@yahoo.com
*Password: account password
 
Outgoing
 
*SMTP: smtp.mail.yahoo.com (port 465 SSL/TLS)
*Authentication: Login
*Username: account@yahoo.com
*Password: account password
 
=== Google mail ===
 
Incoming
 
*IMAP - imap.gmail.com (port 993 SSL)
*Authentication: account password
 
Outgoing
 
*SMTP - smtp.gmail.com (port 465 SSL/TLS)
*Authentication: Login
*Login: account@gmail.com
*Password: account password
 
=== Hotmail ===
 
Note: Hotmail doesnt support free IMAP
 
Incoming
 
*POP3: pop3.live.com:995
*Security: SSL encryption
*Login: account@hotmail.com
*Authentication: account password
 
Outgoing
 
*SMTP Server: smtp.live.com:587
*Security: SSL/TLS encryption
*Authentication: Login
*Login: account@hotmail.com
*Password: account password
 
== Remove funambol ==


remove the folder /opt/Funambol
Just remove the folder /opt/Funambol

Latest revision as of 07:21, 5 July 2013

Homepage: https://www.forge.funambol.org

Funambol is a synchronisation server for e-mail, contacts, calendar, tasks and notes. You can synchronize various software and devices, configure push e-mail for mobiles etc. Although there "webdemo" can be used to view some of the data, it not meant as an application. You will need other software and devices for this, such as SOGo.

Introduction

In this text:

  • "wilbertvolkers.dyndns.org" is the dns of the machine we are installing, it can also be an IP address or "localhost"
  • passwords are denoted like **funambol-database-pwd**. so you can keep track of different passwords

Installation

The following installer installs Funambol default in path /opt/Funambol. Accept the agreement by keeping ENTER down and type yes to agree:

sudo ./funambol-10.0.3-x64.bin

When asked, do not start the server yet.

Database

MySQL

http://wiki.contribs.org/Funambol

JDBC driver

The JDBC driver should be available in a number of directories.

sudo apt-get install libmysql-java
sudo ln -s /usr/share/java/mysql-connector-java.jar /opt/Funambol/tools/jre-1.6.0/jre/
sudo ln -s /usr/share/java/mysql-connector-java.jar /opt/Funambol/tools/tomcat/lib/
sudo ln -s /usr/share/java/mysql-connector-java.jar /opt/Funambol/pim-listener/lib/
sudo ln -s /usr/share/java/mysql-connector-java.jar /opt/Funambol/inbox-listener/lib/

Select MySQL database

Disable hypersonic database:

sudo gedit /opt/Funambol/bin/funambol
 ...
 #20111011 wjv disabled hypersonic
 COMED=false
 ...

Backup:

sudo cp /opt/Funambol/ds-server/install.properties /opt/Funambol/ds-server/install.properties.backup
sudo cp /opt/Funambol/config/com/funambol/server/db/db.xml /opt/Funambol/config/com/funambol/server/db/db.xml.backup

Edit:

sudo gedit /opt/Funambol/ds-server/install.properties
...
#20111014 wjv selected mysql as database
dbms=mysql
...
#20111014 wjv selected mysql as database
jdbc.classpath=/usr/share/java/mysql-connector-java.jar
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost/funambol
jdbc.user=funambol
jdbc.password=**funambol-database-pwd**
...

Edit:

sudo gedit /opt/Funambol/config/com/funambol/server/db/db.xml
<!-- 20111011 wjv selected mysql as database -->
...
<string>url</string>
<string>jdbc:mysql://localhost/funambol</string>
...
<string>driverClassName</string>
<string>org.mysql.Driver</string>
...
<string>username</string>
<string>funambol</string>
...
<string>password</string>
<string>**funambol-database-pwd**</string>
...

Create database and user

For these lines an MySQL root password (**mysql-root-pwd**) needs to be configured. Type the **mysql-root-pwd** when required:

sudo mysql -u root mysql -p
CREATE DATABASE `funambol` CHARACTER SET='utf8';
grant all privileges on funambol.* to funambol@localhost identified by '**funambol-database-pwd**'
FLUSH PRIVILEGES;
\q

Create database, type 'y' until you see BUILD SUCCESSFUL:

cd /opt/Funambol
sudo ./bin/install

PostgreSQL

JDBC driver

Postgresql jdbc driver

sudo apt-get install libpg-java
sudo ln -s /usr/share/java/postgresql.jar /opt/Funambol/tools/tomcat/lib/
sudo ln -s /usr/share/java/postgresql.jar /opt/Funambol/pim-listener/lib/

Create database

su postgres -c psql
CREATE USER funambol WITH PASSWORD '**funambol-database-pwd**';
ALTER USER funambol VALID UNTIL 'infinity';
ALTER USER funambol NOCREATEDB NOCREATEUSER;
CREATE DATABASE funambol;
GRANT ALL PRIVILEGES ON DATABASE funambol TO funambol;
#workaround (see Funambol manual):
CREATE FUNCTION pg_catalog.text(bigint) RETURNS text 
  STRICT IMMUTABLE LANGUAGE SQL AS 'SELECT textin(int8out($1));';
CREATE CAST (bigint AS text) WITH FUNCTION pg_catalog.text(bigint) AS IMPLICIT;
\q
sudo gedit /var/lib/postgresql/data/pg_hba.conf
#20111011 wjv add
host    funambol    funambol    127.0.0.1/32          md5
sudo /etc/init.d/postgresql restart

Test this database user:

psql -h 127.0.0.1 -d funambol -U funambol -W
\q

Select database

Disable hypersonic, modify

sudo gedit /opt/Funambol/bin/funambol
 #20111011 wjv disabled hypersonic
 COMED=false

Backup:

sudo cp /opt/Funambol/ds-server/install.properties /opt/Funambol/ds-server/install.properties.backup
sudo cp /opt/Funambol/config/com/funambol/server/db/db.xml /opt/Funambol/config/com/funambol/server/db/db.xml.backup

Edit:

sudo gedit /opt/Funambol/ds-server/install.properties
...
#20111011 wjv selected postgresql as database
dbms=postgresql
...
#20111011 wjv selected postgresql as database
jdbc.classpath=/usr/share/java/postgresql.jar
jdbc.driver=org.postgresql.Driver
jdbc.url=jdbc:postgresql://localhost/funambol
jdbc.user=funambol
jdbc.password=**funambol-database-pwd**
...

Edit:

sudo gedit /opt/Funambol/config/com/funambol/server/db/db.xml
<!-- 20111011 wjv selected postgresql as database -->
...
<string>url</string>
<string>jdbc:postgresql://localhost/funambol</string>
...
<string>driverClassName</string>
<string>org.postgresql.Driver</string>
...
<string>username</string>
<string>funambol</string>
...
<string>password</string>
<string>**funambol-database-pwd**</string>
...

Create database

Type y until done, try again if it stops on an error

cd /opt/Funambol
sudo ./bin/install

Configuration

Admin password

Start Fundambol administrator console (Java)

sudo /opt/Funambol/admin/bin/funamboladmin

With funamboladmin, change the default the "admin" password

  1. login to "localhost" with user "admin" and default password "sa"
  2. expand the tree on the left
  3. double click on "Users"
  4. click "search"
  5. select the line of the admin user
  6. click "edit"
  7. change the password to your **funambol-admin-pwd** and confirm
  8. save
  9. close funamboladmin

Certificate

To be able to access Funambol through a secure SSL connection you need to Create a Tomcat self-signed certificate.

Configure Funambol to use your cerificate:

sudo gedit /opt/Funambol/tools/tomcat/conf/server.xml
 ...
 <!-- 20111008 wjv Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
 <Connector 
  port="8443" maxThreads="200"
  scheme="https" secure="true" SSLEnabled="true"
  keystoreFile="/etc/ssl/private/wilbertvolkers.dyndns.org.keystore" keystorePass="changeit"
  clientAuth="false" sslProtocol="TLS" />
 ...

Auto startup

sudo cp /opt/Funambol/bin/funambol /opt/Funambol/bin/funambol.original
sudo gedit /opt/Funambol/bin/funambol

Edit funambol to point to a fixed path, in this case /opt/Funambol:

...
#cd `dirname $0`
FUNAMBOL_HOME=`(cd /opt/Funambol ; pwd)`
...

Create startup in the daemons folders:

sudo cp /opt/Funambol/bin/funambol /etc/init.d/funambol
sudo update-rc.d -f funambol defaults

Start/stop manually:

sudo /opt/Funambol/bin/funambol stop
sudo /opt/Funambol/bin/funambol start

Access to the webdemo:

Configure logging

Start Fundambol administrator console.

sudo /opt/Funambol/admin/bin/funamboladmin

Under 'Server settings' -> 'Logging' -> 'Loggers' you can configure the log levels, I guess WARN is detailed enough. The INFO setting will get you loads of logging but might be more helpful solving a problem.

Under 'Server settings' -> 'Logging' -> 'Appenders' you can configure how the logfiles will grow. The default setting will allow logfiles of 100Mb, I changed this to 1Mb, which is more than I would like to traverse.

Synchronization

If you have problems try using the IP address with http first.

Sync with Microsoft Outlook

Download and install funambol windows outlook client

User sync URL: https://wilbertvolkers.dyndns.org:8443/funambol/ds

Sync with Evolution

NB: only managed to get this to work with a local, non SSL address like http://localhost:8080/funambol/ds

sudo apt-get install syncevolution sync-ui
sync-ui

Create a sync connection

  1. with funamboladmin create a User
  2. try sync with sync-ui (it will fail)
  3. with funamboladmin you will se that an 'Evolution' Device is added, pair this device and the User as a new Principal
  4. sync with sync-ui

Sync with windows Thunderbird + lightning

Note: didn't see the contact pictures

Add hotmail/yahoo email accounts:

  1. with funamboladmin create a User
  2. go to Modules, email, FunambolEmailConnector
  3. section account, Add and configure, with Cache you can see if emails are retrieved

Sync with windows mobile

Just install the Funambol client on your device and sync

Configure e-mail

You can get notifications on your mobile device (push service) when you have new e-mail. Yahoo has free IMAP capability so that is a nice one to use.

Yahoo

Incoming

  • IMAP: imap.mail.yahoo.com (port 993 SSL)
  • Authentication: Password
  • Username: account@yahoo.com
  • Password: account password

Outgoing

  • SMTP: smtp.mail.yahoo.com (port 465 SSL/TLS)
  • Authentication: Login
  • Username: account@yahoo.com
  • Password: account password

Google mail

Incoming

  • IMAP - imap.gmail.com (port 993 SSL)
  • Authentication: account password

Outgoing

  • SMTP - smtp.gmail.com (port 465 SSL/TLS)
  • Authentication: Login
  • Login: account@gmail.com
  • Password: account password

Hotmail

Note: Hotmail doesnt support free IMAP

Incoming

  • POP3: pop3.live.com:995
  • Security: SSL encryption
  • Login: account@hotmail.com
  • Authentication: account password

Outgoing

  • SMTP Server: smtp.live.com:587
  • Security: SSL/TLS encryption
  • Authentication: Login
  • Login: account@hotmail.com
  • Password: account password

Remove funambol

Just remove the folder /opt/Funambol