How To Install Openfire On CentOS 7

Openfire is a real time collaboration (RTC) server licensed under the Open Source Apache License. It is also known as Jabber. It uses the only widely adopted open protocol for instant messaging, XMPP. The full name of XMPP is Extensible Messaging and Presence Protocol. It is a real-time communication protocol (which includes chat) based on XML. Installation and the management of Openfire is pretty simple.

It should be noted that with Openfire, no chat is possible yet. A client is needed: Openfire cannot be used alone, just like web servers need a browser.

In this tutorial we will see, how to install Openfire in a clean minimal installation of CentOS 7.

First of all we need to install some important tools like vim, wget.

yum install -y vim wget

Download and install Openfire

We have to download the rpm directly to /home from Ignite Real time website. 


Install it using yum command

yum install -y /home/openfire-3.9.3-1.i386.rpm

Install libraries

yum install -y glibc.i686

Start service after every reboot

chkconfig openfire on

And start the openfire service

systemctl start openfire.service

Update IPtables

firewall-cmd --permanent --zone<span class="o">=</span>public --add-port<span class="o">=</span>9090/tcp
firewall-cmd --permanent --zone<span class="o">=</span>public --add-port<span class="o">=</span>9091/tcp

firewall-cmd --reload

Install PostgreSQL database

For running XMPP we have to setup a Database, We choose postgreSQL which is comes in CentOS 7 by default.

Shoot the following command to install PostgreSQL

yum install -y postgresql postgresql-server postgresql-devel postgresql-libs

Enable PostgreSQL to start after each reboot

systemctl <span class="nb">enable </span>postgresql.service

Initialize directory structure and postgres system database

postgresql-setup initdb

Start the service.

systemctl start postgresql.service

PostgreSQl is now running. Now we need to create a database and a dedicated database user for Openfire.

For full administration access, switch to postgres user.

su postgres

Now we are on postgres shell and we will proceed with database and user creation and will setup the password for the user.

For create new database for openfire, Run the following command

createdb openfire

Run the following command to create the database user for openfire

createuser -P openfire

The ‘-P’ parameter ensures that the shell will explicitly ask for user’s password and you will need to type it in.

Now the user openfire is secured with a password.

We can setup password for administration postgres user by the following command

psql -U postgres -d postgres -c <span class="s2">"ALTER USER postgres WITH PASSWORD 'OUR-CHOSEN-PGSQL-PASSWORD';"</span>

Next, Open /var/lib/pgsql/data/pg_hba.conf in your favorite editor.

vim /var/lib/pgsql/data/pg_hba.conf

Scroll down to the bottom of the file and replace all peer and ident strings with md5 string.

<span class="c"># TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD</span>

<span class="c"># "local" is for Unix domain socket connections only</span>

<span class="nb">local   </span>all         all                               md5

<span class="c"># IPv4 local connections:</span>

host    all         all          md5

<span class="c"># IPv6 local connections:</span>

host    all         all         ::1/128               md5

Save the file. Press CTRL+Z to go back from postgres shell.

Restart PostgreSQL service

systemctl restart postgresql.service

Now we have finished backend configuration for openfire.

GUI setup

You can access the GUI of Openfire by pointing your browser to the following URL,  http://<YOUR-SERVER-IP>:9090

This is the screen that will welcome you. We can choose preferable language and hit continue.


In the next screen you can enter your domain which will be the part of your XMPP id. hit continue.


Fill in database settings according to our previous steps when we created openfire user. hit continue.


In the next screen, We will choose “Default” option to store users and groups in the server database. hit continue.


Next screen allows Fill in your email address and set preferred password. hit continue.


All the steps have been completed successfully. Now we can login with new credentials. (admin / your password)


That’s it!!
See you guys with another articles.