Funambol
20111004, Ubuntu 11.04, Groupware
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 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:
- "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
- 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:
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:
- URL (http): http://wilbertvolkers.dyndns.org:8080/funambol
- URL (https): https://wilbertvolkers.dyndns.org:8443/funambol
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
- 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.
Incoming
- Yahoo IMAP: imap.mail.yahoo.com (port 993 SSL)
- Authentication: Password
- Username: wilbertvolkers@yahoo.com
- Password: Yahoo password
Outgoing
- Yahoo SMTP: smtp.mail.yahoo.com (port 465 SSL/TLS)
- Authentication: Login
- Username: wilbertvolkers@yahoo.com
- Password: Yahoo password
Remove funambol
Just remove the folder /opt/Funambol