User Tools

Site Tools


installing_irc_at_home

This is an old revision of the document!


Installing IRC at Home

Not because you need to, but because you can.

Summary

This how-to covers installing and IRC server and clients for a typical home LAN. The hardware and OS used is a Raspberry Pi 2 with FreeBSD 12.1, but any system with a recent BSD variant should work with little need or no modification.

At the time of writing, the SDF servers run InspIRCd for the server side and ircII for the default client. The same software is used in this document. In addition, this how-to covers Pidgin, a Windows/Mac GUI client that can be used for IRC as well as other instant messaging protocols.

Installing Server-Side Software

This section details how to install the InspIRCd server as well as ircII client using pkgtool.

Log in as root to run the following pkg commands:

  • pkg update
  • pkg install inspircd
  • pkg install ircii

Configuring InspIRCd

Configuring the server software is by far the majority of effort required. I am adding some diffs of the config at the end of this document so you can check your work.

You'll need to run everything in this section as the root user.

First, change directory to /usr/local/etc/inspircd. This is where all of the configuration files are.

inspircd.conf

Next, use your favorite text editor to open up inspircd.conf.

The file is quite large, but the majority is comments and instructions. The changes to be made will include section names. Section names are in centered and written in all caps inside the file, so they're easy to find.

SERVER DESCRIPTION

Start with the section entitled SERVER DESCRIPTION. Here you will find the server configuration spread out over several lines and interspersed with comments. For the examples in this document, I am naming the server “beastie” after the FreeBSD mascot. My server section (without the comments) looks like this:

<server name="beastie.home.lan"
  description="Beastie’s World"
  network="Home">

As noted in the configuration file's comments, this DNS name does not need to resolve to an IP address, so don't worry if your only DNS is provided by your ISP.

ADMIN INFORMATION

The next section to be edited is ADMIN INFORMATION. This is where the server administrator's contact information goes. Like the server description, it is purely informational and does not have to be a real email address or resolvable DNS name. Following my example so far, here's what I have:

<admin
  name="Beastie"
  nick="beastie"
  email="beastie@beastie.home.lan">

Again, this is all just a made-up tribute to the FreeBSD mascot. You can enter whatever you like for your set-up.

CONNECTIONS CONFIGURATION

No changes are needed for the PORT CONFIGURATION, so we can move on to CONNECTIONS CONFIGURATION. The changes here involve changing resolvehostnames=“yes” to resolvehostnames=“no”.

The reason for this is entirely because of DNS. Unless you are running a robust DNS infrastructure on your LAN, chances are good that your ISP's router (the typical home LAN DNS server) will not do reverse look-ups. Setting resolvehostnames=“no” will instruct InspIRCd to not even try, sparing you countless warning messages.

If you have a more robust DNS server on your network, you can certainly leave this as-is. If you see errors like “Could not resolve your hostname: Malformed answer” when logging in, it means the reverse lookups are not working.

There are two resolvehostnames=“yes” entries that must be changed. They should look like this when you're done:

resolvehostnames="no"

Do not give into the temptation to comment the lines out. This is not the same as setting it to no.

Sections left as default

These are the sections that do not need changes and can be skipped over:

  • CIDR CONFIGURATION
  • MISCELLANEOUS CONFIGURATION
  • DNS SERVER
  • PID FILE
  • LIST MODE LIMITS
  • SERVER OPTIONS
  • PERFORMANCE CONFIGURATION
  • SECURITY CONFIGURATION
  • LIMITS CONFIGURATION
  • PATHS CONFIGURATION
  • WHOWAS OPTIONS
  • BAN OPTIONS
  • INSANE BAN OPTIONS

MODULES

The next section to need editing is MODULES. You will have scrolled by quite a few sections to get there.

There is only one change to be made in the MODULES section and that is to uncomment the line that reads: #<include file=“modules.conf”>, by removing the leading hash character.

It should look like this when you're done:

<include file="modules.conf">

This has the effect of instructing InspIRCd to process all the directives in modules.conf as well as the ones in the main configuration file. The reason for doing this is to enable the permanent channels feature. We'll get to that as soon as we save the changes to the inspircd.conf file.

There is no need to change anything in the SERVICES CONFIGURATION section or anything else in inspircd.conf.

modules.conf

After including modules.conf inside of inspircd.conf, the next step is to edit modules.conf. The entire reason for using modules.conf in this how-to document is to use the permanent channel feature. This involves uncommenting one line and adding a line just below.

Open modules.conf and search for: #<module name=“permchannels”>. Uncomment the line by removing the leading hash (#).

It should look like this:

<module name="permchannels">

A little less than 20 lines later, you will see: #<permchannels channel=“#opers” modes=“isP” topic=“Opers only.”>

This is an example line showing how to configure a permanent channel. On the line after that, you can add your own. Mine looks like this:

<permchannels channel="#home" topic="Is where the <3 is.">

Notice I removed the modes attribute. It is not required, and defaults suit me fine here.

There is no more configuration needed for the modules.conf file.

motd.txt

Finally, we get to the last InspIRCd file that needs to be edited. This is the motd.txt file that is displayed whenever users log onto the IRC server.

The reason for editing this is to simplify things. The included motd.txt file includes some fabulous ASCII art that causes any server messages to scroll right off the screen. I've changed mine

installing_irc_at_home.1593704043.txt.gz · Last modified: 2020/07/02 15:34 by waxphilosophic