Skip to content

Latest commit

 

History

History
92 lines (53 loc) · 3.96 KB

README.md

File metadata and controls

92 lines (53 loc) · 3.96 KB

IRC Server Deployment Project

Abstract

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).

Table of contents

  1. Introduction
  2. Research and Familiarization
  3. Deployment
  4. HOW TO ACCESS
  5. Conclusion
  6. Appendix

Introduction

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.

Research and Familiarization

  • 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.

Deployment

Server Setup

InspIRCd

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

Client Setup

The Lounge

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 the dpkg installation with force-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

Irssi

We installed the terminal client Irssi in a linux machine.

HOW TO ACCESS

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>

Conclusion

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.

Appendix

IRC

InspIRCd

The Lounge

Irssi

docker image InspIRCd