diff options
Diffstat (limited to 'blog/starting-an-irc-server-in-2021.md')
-rw-r--r-- | blog/starting-an-irc-server-in-2021.md | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/blog/starting-an-irc-server-in-2021.md b/blog/starting-an-irc-server-in-2021.md new file mode 100644 index 0000000..6b95dd1 --- /dev/null +++ b/blog/starting-an-irc-server-in-2021.md @@ -0,0 +1,28 @@ +--- +title: "Starting an IRC Server in 2021" +date: 2021-05-19 +draft: true +--- + +I've been spending a lot of time on IRC[^1] lately, whether it's on Freenode (now Libera), ScoutLink, or a network for my friends. There was some drama on the friend network, which resulted in control being passed to me. This led to me needing to stand up a complete IRCd with services in a short period of time. This blog post is going to document what I did to do this, and some of the design choices I made. I don't want this post to devolve into *why* you should use IRC in 2021, that's a discussion for another time. + +## IRCd +The heart of any IRC network is the IRCd. It manages the connections and keeps all the data flowing between clients. For this part of my network, I chose [InspIRCd][inspircd]. This IRCd was chosen for its stability and ease of configuration. All the config options are stored as XML files, which makes it easy for me to, in the future, add programmatic configuration for things like opers and other things. + +## Services +The other big part of the IRC server is the services package you use. This is like an IRCd, but users don't directly connect to it. Instead, they send commands to "fake" users on the network, named things like `NickServ`, `ChanServ`, etc. These services will manage things like user accounts and channels, to make it easier on both network staff and end users. + +## Client +Finally, the client. I wanted to have something that non-technical users could use to get online with minimal setup. For this, I opted to self-host an instance of [thelounge][thelounge], a web-based IRC client. It also acts as a bouncer[^2], which keeps them logged into the server even when they're not looking at it. + +In my opinion, thelounge solves one of the biggest issues with IRC, namely that it's not user-friendly. IRC is an old and venerated protocol. It has quirks dating back years, and it sometimes takes skill to navigate them. I'm going to go off-topic a bit here, and talk briefly about how I think IRC can make a comeback. IRC *desperately* needs user-friendliness. The days of complex clients need to end, or at least be complemented by newbie-friendly clients. If clients like thelounge can be made to do certain tasks automatically, like registering with Nickserv, and allowing registrations on "private" instances, it would be easier to market IRC as an easy replacement for proprietary apps. + +Back on-topic, the client is hosted on a separate server from the IRCd. People who use it can join other networks, like Libera or OFTC, from the same place. This makes it similar to, for example, Mastodon, where people centralize in small clusters. In this way, their IRC life is centered around the client, which they can access from their phone, laptop, or desktop. It works really well when you're trying to get people online quickly. + +Personally, I connect through ZNC, but that's a topic for later (if ever). + +[^1]: Internet Relay Chat +[^2]: A bouncer is a program that runs constantly, keeping you connected to IRC. It gathers all the logs and relays them to your client when it connects. In this case, the client *is* the bouncer. + +[inspircd]: https://inspircd.org +[thelounge]: https://thelounge.chat |