OpenFire is a real time collaboration (RTC) server licensed under Open Source Apache License. It uses the only widely adopted open protocol for instant messaging, XMPP (also called Jabber). In other word, OpenFire is free open source application used for building a chat server.
In this article we will use OpenFire to build a chat server on ubuntu. In this article I use:
- Ubuntu 12.04
- Oracle Java Development Kit (JDK)
Please note that all the command invoked on terminal are using root privilege!
It is always a good choice to update and upgrade your system. To do so, do following:
apt-get update apt-get upgrade
Update / Install Latest JDK
We will use Oracle JDK instead of OpenJDK. First we need to uninstall OpenJDK (purge it!)
apt-get remove --purge openjdk*
Once the purge complete, install Oracle JDK
apt-get install oracle-java7-installer
The database used here is MySQL server. If you haven’t install it, you can invoke following command to install it.
apt-get install mysql-server
Now, login to mysql
mysql -u root -p
Next, create a database by these series of SQL command:
CREATE DATABASE dbopenfire CHARACTER SET='utf8'; CREATE USER 'openfire'@'localhost' IDENTIFIED BY '0wnByX4thrya'; GRANT ALL PRIVILEGES ON dbopenfire.* TO [email protected] WITH GRANT OPTION; FLUSH PRIVILEGES;
and then quit. Note that you can change the password identification for user openfire.
Download the latest OpenFire package for Debian-based Linux. The latest version of OpenFire (per September 15th, 2013) is 3.8.2 which can be downloaded here.
Or, you can install it directly.
cd /tmp wget http://www.igniterealtime.org/downloads/download-landing.jsp?file=openfire/openfire_3.8.2_all.deb dpkg -i openfire_3.8.2_all.deb
Now, replace java-6-sun with java-7-oracle (we have install java-7-oracle, right?)
apt-get install rpl rpl '6-sun' '7-oracle' /etc/init.d/openfire service openfire start
Now, set the firewall to allow packet traffic for ports used by openfire.
ufw allow 9090/tcp ufw allow 9091/tcp ufw allow 5222/tcp ufw allow 7777/tcp ufw allow 7443/tcp ufw allow 7070/tcp ufw allow 3478/tcp ufw allow 3479/tcp
Now we will configure the OpenFire by web.
Open your browser and go to http://Your-IP:9090 where Your IP is your server IP.
Click continue until you reach setting for database connection (we omit other default setting). Choose Standard Database Connection. Now you will get a form. Fill the form with setting we use on previous sections. For example:
- Database Driver Presets = MySQL
- JDBC Driver Class = com.mysql.jdbc.Driver
- Database Url = jdbc:mysql://localhost:3306/dbopenfire
- Username = openfire
- Password = <the password you set>
- Minimum connections = 5
- Maximum connections = 25
- Connection Timeout = 1.0 Days
On profile setting, choose default and click on continue.
Now set the administrator account. You pick the password by yourself, and should be different from database password.
The configuration is finished.
Add New Account
To add new account, click on User Groups -> Users -> Create New User. Fill the required information.
Basically, any XMPP/JABBER capable client can connect to this chat server. For an alternative, you can use Spark which is developed by the very same developer who develop OpenFire. You can download it here. Download in respect of your client operating system.