IRC server: How to create your own IRC network
More than 30 years after its invention, people looking for a simple solution for intra-organizational or intra-company communication may come across the tried and tested IRC (Internet Relay Chat). An IRC server can be set up quickly and is accessible across all platforms.
- Unlimited traffic
- Fast SSD NVMe storage
- Free Plesk Web Host Edition
An IRC server for your own IRC chats: step-by-step tutorial
The fact that IRC is still in demand as an interactive chat platform more than 30 years after its release has several reasons. First and foremost, there are IRC clients for almost all operating systems and devices. Additionally, the technology behind the text-based chat system impresses thanks to its simplicity. Setting up your own IRC server for internal communication — whether it’s a large corporation, SME, organization, or club — is easy.
In the following sections, you will learn about the requirements for an IRC server and how to set up and configure a server for your own IRC chats.
Step 1: Find the right hardware base
If you want to run your own public or private IRC chats, you can use external solutions such as the Libera Chat online servers. However, having your own individual IRC server gives you full control over all data, logs, and settings. Moreover, you don’t have to deal with the daily risks and problems caused by bots and spammers in publicly available IRC networks.
If you do not want to purchase a separate computer for hosting the IRC server application, it is recommended that you rent server hardware from a provider for this purpose. The hardware requirements are so minimalistic that you are usually already well positioned for IRC chats with several hundred participants with affordable rates. The rule of thumb is: the more people you want to be able to access the IRC server at the same time, the more RAM and CPU you should rent. In the following table, we have listed three typical application scenarios and matching server plans from IONOS as examples.
The vServer plans (VPS) from IONOS recommended in the table use virtualized resources as the basis for your IRC server. Compared to IONOS Dedicated Servers, which use dedicated enterprise hardware, this does not result in any fundamental performance loss.
Step 2: Pick IRC daemon (IRCd)
The server software for IRC chats is called IRC daemon, IRCd for short. The first daemon, which IRC inventor Jarkko Oikarinen released as free software in 1988, served as a template for many more advanced versions. Other daemons, such as the one used in the tutorial InspIRCd, were developed from scratch. Like the clients, the server applications are generally cross-platform.
For example, you can run InspIRCd with all popular server operating systems from Microsoft, but also with the typical Linux distributions such as Ubuntu and Debian, as well as with Mac and BSD systems.
Step 3: Install IRC server
Once you have decided on a server application, you can install it, including all the components required for it.
If you have rented external server resources, first establish a remote connection to the hardware environment. IONOS customers can conveniently set up the remote connection via the web-based Customer Center.
For this tutorial, in which we work with a Linux server as an example, we have chosen the popular IRC daemon InspIRCd, written in C++, as already mentioned. Before we can install the software, however, we first set up the necessary dependencies via the terminal. Specifically, these are the following components:
The version management system Git:
sudo apt-get install git
The scripting language Perl:
sudo apt-get install perl
The C++-Compiler G++:
sudo apt-get install g++
The build management tool make:
sudo apt-get install make
After you have installed all dependencies, you can now download the latest version of the IRC daemon. You can find the required data in the official GitHub directory of InspIRCd. With the following terminal command, we download the source files of the latest edition (here: 3.12.0; April 2022):
wget https://github.com/inspircd/inspircd/archive/v3.12.0.tar.gz
Then we’ll unpack the zipped source files with tar:
tar xvf ./v3.12.0.tar.gz
Step 4: Create the IRC server (build process)
The next step is the build process of your own IRC installation. To do this, first change to the installation directory of InspIRCd:
cd inspircd-3.12.0
The version number must be adjusted accordingly if you have previously downloaded a different InspIRCd version.
To prepare the build, execute the following command afterwards:
perl ./configure
Now answer a number of questions to continue the configuration — including whether you want to adjust the default paths of the program data or activate modules manually. Once you have set the basic setup, start the build process:
make -j5 install
If the process was successful, the terminal presents you with the message “INSTALL COMPLETE!”.
Step 5: Configure server
Now create a new text file for the IRC server configuration settings in the following directory:
~/run/conf/inspircd.conf
Insert the following sample configuration into the file:
<config format="xml">
<define name="bindip" value="1.2.2.3">
<define name="localips" value="&bindip;/24">
####### SERVER CONFIGURATION #######
<server
name="SERVER_HOSTNAME/FQDN"
description="SERVER_DESCRIPTION"
id="SERVER_SID"
network="NETWORK_NAME">
####### ADMIN INFO #######
<admin
name="ADMIN_NAME"
nick="ADMIN_NICK"
email="ADMIN_EMAIL">
####### PORT CONFIGURATION #######
<bind
address="SERVER_IP"
port="SERVER_PORT"
type="SERVER_TYPE">
However, you cannot accept these settings unchanged. For your own IRC server configuration, you must replace the placeholders marked in capital letters with the respective individual information:
- SERVER_HOSTNAME/FQDN: Host name or FQDN of your server
- SERVER_DESCRIPTION: Short description about the IRC server
- SERVER_SID: Unique sequence of three characters; first character must be a number, letters must be capitalized
- NETWORK_NAME: Name of your IRC network
- ADMIN_NAME: Name of the IRC server administrator
- ADMIN_NICK: Nickname of the IRC server administrator
- ADMIN_EMAIL: Email address of the IRC server administrator
- SERVER_IP: IP address through which the IRC server is accessible
- SERVER_PORT: Server port (typically: 6697)
- SERVER_TYPE: Type of connection allowed for this endpoint (default: clients)
A detailed list about the possible settings in inspircd.conf is provided by the official InspIRCd online documentation.
Step 6: Start InspIRCd daemon
Save your custom configuration and start the IRC server application by running the following terminal command in the InspIRCd directory:
run/inspircd start
If the IRC server application starts successfully, the terminal presents you with a corresponding success message including the process ID of the daemon (here: 10865). Now you can connect to the server with any compatible IRC client like HexChat or Pidgin - and create and administer any IRC chats with the defined administrator account.
To stop the IRC server, run the command “run/inspircd stop” in the installation directory of InspIRCd.