Featured image of post From zero to IRC server in just a day

From zero to IRC server in just a day

What hyperfixating over something can truly reward

Whoops I almost slipped to the realm of not writing.

What can I say.. this past few days I was hyperfixating with IRC, and yesterday alone I spent the entire day setting up a small IRC server for my project circle just for the heck of it because I don’t think any sane, normal person will use IRC in this day and age, especially when Discord exist. I’m here not to discuss the technical aspect of it, but my experiences setting up these little gremlins.

The first thing I need to do is to find an IRCd, or what people call IRC daemon. This thing is the one that responsible to implement IRC protocols so that people can talk over the internet. I was looking to install InspIRCd just because it look popular enough, but after a few while I decided against it and proceed to get ngIRCd instead. The reason being ngIRCd is pretty much a small and simple IRC daemon, unlike InspiIRCd and UnrealIRCd which is quite complex under the hood and are tailored to big servers. But even ngIRCd is pretty tricky to set up the first time. Making it run with Systemd is just very annoying, and it failed to spawn so many times it got me frustrated. Eventually after a few hours I managed to get it to spin together with additional settings like user cloak to hide the IP address attached as hostname. But still, it’s pretty lonely since the server is quite barebone. So I decided to install a collection of IRC services that provide you stuff like NickServ, ChanServ and all those server management stuff.

There are two popular packages, Anope and Atheme. I decided to go with Atheme because it looks simple and modern enough, although not as popular as Anope. Atheme is even trickier not because it’s difficult to set up, it’s because I skipped reading docs and just DuckDuckGo-ing my way jumping across Github issues and forum posts to set the thing up. Had I sit down, sip some tea, and went through the docs properly, I’ll be done in few minutes. With some luck and patience, the services got through and connected to my server. I just need to attach a few modules afterwards and I already have a collection of Servs at my disposal.

At the end of the day, after wrestling with all the configurations and seemingly hundreds of errors, I finally managed to own a complete small IRC server with all the bells and whistles. I finished them up by getting an IRC bot because what’s IRC without all those bots. After few searches I decided on using Limnoria, a successor to Supybot. I also set up The Lounge web client so anyone (my friends) without desktop client can join the server easily. The whole process was quite frustrating and fun at the same time and I learnt a lot along the way. Still feel like wanting to try writing IRC bot from scratch so I would have extra goodies for my small server.

Where is the server, you ask? As this is for my own amusement, I will just keep it to myself and several friends for now. It’s public and part of a project I was in, but one needs to know the address to enter and I don’t think anyone else interested at this point of time. Maybe one day when the project become bigger, people will find out and join the server by themselves. That is if the server is still available at that point.

The so-called small IRC server

Licensed under CC BY-NC-SA 4.0
Last updated on Jan 16, 2026 20:27 +0800
Built with Hugo
Theme Stack designed by Jimmy