LibreServer Blog / Redoing IRC

With Freenode melting down under an aristocratic dictatorship this was a reminder to revisit the IRC app which is going to exist within the next version of Freedombone. I had already switched from ngircd to miniircd, but miniircd as it previously existed was extremely basic in its functionality. Since it's written in Python and easy to hack on, I've implemented many of the IRC protocol features related to creating accounts and doing moderation. My forked version is on Gitlab.

With moderation features in place the implementation of IRC on Freedombone can be made pretty secure, such that it remains under the control of server members. IRC accounts are generated automatically based on the Freedombone web admin members section, and the IRC server is configured by default such that only members are permitted to send messages and join or create channels. If you need to allow extra people onto your server then you can use the NEWREG command to define a number of new registrations permitted. The whole thing also runs in a chroot with limited privileges.

In 2021, you may well ask, why even have an IRC app at all? Isn't IRC an outdated relic from a bygone era?

It depends who you ask. IRC still seems to play a role in the development of many well known Free Software projects, and it does have the advantage of being able to run well on extremely minimal hardware, such as Orange Pi Zero. The minimal requirements means that it should not be very difficult to run your own IRC server and avoid having your fate - or that of your project - decided through corporate shenanigans.