For now, we only use (and support) ejabberd as XMPP server. So if you want to deploy your own server you should probably look at Ejabberd Configuration. But at some point we'd like to see XO's working with as much Jabber server as possible, so this page describes how to use Openfire as an alternative. The explanations below refer to Openfire 3.4.1. You'll also need a patched version of telepathy-gabble fixing #5223 and #5224. These fixes are merged in current HEAD version of Gabble.
Important: As said, we only support Ejabberd as XMPP server so don't try this in a production environnement. Really.
You'll need to install the Sun Java 1.5 rpm which can be downloaded from Sun first.
The easiest way to test Openfire is to download its tarball, extract it and simply run
You have to connect to Openfire's web admin interface: http://<yourserver>:9090 and perform the few initial configurations steps. I tested using the Embedded Database as it's the faster way to deploy a server.
The default MUC configuration is to assume that conference.yourserver is a valid hostname. This isn't actually important for the XOs, but it must exist from the perspective of the server. You could put it into /etc/hosts for example.
 Disable S2S
Currently the XOs don't do a very good job with authorisation because they assume that only other XOs eg from the same school will be connected to the server, and "all see all" is an acceptable policy. For Internet-connected servers, it's best to disable "s2s" (server to server) connections to avoid people from outside connecting in and breaking this assumption.
Server -> Server settings -> Server to Server : change Service Enabled to Disabled
 Raising The Limits
Until a few constants are tweaks (see #5018), the XOs send larger than normal stanzas through the server, which triggers a maximum stanza size limit and can make the jabber server disconnect you eg when inserting an image into a shared document. To fix this, we raise the maximum stanza limit.
Seems to work out of the box. Need more investigations / tests
 Setting Up Shared Roster
 Enable the plugin
First you have to enable the Registration plugin.
Plugins -> Plugins admin -> Available Plugins -> Registration hit the green Install button
 Create the group
Let's create a group called "Everyone".
Users/Groups -> Groups -> Create New Group : set Everyone as Group Name and create the group
Now enable contact list group sharing using Everyone as group name.
 Auto add accounts
We have now to configure Openfire to automatically add each new account to our group.
Go to Users/Groups -> Users -> Registration Properties.
Default Group : set "Everyone" and then hit Save Group
Registration Settings: enable Enable automatically adding of new users to a group and then hit Save Settings
 Install Gadget
We have to allow the Gadget component to connect to the server.
Go to Server -> Server Settings -> External Components
Check Enabled, set 5560 as port and type your secret (be sure to use the same as in gadget.config
 Current issues
 Alias droped
With this configuration, openfire automatically set the first part of buddies's jid as nickname when adding new accounts to roster. So Gabble drop PEP nick notifications as roster nicknames are prioritary.
DEBUG: gabble_conn_aliasing_nickname_updated: ignoring boring alias change for handle 2, signal from 5 but source 6 has alias "5941439492d21d61724489d7aea18431094273f2"