Version 28 (modified by knowing42, 9 years ago) ( diff )


Chat Server Setup

  1. Install a JRE: 1.5.0 or later. You can check your java version by typing "java -version" at the command line and (if necessary) upgrade your Java installation by visiting

On Debian you can use:

apt-get install openjdk-6-jre
  1. Download Openfire server tarball (recommended version: 3.9.3):
    cd /tmp
    wget -O openfire.tar.gz
  1. Extract the archive to /opt :
    cd /opt
    sudo tar zxvf /tmp/openfire.tar.gz
    cd /opt/openfire/bin
    ./openfire start
  2. Next steps can be done manually or through a script.


This script is right now for custom db integration with Mysql only.

1) Install selenium for python.

pip install -U selenium

2) Download script from

3) Copy it into web2py directory. Eden must already be present.

4) Run the script after making configuration changes near line 116.

5) Run the script using sudo python -S eden -M -R It will take some time to run.


Doing this will enable web console. Open the browser with url http://<ip of the server>:9090/

  1. Follow through the onscreen steps to set up web console.

Basic Steps:

  • Language Selection
  • Server Settings: Choose default
  • Database settings: Create a database, say <openfiredb> in mysql. Use the same name for database settings..
  • Profile Settings: Default (store users and groups in the server database)
  • Admin account: Give a valid email address for user 'admin'
  1. After logging into admin console as 'admin' go into server settings tab, go into HTTP Binding and enable 'Clients can connect to this server using HTTP binding.' and save the settings.

The port numbers can be changed to whichever you like. The default ports are 7070 and 7443. This port number is the one which will be used to connect by Sahana Eden Chat. So the chat ip to be entered in 000_config file will be "<public ip>:<port selected>".

Go to Server->Server Settings->HTTP Binding and enable script syntax.

  1. Go into plugins, from Available Plugins install
  • Broadcast
  • Client Control
  • Presence Service
  • Registration
  • User Creation
  • User Import Export

If for some reason you cannot see available plugins you can upload jar files after downloading from

  1. Restart the Openfire server.
    sudo /opt/openfire/bin/openfire restart

Setup contact list for each user and greeting message

  1. Create a group called "everyone".

Users/Groups -> Groups -> Create New Group .

  1. Click enable in Contact List (Roster) Sharing.
  1. Enter “everyone” as Group Name and tick share group with additional users(after clicking select all users option).
  1. Go to User/Group -> Users -> Registration Properties
  1. Enter whatever message you want to welcome message box and click on save message.
  2. Enter the default group as “everyone” in default group box and click on save group.
  3. Then in the registration settings box at the top tick:
  • Enable welcome message.
  • Enable automatically adding of new users to a group

Click on Save Settings.

  1. Go to User/Groups -> Groups. Go to everyone group and manually add admin as the user to that group.

Setup Status messages

  1. Go to Server -> Server Settings -> Presence Service and change presence visibility to Anyone.

Custom DB Integration


  1. In the sql table of auth_user add a user with email "" , username "" and password of your choice(having alphanumeric characters).
    db.auth_user.insert(email="", username="", password="changeme", first_name="Chat")
  1. Open Openfire console http://servname:7070. Go to System Properties and set the following properties.


  • provider.auth.className to org.jivesoftware.openfire.auth.JDBCAuthProvider
  • provider.user.className to org.jivesoftware.openfire.user.JDBCUserProvider

Add (if some property names are already present modify them to the given values):

  • jdbcProvider.driver : com.mysql.jdbc.Driver
  • jdbcProvider.connectionString : jdbc:mysql://localhost/<sahana database name>?user=<sql_username>&password=<sql_password>
  • jdbcAuthProvider.passwordSQL : select password from auth_user where username=?
  • jdbcAuthProvider.passwordType : plain
  • jdbcUserProvider.loadUserSQL : select first_name,email from auth_user where username=?
  • jdbcUserProvider.userCountSQL : select count(*) from auth_user
  • jdbcUserProvider.allUsersSQL : select username from auth_user
  • jdbcUserProvider.searchSQL : select username from auth_user where
  • jdbcUserProvider.usernameField : username
  • jdbcUserProvider.emailField : email
  • jdbcUserProvider.nameField : first_name
  • admin.authorizedJIDs: choose a username from the user database and put it here e.g.<servername>
  1. Restart the Openfire server.
    sudo /opt/openfire/bin/openfire restart



Note: See TracWiki for help on using the wiki.