Internet Relay Chat was invented in Oulu, Finland in 1988, and is still today by thousands of enthusiasts. Unsurprisingly, its use peaked decades ago, but its relative simplicity and old school vibe make it fun to experiment with on your virtual private server1.
I'm going to use UnrealIRCd as the IRC server software in this tutorial, which is among the most popular and lists security as one of its foci (hopefully meaning that the default settings are security-wise). Don't expect the server to be completely secure, however – IRC technology is dated and was never intended to provide top-secret messaging. In fact, some modern IRC servers still allow clients to connect without any form of encryption. No, we're not going to allow that on our server.
This follows my procedure on Debian Linux; other flavors of Linux may be very similar, but Windows is quite different. I've not tried a Windows install but there are official instructions.
Start by downloading the appropriate version of UnrealIRCd from their website and extract the .tar.gz archive. The installation procedure is straightforward, but each step is important.
First, let's make a non-root user that can only access its own /home/<user> folder, as a way to sandbox UnrealIRCd if it somehow gets compromised. Something like:
(root)# adduser unrealircd --disabled-password
The --disabled-password flag lets you create a new user without being asked to provide a password for it. No password is fine since we're concerned with keeping this new user's things contained, not with outside forces gaining access to the new user.
Next, make sure the prerequisite software is installed; it's conveniently listed on the UnrealIRCd page. For Debian 13, it's
build-essential
pkg-config
gdb libssl-dev
libpcre2-dev
libargon2-dev
libsodium-dev
libc-ares-dev
libcurl4-openssl-dev
The last step is to configure and compile unrealircd. This is comprised of three commands:
(unrealircd)$ ./Config # note the capitalization and spelling (unrealircd)$ make (unrealircd)$ make install. # no sudo
Congratulations, you should have a working copy of UnrealIRCd on your server! I'll cover the configuration in the next part.
1 You do have your own virtual private server, right? Really, anyone who's interested in web stuff owes it to themselves to get a VPS and a domain name. You can find places offering a tiny VPS for less than $10 per month, and a domain can cost less than $1/month if you pick a suitable TLD (for example, .ee and .it domains are especially affordable). You should be able to complete the tutorial without a VPS or domain, by making a local IRC server for your LAN.