Hello, friends. In this post, you will learn how to deploy your own IRC server by installing Inspircd on Debian 10. The process is very easy and gives us many advantages that we can take advantage of in our institution.
First of all, it is important to remember that it is IRC. Internet Relay Chat is a real-time communications protocol. Using IRC, users should not establish communication beforehand, so that all users on a channel can communicate with each other, even if they have had no previous contact. Widely used for discussions and technical support of many open source projects.
The first thing to do is to connect to the server via SSH. After that, upgrading the system is always a good option.
sudo apt update sudo apt upgrade
With the system upgraded, we can start the installation of Inspircd on Debian 10. Fortunately, the package is in the official Debian 10 repositories so to install it, just run
sudo apt install inspircd Reading package lists… Done Building dependency tree Reading state information… Done The following additional packages will be installed: libmariadb3 libpq5 libtre5 mariadb-common mysql-common Suggested packages: sqlite3 default-mysql-server ldap-server postgresql gnutls-bin tre-agrep The following NEW packages will be installed: inspircd libmariadb3 libpq5 libtre5 mariadb-common mysql-common 0 upgraded, 6 newly installed, 0 to remove and 26 not upgraded. Need to get 1,848 kB of archives. After this operation, 11.8 MB of additional disk space will be used. Do you want to continue? [Y/n]
This way, we will be able to use it and configure it for our instance.
The program as such is installed, but before using it we have to configure it.
First, on our system, we have to open ports
6667 where the application works.
Then, we have to examine the
/etc/inspircd/inspircd.conf file which is where all the application configuration resides. It is a long file, but very well structured so we should have no problems editing it.
Before making any changes, make a backup of it.
sudo cp /etc/inspircd/inspircd.conf /etc/inspircd/inspircd.conf.bak
Now, yes, we can edit it.
sudo nano /etc/inspircd/inspircd.conf
server tab you have to configure the basics of the instance. In our chaos, we have left it as follows.
<server name="osradatest.ga" description="Example IRC Server" id="1AB" network="The osradar net">
name value with your domain and
network with your network name. Set a description and leave the value of
id as is.
Now in the
admin tag create the admin user. Set a name, nickname, and email address.
<admin name="Example User" nick="example-user" email="firstname.lastname@example.org">
Then locate the
bind tag and here we have the
address values where the server will be available. If you leave it blank, it will be accessible from any host which is desired if you want it to be available via the internet. The other
ports value is to define the listening port which by default is
6667 and in
type leave it
<bind address="" port="6667" type="clients">
The admin user can shut down or restart the server. But to do this he has to enter a password which we can define in the
power tag in the
<power diepass="shutdown-password" restartpass="restart-password" pause="2">
After this, he creates an operator user in the
oper tag. Again, in the
host value he can define from which location he can log in. In my case, I have left it accessible from any host, but a good practice would be to limit it to
localhost or a specific IP. Also, set a password and leave the
<oper name="example-user" password="password" host="*@*" type="NetAdmin">
We won’t touch anything else, for now, so save your changes and close the editor.
Now, you should edit these two files. The first one is
/etc/inspircd/inspircd.motd which will serve as the first message. And the other one is
/etc/inspircd/inspircd.rules where you can set rules for behaviours that can be displayed from a client.
To apply the changes, you have to restart the program.
sudo systemctl restart inspircd
And you can check the status of it
sudo systemctl status inspircd ● inspircd.service - IRC server Loaded: loaded (/lib/systemd/system/inspircd.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2021-07-09 18:26:07 CEST; 14s ago Docs: man:inspircd(1) Main PID: 2711 (inspircd) Tasks: 1 (limit: 2296) Memory: 2.1M CGroup: /system.slice/inspircd.service └─2711 /usr/sbin/inspircd --logfile /var/log/inspircd.log --config /etc/inspircd/inspircd.conf --nofork Jul 09 18:26:07 osradar systemd: Started IRC server. Jul 09 18:26:07 osradar inspircd: Inspire Internet Relay Chat Server Jul 09 18:26:07 osradar inspircd: (C) InspIRCd Development Team. Jul 09 18:26:07 osradar inspircd: Developers: Jul 09 18:26:07 osradar inspircd: Brain, FrostyCoolSlug, w00t, Om, Special, peavey Jul 09 18:26:07 osradar inspircd: aquanight, psychon, dz, danieldg, jackmcbarn Jul 09 18:26:07 osradar inspircd: Attila Jul 09 18:26:07 osradar inspircd: Others: See /INFO Output Jul 09 18:26:07 osradar inspircd: Loading core commands…………………………………………….. Jul 09 18:26:07 osradar inspircd: InspIRCd is now running as 'osradartest.ga'[1AB] with 1024 max open sockets
The best way to find out if everything went well is to run a client. In this case, we have chosen
weechat as it is terminal and lightweight. Ideal for testing.
So, install it on Ubuntu and Debian running
sudo apt install weechat
Now add our server by running
/server add [server-alias] [your-domain]
When added, you can connect via
If you need to, you can connect as an operator user.
As you can see in the screenshots, everything went fine.
To secure your communications you should obtain and add SSL certificates using Certbot.
So, install it.
sudo apt install certbot
and get a certificate for your domain
sudo certbot certonly --standalone --preferred-challenges http -d [your-domain]
And now to add it to the program and secure the connection, create a folder for it inside the program settings
sudo mkdir /etc/inspircd/ssl
Then, copy the obtained certificates to this folder
sudo cp /etc/letsencrypt/live/[your-domain]/fullchain.pem /etc/inspircd/ssl/cert.pem sudo cp /etc/letsencrypt/live/[your-domain]/privkey.pem /etc/inspircd/ssl/key.pem
Now make the
irc user the owner of that folder to prevent others from taking advantage of it.
sudo chown -R irc:irc /etc/inspircd
Now in the Inspircd configuration file, you need to add the following information
sudo nano /etc/inspircd/inspircd.conf
And under the
bind tag add the following.
<gnutls certfile="/etc/inspircd/ssl/cert.pem" keyfile="/etc/inspircd/ssl/key.pem" priority="SECURE192:-VERS-SSL3.0"> <module name="m_ssl_gnutls.so">
In short, we are just indicating the location of the certificates.
Save the changes and restart the service
sudo systemctl restart inspircd
And now to connect, remove the previous alias in
/server from the [alias]
When using SSL the port to use is 6697 which you have to open in the firewall and add another alias as follows.
/server add [alias] [your-domain]/6697 -ssl
And then connect again.
So, enjoy it.
In this post, you learned how to install an IRC server using Inspircd. This way you can create one and manage it without any problems.
More info: Official Documentation