Jump to content

How to setup an IM / VOIP server using Openfire on headless Ubuntu Server


Recommended Posts

If you looking for an alternative to public IM and VOIP services like Skype and want to create a private secure IM / VOIP network, this guide is for you.

This guide is intended as a relatively easy step by step guide to:



  • Ubuntu 12.04 or later installed machine to act as local IM server machine and one to act as IM client - the client computer can also be Windows or Mac OSX based as long as you install the relevant Spark client on these machines.


1. Install Java 6/7 JRE or JDK.

  • On each computer you want to be part of your IM network require at least Java 6 JRE to be installed.
  • Oracle / Sun Java 6 is no longer available in the Software Center as Oracle has changed the license to make it complicated to install and update on Ubuntu. 
  • More information about Java on Ubuntu available here.
  • The easiest way I have found is to install Java on Ubuntu is via the Web Upd8 PPA .
  • First add the PPA. Open a Terminal Window and enter :

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update

  • A good idea to minimise any Java conflicts is to remove OpenJDK.  open a Terminal Window and enter :

sudo apt-get remove --purge openjdk*

  • Then to install Oracle Java 6 version open a Terminal Window and enter :

sudo apt-get install oracle-java6-installer

  • To install Oracle Java 7 version open a Terminal Window and enter :

sudo apt-get install oracle-java7-installer

  • Tip: Top check the Java version installed on your system open a terminal and enter :

java -version

2. Create new MySQL database for Openfire.

  • You have several options for user authentication including LDAP, MtSQL or embeded DB.
  • We will use the MySQL option and need to create a new database and user for Openfire to use.
  • Log in to MySQL as root. Open the Terminal window and enter :

sudo mysql -u root -p

  • Then enter the following to create the database and add user openfire. Replace openfirepasswrd with a new password :

mysql> CREATE DATABASE openfire CHARACTER SET='utf8';
mysql> CREATE USER 'openfire'@'localhost' IDENTIFIED BY 'openfirepasswrd';
mysql> GRANT ALL PRIVILEGES ON `openfire`.* TO 'openfire'@'localhost' WITH GRANT OPTION;
mysql> quit

3. Install Openfire.

  • The latest Debian version of Openfire can be downloaded from ignite realtime download page
  • Download Openfire 3.8.2 by opening a terminal window and enter   :

cd /tmp
wget -O openfire_3.8.2_all.deb http://www.igniterea...e_3.8.2_all.deb

  • Then install openfire. Open a Terminal window and enter :

sudo dpkg -i openfire_3.8.2_all.deb

  • Ignore all installation errors regarding user and folder permissions. As long as you do not get any Java version errors and openfire does install you are good to go.
  • You need to point the openfire server startup file to the correct home folder of the Java version  installed on your system.
  • Replace java-6-sun with java-6-oracle or java-7-oracle depending on your version of java in the /etc/init.d/openfirefile in line 27, or open a terminal and enter:

sudo apt-get install rpl
sudo rpl '6-sun' '7-oracle' /etc/init.d/openfire
sudo service openfire start

4. Open firewall ports for Openfire.

  • You need to open some ports on your firewall for Openfire to work.


    • Port 9090 : for the web interface.
    • Port 9091 : for SSL web interface.
    • Port 5222 : the main port used for client/server communication by Openfire.
    • Port 7777 : used for file transfer.
    • Port 7443 : used for unsecured Http client connections.
    • Port 7070 : used for secure Http client connections.
    • Port 3478, 3479 : used by the STUN Servive for entities behind a NAT.
    • Complete port list used by Openfire available here.
  • If you are using ufw firewall open a terminal and enter:

sudo ufw allow 9090/tcp
sudo ufw allow 9091/tcp
sudo ufw allow 5222/tcp
sudo ufw allow 7777/tcp
sudo ufw allow 7443/tcp
sudo ufw allow 7070/tcp
sudo ufw allow 3478/tcp
sudo ufw allow 3479/tcp

5. Configure Openfire server with web admin console.

  • The rest of the Openfire configuration will be done in the admin console.
  • Replace mydomain below with your FQDN or IP address of your server.
  • Open a browser and go to  :


  • You will be presented with the Openfire setup wizard. Follow the instructions. 
  • When asked select Database Settings > Standard Connection 
  • Make sure you enter the MySQL database hostname and database name in the Database URL line below - this is easily missed .


  • When done you can login to the admin console with your openfire admin username and password  on :


  • You can also login securely with SSL encryption enabled  on :



  • Some very important settings to consider are found under Server > Server Settings > Registration Settings


  • Then go to the User/Groups menu and add IM users.




How to remove openFire

First we need to stop the service:


sudo /etc/init.d/openfire stop

Now we need to remove from services:

sudo update-rc.d -f openfire remove

Now to remove it from startup file:

sudo rm /etc/init.d/openfire

Now to delete all the files located at /opt/openfire:

sudo rm -rf /opt/openfire

Last Item is to dump the database in mysql.

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in

Sign In Now

  • Create New...