How to install InspIRCd

September 20, 2014

InspIRCd is a modular Internet Relay Chat (IRC) server written in C++ for Linux, BSD, Windows and Mac OS X systems which was created from scratch to be stable, modern and lightweight.
As InspIRCd is one of the few IRC servers written from scratch, it avoids a number of design flaws and performance issues that plague other more established projects, such as UnrealIRCd, while providing the same level of feature parity.

How do I install from source?

Dependencies

In order to build from source you will need to have the development tools for your system installed. On Debian-based systems this is the build-essential package and on RHEL-based systems this is the Development Tools package group.

If you want to use any modules with third-party dependencies you should have pkg-config and the development headers for the dependency installed.

Once you have dependencies installed you need to download the source code. You can choose between building the most recent release or, if you enjoy living on the edge, the latest code committed to Git.

Release Tarball

To download the most recent release tarball you will need to have a download tool such as cURL or Wget installed. You can install one of these from your system’s package manager. Once you have a download tool installed you can download the most recent release tarball from the releases page.

# You can replace `wget` with `curl --remote-name` if using cURL.
wget https://github.com/inspircd/inspircd/archive/v3.4.0.tar.gz

Once the archive has downloaded you can unpack it using an archival tool such as GNU Tar.

tar -xvf "./inspircd-[VERSION].tar.gz"

A copy of the latest InspIRCd source code will now exist in the inspircd-[VERSION] directory.

Git

To download the most recent code committed to Git you will need to have Git installed. You can install this from your system’s package manager. Once you have Git installed you can download the latest source with the following command:

git clone --branch insp3 "https://github.com/inspircd/inspircd.git"

A copy of the latest InspIRCd source code will now exist in the inspircd directory.

Configuration

Execute the ./configure script from the directory which contains the InspIRCd sources from the previous step. This will start an interactive wizard to help you configure your installation.

You will initially be shown the installation paths that InspIRCd defaults to. The default is to install into a self-contained folder in your home directory but you can do a system-wide install if you really must. If the shown paths are okay then press enter to continue. Otherwise, enter “no”, press enter, and fill in the paths that it prompts you for.

After you have configured the paths you will be asked whether you want to enable extra modules automatically based on whether you have the dependencies installed. If you want to do this then press enter to continue. Otherwise, enter “no”, press enter, and select the extra modules that you want to use. You can enable modules later using ./configure --enable-extras m_foo.cpp if you change your mind..

Finally, if you enabled a SSL module in the previous step, you will be asked if you want to generate a self-signed certificate for testing purposes. If you want to do this then press enter to continue and fill in the details it prompts you for. Otherwise, enter “no” , and press enter.

Compilation

You can now run the make install command to build InspIRCd from source. On modern hardware this should take less than ten minutes to complete.

Edit configuration files. See .conf files at the bottom of the article. Those are the default inspircd example files slightly modified by me. I moved all the relevant things to the top to make it easier for you to get your server running.

I also added aliases for the services, so users can use /chanserv or /cs instead of /msg chanserv (same for NickServ, BotServ, HostServ, MemoServ and OperServ). See very bottom of inspircd.conf for the aliases if you wish to change them.

You need to edit inspircd.conf up to “CIDR CONFIGURATION” (about 2 pages).

Use echo -n “yourpassword” | sha256sum to generate a hash of your die/restart password.

Use the same method to create a hash of your NetAdmins password and set it in conf/opers.conf (OPERATOR CONFIGURATION starting at line 80)

You must carefully edit links.conf.

modules.conf can remain unchanged, all modules necessary for services are uncommented in my file.

Create a motd.txt (message of the day) and rule.txt and put them in the /conf folder.

 ./inspircd start

Connect to your server using an IRC client like Xchat or mIRC.

Get an o-line:

/oper Adminname adminpassword (this is case sensitive, the admin name as well)

That’s it.

Module Manager

InspIRCd ships with a tool called ./modulemanager. This tool allows you to easily install modules that are not included with the default distribution, such as third party modules and modules which have been backported from later versions. The module manager tool is located in the root directory of your InspIRCd installation.

Syntax

Use: ./modulemanager <action> <args>
Action is one of the following
 install   install new modules
 upgrade   upgrade installed modules
 list      lists available modules

For installing a package, specify its name or name=version to force the installation of a specific version.

Common errors

Your system is missing the LWP::Simple Perl module!

Your system is missing the libwww-perl package. You should install it from your appropriate package manager.

  • CPAN — cpan LWP::Simple
  • CentOS, Fedora — yum install perl-libwww-perl
  • Debian, Ubuntu — apt-get install libwww-perl

Your system is missing the Crypt::SSLeay or IO::Socket::SSL Perl modules!

 

Your system is missing SSL support for the libwww-perl package. You should install one from your appropriate package manager.

Crypt::SSLeay
  • CPAN — cpan Crypt::SSLeay
  • CentOS, Fedora — yum install perl-crypt-ssleay
  • Debian, Ubuntu — apt-get install libcrypt-ssleay-perl
IO::Socket::SSL
  • CPAN — cpan IO::Socket::SSL
  • CentOS, Fedora — yum install perl-io-socket-ssl
  • Debian, Ubuntu — apt-get install libio-socket-ssl-perl

Could not retrieve https://raw.github.com/inspircd/inspircd-extras/master/modules.lst

Your version of InspIRCd is out of date. Update to the latest version and you will get a more useful error message.

Installing modules without the module manager

If for some reason you are unable to use the module manager you can download and install modules manually using the following steps:

  1. Download the module you wish to install from the inspircd-extras repository on GitHub – https://github.com/inspircd/inspircd-extras
  2. Move it to the src/modules directory.
  3. Run “make install” to build and install the module.