Roll Your Own LAN Instant Messaging Platform with OpenFire on Linux
#OpenFire #InstantMessaging #XMPP #Self-Hosted
Full steps can be found at https://i12bretro.github.io/tutorials/0732.html
What is OpenFire?
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. - https://igniterealtime.org/projects/openfire/
OpenFire Download and Installation
01. Log into the Linux based device
02. Run the following commands in the terminal
# update software repositories
sudo apt update
# install available software updates
sudo apt upgrade -y
# install openjdk
sudo apt install default-jdk -y
# install MySQL
sudo apt install mariadb-server mariadb-client -y
# lookup the latest .deb download URL
regex='"≫(openfire_[^/]*_all\.deb)≪\/a≫' && response=$(curl -s https://www.igniterealtime.org/downloads/) && [[ $response =~ $regex ]] && downloadURL="https://www.igniterealtime.org/downloadServlet?filename=openfire/${BASH_REMATCH[1]}"
# download openfire
wget -O OpenFire.deb $downloadURL
# install openfire
sudo dpkg -i ./OpenFire.deb
# configure the MySQL database
sudo su
mysql_secure_installation
03. Press Enter to login as root
04. Type N and press Enter to switch to unix_socket authentication
05. Type Y and press Enter to set a root password, type the password twice to confirm
06. Type Y and press Enter to remove anonymous users
07. Type Y and press Enter to disallow root login remotely
08. Type Y and press Enter to remove the test database
09. Type Y and press Enter to reload privilege tables
10. Run the following command to login into MySQL:
mysql -u root -p
11. Authenticate with the root password set earlier
12. Run the following commands to create the OpenFire database and database user
CREATE DATABASE openfire;
GRANT ALL ON openfire.* TO 'openfire_rw'@'localhost' IDENTIFIED BY 'Op3nF1re';
FLUSH PRIVILEGES;
use openfire;
source /usr/share/openfire/resources/database/openfire_mysql.sql;
EXIT;
exit
13. Open a web browser and navigate to http://DNSorIP:9090/setup/index.jsp
14. Select a language ≫ Click Continue
15. Set the XMPP domain name and input the server fully qualified domain name ≫ Click Continue
16. Select Standard Database Connection ≫ Click Continue
17. Complete the Database Settings form as follows
Database Driver Presets: MySQL
JDBC Driver Class: com.mysql.jdbc.Driver
Database URL: jdbc:mysql://127.0.0.1/openfire?useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8
Username: openfire_rw
Password: Op3nF1re
18. Click Continue
19. Select Default on the Profile Settings page ≫ Click Continue
20. Input an admin email address and password ≫ Click Continue
21. Click the Login to the admin console button
22. Login with username admin and the password created previously
23. Click the Users/Groups tab
24. Click Create New User in the left navigation menu
25. Create a username and password for the new user
26. Follow the steps to create as many users as needed, at least 2 are needed for testing
Setting Up A XMPP Client
01. Run the following commands in the open terminal window
# install pidgin
sudo apt install pidgin -y
02. Launch Pidgin
03. Click Add...
04. Select XMPP from the protocol dropdown
05. Input the first username created above along with the XMPP domain setup in OpenFire and the user's password
06. Click the Advanced tab ≫ Select Use encryption if available from the Connection security dropdown
07. Enter the OpenFire fully qualified server name in the server field
08. Click the Add button
09. Click Accept on the self-signed certificate popup
10. Install and launch Pidgin on a second device
11. Click Add...
12. Select XMPP from the protocol dropdown
13. Input the second username created above along with the XMPP domain setup in OpenFire and the user's password
14. Click the Advanced tab ≫ Select Use encryption if available from the Connection security dropdown
15. Enter the OpenFire fully qualified server name in the server field
16. Click the Add button
17. Click Accept on the self-signed certificate popup
18. From one of the devices, select Buddies ≫ Add Buddy
19. Input the opposite devices username
20. On the second device accept the message request and the two devices should be able to send and receive instant messages using the OpenFire XMPP server
### Connect with me and others ###
★ Discord: https://discord.com/invite/EzenvmSHW8
★ Reddit: https://reddit.com/r/i12bretro
★ Twitter: https://twitter.com/i12bretro