Hello, friends. In this post, you will learn how to install OpenFire server on Debian 10. This is an XMMP server that helps to manage the internal communications of a company using this well-known protocol.
According to the application’s website:
Openfire is a real-time collaboration (RTC) server licensed under the Open Source Apache License. It uses the only widely adopted open protocol for instant messaging, XMPP Openfire is incredibly easy to setup and administer, but offers rock-solid security and performance.
Thanks to this application we can create our own chat system in an internal network or with internet access. In this way, it joins a long list of professional applications with which we can work in an organization.
The installation process consists of several parts to achieve the goal.
So, open a terminal or connect via SSH to the DEbian server and update the system.
sudo apt update sudo apt upgrade
Now you have to visit the OpenFire download site to find out which is the latest version of the program.
At the time of writing this post, the latest stable version is
4.6.2 which can be downloaded using various formats. To simplify the installation process we will opt to download the DEB package with the
wget command. You can also download it on a client computer and upload it to the server.
wget https://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_4.6.2_all.deb -O openfire.deb
Remember that this command will vary depending on the version of OpenFire.
Running the above command will download the file and rename it to oepnfire.deb which we need to install.
sudo apt install ./openfire.deb Reading package lists... Done Building dependency tree Reading state information... Done Note, selecting 'openfire' instead of './openfire.deb' The following additional packages will be installed: ca-certificates-java default-jre-headless fontconfig-config fonts-dejavu-core java-common libasound2 libasound2-data libavahi-client3 libavahi-common-data libavahi-common3 libcups2 libfontconfig1 libjpeg62-turbo liblcms2-2 libnspr4 libnss3 libpcsclite1 libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 libxext6 libxi6 libxrender1 libxtst6 openjdk-11-jre-headless x11-common Suggested packages: default-jre libasound2-plugins alsa-utils cups-common liblcms2-utils pcscd libnss-mdns fonts-dejavu-extra fonts-ipafont-gothic fonts-ipafont-mincho fonts-wqy-microhei | fonts-wqy-zenhei fonts-indic The following NEW packages will be installed: ca-certificates-java default-jre-headless fontconfig-config fonts-dejavu-core java-common libasound2 libasound2-data libavahi-client3 libavahi-common-data libavahi-common3 libcups2 libfontconfig1 libjpeg62-turbo liblcms2-2 libnspr4 libnss3 libpcsclite1 libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 libxext6 libxi6 libxrender1 libxtst6 openfire openjdk-11-jre-headless x11-common 0 upgraded, 29 newly installed, 0 to remove and 5 not upgraded. Need to get 43.7 MB/86.9 MB of archives. After this operation, 239 MB of additional disk space will be used. Do you want to continue? [Y/n]
OpenFire depends on Java so during the installation process it will also install Java and other packages. But this will be taken care of by APT.
At the end of the process, a new system service will be created to manage the application. The first thing you have to do is to start and enable the service to start with the system.
sudo systemctl enable --now openfire openfire.service is not a native service, redirecting to systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable openfire
And check the status
sudo systemctl status openfire
● openfire.service - LSB: Start/stop openfire jabber server Loaded: loaded (/etc/init.d/openfire; generated) Active: active (running) since Fri 2021-03-12 14:49:16 CET; 48s ago Docs: man:systemd-sysv-generator(8) Tasks: 26 (limit: 2296) Memory: 110.1M CGroup: /system.slice/openfire.service └─3416 /bin/java -server -DopenfireHome=/usr/share/openfire -Dlog4j.configurationFile=/usr/share/openfire/lib/log4j2.xml -Dopenfire.lib.dir=/usr/share/openfir Mar 12 14:49:15 osradar systemd: Starting LSB: Start/stop openfire jabber server... Mar 12 14:49:16 osradar openfire: best java alternative in: Mar 12 14:49:16 osradar openfire: Starting openfire: openfire. Mar 12 14:49:16 osradar systemd: Started LSB: Start/stop openfire jabber server.
OpenFire has its own database driver, but it is also possible to use MariaDB / MySQL or PostgreSQL which increases the performance of the application but the flexibility.
So, install it with the following command:
sudo apt install mariadb-server
Then, configure it:
Then create a new database and user for OpenFire:
sudo mysql -u root -p
CREATE DATABASE openfire;
GRANT ALL PRIVILEGES ON openfire.* TO 'openfire'@'localhost' IDENTIFIED BY 'password';
Replace the fields with the data you want and set a strong password.
Now upload the default OpenFire data to the created database
sudo mysql -u openfire -p'password'
'password' with your password
Inside the MariaDB shell, switch to the created database and load the data:
USE openfire; source /usr/share/openfire/resources/database/openfire_mysql.sql;
And to verify the changes, you can run:
And there you should see all the tables loaded.
There are many ports that we have to open in the firewall for OpenFire to work properly.
So, start opening them:
sudo ufw allow 9090 sudo ufw allow 9091 sudo ufw allow 5222 sudo ufw allow 7777
This should get the application working.
Now, you have to open a web browser and go to
http://your-domain:9090 and you will see the following screen
Select the language of the installation and click Continue.
Then set the server options. There you will be able to configure the XMMP domain and define other ports to replace the default ones.
Next, you can choose to use the internal database driver or an external one as we have done. So, choose the first option.
In this step, you have to configure the database connection. Select MySQL and in the url modify the values of hostname and database name.
Database URL:jdbc:mysql://localhost/openfire?useUnicode=true characterEncoding=UTF-8&characterSetResults=UTF-8
Below define the username and password for the OpenFire user we have created.
You can also configure the database connections.
If the connection is successful, you will see the profile options.
Next, you have to create an administrator account with an email and password.
In the end, you will see this message indicating that everything went well.
Then go to the login screen
and finally, you will be in the OpenFire control panel.
So, enjoy it.
OpenFire helps us with a very common task in all modern organizations. Creating an XMMP server can be very useful and help us with our tasks.