How To Set Up An Openfire Instant Messaging Server On CentOS 5.6

1.0 Introduction

In this current changing world of unified communication, organizations and support teams require some form of communication to improve efficiency and possibly customer satisfaction. In this document, we will look at how to setup an Instant Messaging server on CentOS 5.6 using a free and open source XMPP based IM server. To continue we can say the following about XMPP:

Extensible Messaging and Presence Protocol (XMPP) is an open-standard communications protocol for message-oriented middleware based on XML (Extensible Markup Language).[1] The protocol was originally named Jabber,[2] and was developed by the Jabber open-source community in 1999 for, originally, near-real-time, extensible instant messaging (IM), presence information, and contact list maintenance. Designed to be extensible, the protocol today also finds application in VoIP and file transfer signaling.

Now we have had enough of the IT jargon above, you can study in great details the protocol specification later.


1.1 Assumptions

This document assumes that you have some knowledge about using Linux and specifically the CentOS Linux environment. This guide also assumes that you have read and understood how to setup a perfect CentOS server.


1.2 CentOS Installation and the perfect server

Mr Falko Timme has done a great job writing howtos for this flavor of Linux. You can find links to setting up a perfect CentOS 5.6 server or since we will be omitting the installation of CentOS here and focusing on setting up OpenFire.


2.0 OpenFire

According to, Openfire is a real time collaboration (RTC) server licensed under the Open Source GPL. It uses the only widely adopted open protocol for instant messaging, XMPP (also called Jabber). Openfire offers rock-solid security and performance.

We should head over to and download OpenFire by clicking on the Linux tab and selecting the .rpm version since we are running CentOS. We will also download a free IM client also developed by the developers of Openfire called Spark. On the download page, click on Linux and select the .rpm version or click on the Windows tab and select the .exe version assuming you have a mixed or hybrid environment.

Download Page

Download Page


2.1 Installing OpenFire

Copy the .rpm file for OpenFire and issue:

rpm -Uvh openfire-3.7.0-1.i386.rpm

This command should install OpenFire which will listen on port 9090. Now open a web browser and point to http://{OpenFire_Server_IP}:9090 which should take you to the installation screen. Follow all the default options and it should take you to the Login screen shown below:

Login Screen

Login Page

Administrator Dashboard

Administrator Dashboard

User Summary

User Summary


2.2 Configuring Spark Client

When you download the Spark client, the installation will be straight forward at least. Our OpenFire installation accepts open registration meaning anybody can register or setup an account.

To configure the Spark Client, simply click on the account and fill in the following:

Username: Put your desired username here e.g muffycompo
Password & Confirm Password: Put your desired password and confirm it here e.g h4rds3cr3t
Server: Put your OpenFire Server IP here or domain if you are using a DNS infrastructure

Spark User Account Setup Page

Spark User Account Setup Page

IM Clients

Note: You can use any IM client that supports XMPP to sign up with your OpenFire setup.

So there we have it people, if you have any questions or comments, please feel free to contact me muffycompoqm AT or better still, go to the OpenFire Community Section.


3.0 Conclusion

If you wish to take this guide further and implement this in your environment, you can check out the OpenFire Wiki or Documentation for advanced features like Using External databases, Clustering etc. I will like to thank the original authors of the individual software used and I also hope this document will be of help to anyone wanting to setup an Instant Messaging server with Enterprise functionalities.


3.1 Further Reading

Share this page:

3 Comment(s)