This project involves deploying an IRC server for instant messaging, requiring research on IRC components. Using Irssi client for linux CLI and a self-hosted IRC InspIRCd server and a web client (thelounge).
Internet Relay Chat (IRC) is a text-based chat system for instant messaging. IRC is designed for group communication in discussion forums, called channels, but also allows one-on-one communication via private messages.
This is implemented as an application layer protocol.
- Understand the components of IRC, including clients, servers, communication protocols.
For this project, we wanted to have a IRC Server in the XAMK network. This network is private, only accessible from some classes of the campus.
We wanted to self-host a client for the IRC Server, finding one called The Lounge. IRC Server called InspIRCd filled our needs for the server with their docker image. Also, for a terminal client, we executed Irssi.
We deployed the IRC Server in a proxmox-vm, using the docker image InspIRCd. With the simple command:
sudo docker run -d --name ircd -p 6667:6667 inspircd/inspircd-docker
We self-host the web client The Lounge in the same proxmox-vm as the server. In this case, instead of deploying a docker image like in the server, we installed it as a debian package.
This is not recommended for production, but 'cause we wanted to experience how different is a installation in a fresh vm over a docker image; this caused several problems:
- apt repositories didn't have support for the node version required by thelounge, so we had to install it manually and force thedpkg
installation withforce-all
- deal with permissions errors.
Then, we managed to execute the web client in the port 9000 and execute it as a systemctl
service (thelounge.service).
config file: config.js
We installed the terminal client Irssi in a linux machine.
Our server is deployed in the XAMK network, with the following address 172.20.49.11
.
(RECOMMENDED) If you want to connect to the server, you can use the web client The Lounge in the following address: 172.20.49.11:9000.
Address already configured to access the server.
The Lounge offer support for multiple devices through a web browser, it supports PWA so it's possible to install it as a native app in your phone.
If you want to use Irssi do it with the following commands:
/connect 172.20.49.11
/channel #general
/nick <your-nick>
/msg #general <your-message>
We set up an IRC server using InspIRCd and a web client called The Lounge right in the XAMK network. We hit a few bumps along the way, but we learned from it. We even got a terminal client, Irssi, up and running on a Linux machine. Now, anyone in the XAMK network can chat in real-time, whether they prefer a web interface or a terminal.