Funambol: Difference between revisions

From WickyWiki
No edit summary
m 104 revisions
 
(93 intermediate revisions by 2 users not shown)
Line 1: Line 1:
20111004, Ubuntu 11.05, 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 in /opt/Funambol
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
 
<syntaxhighlight lang=bash>
sudo ./funambol-10.0.3-x64.bin
</syntaxhighlight>
 
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.
 
<syntaxhighlight lang=bash>
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>
 
==== Select MySQL database ====
 
Disable hypersonic database:
 
<syntaxhighlight lang=bash>
sudo gedit /opt/Funambol/bin/funambol
</syntaxhighlight>
 
<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>
sudo gedit /opt/Funambol/ds-server/install.properties
</syntaxhighlight>
 
<blockquote>
<syntaxhighlight lang=bash>
...
#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**
...
</syntaxhighlight>
</blockquote>
 
Edit:
 
<syntaxhighlight lang=bash>
sudo gedit /opt/Funambol/config/com/funambol/server/db/db.xml
</syntaxhighlight>
 
<blockquote>
<syntaxhighlight lang=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>
...
</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:
 
<syntaxhighlight lang=bash>
sudo mysql -u root mysql -p
</syntaxhighlight>
 
<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>
</blockquote>
 
Create database, type 'y' until you see ''BUILD SUCCESSFUL'':
 
<syntaxhighlight lang=bash>
cd /opt/Funambol
sudo ./bin/install
</syntaxhighlight>
 
=== PostgreSQL ===
 
==== JDBC driver ====
 
Postgresql jdbc driver
*http://wiki.contribs.org/Funambol
 
<syntaxhighlight lang=bash>
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/
</syntaxhighlight>
 
==== Create database ====
 
<syntaxhighlight lang=bash>
su postgres -c psql
</syntaxhighlight>
 
<blockquote>
<syntaxhighlight lang=sql>
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
</syntaxhighlight>
</blockquote>
 
<syntaxhighlight lang=bash>
sudo gedit /var/lib/postgresql/data/pg_hba.conf
</syntaxhighlight>
 
<blockquote>
<syntaxhighlight lang=bash>
#20111011 wjv add
host    funambol    funambol    127.0.0.1/32          md5
</syntaxhighlight>
</blockquote>
 
<syntaxhighlight lang=bash>
sudo /etc/init.d/postgresql restart
</syntaxhighlight>
 
Test this database user:
 
<syntaxhighlight lang=bash>
psql -h 127.0.0.1 -d funambol -U funambol -W
\q
</syntaxhighlight>
 
==== Select database ====
 
Disable hypersonic, modify
 
<syntaxhighlight lang=bash>
sudo gedit /opt/Funambol/bin/funambol
</syntaxhighlight>
 
<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>
sudo gedit /opt/Funambol/ds-server/install.properties
</syntaxhighlight>
 
<blockquote>
<syntaxhighlight lang=bash>
...
#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**
...
</syntaxhighlight>
</blockquote>
 
Edit:
 
<syntaxhighlight lang=bash>
sudo gedit /opt/Funambol/config/com/funambol/server/db/db.xml
</syntaxhighlight>
 
<blockquote>
<syntaxhighlight lang=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>
...
</syntaxhighlight>
</blockquote>
 
==== Create database ====
 
Type y until done, try again if it stops on an error
 
<syntaxhighlight lang=bash>
cd /opt/Funambol
sudo ./bin/install
</syntaxhighlight>
 
== Configuration ==
 
=== Admin password ===


Start Fundambol administrator console (Java)
Start Fundambol administrator console (Java)
sudo /opt/Funambol/admin/bin/funamboladmin


With funamboladmin, configure the "admin" password, default password is "sa"
<syntaxhighlight lang=bash>
login to "localhost" with user "admin" and default password "sa"
sudo /opt/Funambol/admin/bin/funamboladmin
expand the tree on the left
</syntaxhighlight>
double click on "Users"
click "search"
select the line of the admin user
click "edit"
change the password and confirm
save
close funamboladmin


[[Create Tomcat self-signed certificate]]
With funamboladmin, change the default the "admin" password


Source: http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html
# 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


sudo keytool -genkey -alias tomcat -keyalg RSA -keystore /etc/ssl/private/myserver_org.keystore
=== Certificate ===


enter sudo pwd
To be able to access Funambol through a secure SSL connection you need to [[Create a Tomcat self-signed certificate]].
enter new keystore password (changeit)
reenter
first and last name (myserver.org)
departement
organisation
city
province
countrycode
key password for tomcat (changeit)


Configure where to use it:
Configure Funambol to use your cerificate:


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


Configure auto startup
=== Auto startup ===
sudo cp /opt/Funambol/bin/funambol /opt/Funambol/bin/funambol.original
sudo gedit /opt/Funambol/bin/funambol


edit funambol to point to fixed path, typically /opt/Funambol
<syntaxhighlight lang=bash>
...
sudo cp /opt/Funambol/bin/funambol /opt/Funambol/bin/funambol.original
#cd `dirname $0`
sudo gedit /opt/Funambol/bin/funambol
FUNAMBOL_HOME=`(cd /opt/Funambol ; pwd)`
</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


create startup in the deamons folders
=== Sync with windows Thunderbird + lightning ===
sudo cp /opt/Funambol/bin/funambol /etc/init.d/funambol
sudo update-rc.d -f funambol defaults


sync with outlook
Note: didn't see the contact pictures
#download and install funambol windows outlook client
#user sync URL: https://myserver:8443/funambol/ds


-- sync with linux evolution
Add hotmail/yahoo email accounts:
#succeeded with local http service: http://wjv5:8080/funambol/ds
# with funamboladmin create a User
sudo apt-get install syncevolution sync-ui
# go to Modules, email, FunambolEmailConnector
sync-ui
# section account, Add and configure, with Cache you can see if emails are retrieved


#create a sync connection:
=== Sync with windows mobile ===
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
Just install the Funambol client on your device and sync
#succeeded with windows client and funambol add-on, no pictures


-- add hotmail/yahoo email accounts
== Configure e-mail ==
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


-- (todo) windows mobile
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.


-- (todo, optional) https via apache2
=== Yahoo ===


#administrator
Incoming
sudo /opt/Funambol/admin/bin/funamboladmin


#start/stop
*IMAP: imap.mail.yahoo.com (port 993 SSL)
sudo /opt/Funambol/bin/funambol stop
*Authentication: Password
sudo /opt/Funambol/bin/funambol start
*Username: account@yahoo.com
*Password: account password


-- mySQL for funambol
Outgoing


#http://wiki.contribs.org/Funambol
*SMTP: smtp.mail.yahoo.com (port 465 SSL/TLS)
#mysql jdbc driver
*Authentication: Login
sudo apt-get install libmysql-java
*Username: account@yahoo.com
    sudo ln -s /usr/share/java/mysql-connector-java.jar /opt/Funambol/tools/jre-1.6.0/jre/
*Password: account password
    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/


#(todo do we need this?) install funambol connector
=== Google mail ===
sudo -i
cd /opt/Funambol/tools/tomcat/lib/
wget http://json-simple.googlecode.com/files/json_simple-1.1.jar
exit


#disable hypersonic, modify
Incoming
sudo gedit /opt/Funambol/bin/funambol
#20111011 wjv disabled hypersonic
COMED=false


sudo cp /opt/Funambol/ds-server/install.properties /opt/Funambol/ds-server/install.properties.original
*IMAP - imap.gmail.com (port 993 SSL)
sudo gedit /opt/Funambol/ds-server/install.properties
*Authentication: account password
...
#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=qw21YaUv
...
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
<!-- 20111011 wjc selected postgresql 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>q***</string>
...


#create db and user
Outgoing
sudo mysqladmin create funambol --default-character-set=utf8
sudo mysql -e "grant all privileges on funambol.* to funambol@localhost identified by 'q***'"
sudo mysql -e "flush privileges"


#create database, type 'y' until done, try again if it stops on an error
*SMTP - smtp.gmail.com (port 465 SSL/TLS)
cd /opt/Funambol
*Authentication: Login
sudo ./bin/install
*Login: account@gmail.com
*Password: account password


-- PostgreSQL for funambol
=== Hotmail ===


#postgresql jdbc driver
Note: Hotmail doesnt support free IMAP
# http://wiki.contribs.org/Funambol
# http://www.receptiveit.com.au/mediawiki/index.php/Ubuntu:_Groupware_with_SOGo
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/
#install funambol connector
sudo -i
cd /opt/Funambol/tools/tomcat/lib/
wget http://json-simple.googlecode.com/files/json_simple-1.1.jar
exit


#create database
Incoming
su postgres -c psql
CREATE USER funambol WITH PASSWORD 'q***';
ALTER USER funambol VALID UNTIL 'infinity';
ALTER USER funambol NOCREATEDB NOCREATEUSER;
CREATE DATABASE funambol;
GRANT ALL PRIVILEGES ON DATABASE funambol TO funambol;
#workaround (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 access to this user
psql -h 127.0.0.1 -d funambol -U funambol -W
\q


#disable hypersonic, modify
*POP3: pop3.live.com:995
sudo gedit /opt/Funambol/bin/funambol
*Security: SSL encryption
#20111011 wjv disabled hypersonic
*Login: account@hotmail.com
COMED=false
*Authentication: account password


sudo cp /opt/Funambol/ds-server/install.properties /opt/Funambol/ds-server/install.properties.original
Outgoing
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=q***
...
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
<!-- 20111011 wjc 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>q***</string>
...


#create database, type y until done, try again if it stops on an error
*SMTP Server: smtp.live.com:587
cd /opt/Funambol
*Security: SSL/TLS encryption
sudo ./bin/install
*Authentication: Login
*Login: account@hotmail.com
*Password: account password


----------- remove funambol
== 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