Operating an IRC server requires technical knowledge in networking, Unix, and the IRC protocol itself. Other than that, you will need:
New servers undergo a 2 week trial before being given a DNS entry in the blabber.net domain, and 1 or more months trial before being placed in the irc.blabber.net DNS pool. Entry into the pool is given on the merit of server stability - unstable links will not be included in the pool.
If you'd like to link to BlabberNet, please contact us.
Preparing your server for linking to BlabberNet follows these steps:
Both InspIRCD and BOPM are distributed from our Git repository and should not be downloaded from elsewhere. The Git versions sometimes contain bug fixed or enhanced versions that we need.
If this document seems sparse, please expand it based on your experience after linking.
The user account name should be blabber so as to maintain a single convention across all servers. The remainder of this guide assumes this and that the account home directory is /home/blabber.
The steps to creating a user account varies between different Linux distributions, but below are two examples to try:
adduser --home /home/blabber --shell /bin/bash --gecos "Blabber" blabber
useradd --home-dir /home/blabber --shell /bin/bash --comment "Blabber" blabber
This is the only step to be performed by the root user. Switch to the blabber user for the remaining steps!
su -l blabber
Access details of the Git repository must be obtained from us privately. You will need to give us a working SSH public key.
Cloning the repo will leave you with something like the following:
/home/blabber/source/InspIRCd-2.0.0.tar.bz2 /home/blabber/source/bopm-3.1.3.tar.gz /home/blabber/inspircd/conf/blabber.conf /home/blabber/inspircd/conf/blabber.motd.tpl /home/blabber/inspircd/conf/blabber.rules /home/blabber/bopm/etc/bopm.conf.blabber /home/blabber/loaddaemons
From top to bottom these are:
Extract the distribution tarball and from within the extracted directory run:
./configure --enable-extras=m_regex_pcre.cpp,m_geoip.cpp ./configure
You'll be prompted for various information, the answers to which are:
| Info | Answer |
|---|---|
| Base install path | /home/blabber/inspircd |
| Config path | /home/blabber/inspircd/conf |
| Module path | /home/blabber/inspircd/modules |
| Binary path | /home/blabber/inspircd/bin |
| SSL support | Yes |
| 3rd party modules update | No |
Once you get through that, compile and install:
make make install
Extract the distribution tarball and from within the extracted directory run:
./configure make make install
You need to create a configuration for your server in /home/blabber/inspircd/conf/inspircd.conf. Here's a configuration template:
<config format="xml"> <server name="SERVERNAME.blabber.net" description="STATE/PROVINCE, COUNTRY" network="blabber"> <admin name="YOUR_NAME" nick="YOURNICK" email="YOURMAIL@example.net"> <define name="bindip" value="IRCD_IP_ADDRESS"> <bind address="&bindip;" port="6667" type="clients"> <bind address="&bindip;" port="7000" type="clients" ssl="openssl"> <bind address="&bindip;" port="8000" type="servers" ssl="openssl"> <power diepass="DIE_PASSWORD" restartpass="RESTART_PASSWORD"> <include file="conf/blabber.conf"> <oper name="YOURNICK" hash="sha256" password="HASH" host="*@example.net *@example.com *@localhost" type="NetAdmin"> <link name="YOURUPSTREAM.blabber.net" bind="BIND_ADDRESS" ipaddr="UPSTREAM_ADDRESS" port="8000" allowmask="IPMASK/24" timeout="5" ssl="openssl" sendpass="SENDPASS" recvpass="RECVPASS"> <autoconnect period="120" server="YOURUPSTREAM.blabber.net">
Text in uppercase needs to be edited by you for your server specifics.
You should find a sample configuration in /home/blabber/bopm/etc/bopm.conf.blabber. This sample has various lines with the text “EDITME” erroneously inserted to mark fields that need to be edited. Make a copy of the sample:
cd /home/blabber/bopm/etc && cp bopm.conf.blabber bopm.conf
Then edit bopm.conf using these clues for each marked field:
| field | description |
|---|---|
| options::pidfile | Full path to BOPM's pidfile. Usually /home/blabber/bopm/var/bopm.pid. |
| irc::vhost | IP address to bind to when connecting to the IRCD. Usually the same IP address as your IRCD. |
| irc::nick | Bot's nickname. Our convention is “beebopX” where X is a sequential number. |
| irc::server | IP address of your IRCD. |
| scanner::vhost | IP address to bind to when port scanning. Usually the same IP address as your IRCD. |
| scanner::target_ip | IP address of your IRCD. |
| scanner::target_string | Connection string to look for - edit this so that the hostname matches your server's hostname. |
In the base of the blabber home directory is a script called “loaddaemons”. It is run by crontab every 5 minutes to ensure the IRCD and BOPM are both running. You must configure it by creating /home/blabber/loaddaemons.conf like this:
BASE="/home/blabber"
ME="estranged"
MONITOR="ircd bopm"
PID_ircd="${BASE}/inspircd/data/inspircd.pid"
PID_bopm="${BASE}/bopm/var/bopm.pid"
START_ircd="${BASE}/inspircd/inspircd start"
START_bopm="${BASE}/bopm/bin/bopm"
Try run the loaddaemons script. It should start InspIRCD and BOPM with no errors. If all's well your server should connect to BlabberNet in about 2 minutes.
When everything is running as it should, be sure to add the loaddaemons script to blabber's crontab:
*/5 * * * * /home/blabber/loaddaemons