inspircd – how to install it in Ubuntu using a deb package

  irc, linux
# update and get wget
sudo apt-get update && sudo apt-get install wget

# get the deb package
wget https://github.com/inspircd/inspircd/releases/download/v3.9.0/inspircd_3.9.0.ubuntu20.04.2_amd64.deb

# install the server
sudo apt-get install ./inspircd_3.9.0.ubuntu20.04.2_amd64.deb

# disable apparmor because it'll give you trouble
systemctl disable apparmor

Create these 2 files because it won’t start without them:

sudo touch /etc/inspircd/inspircd.motd
sudo touch /etc/inspircd/inspircd.rules

Edit the config:

sudo nano /etc/inspircd/conf

Simplified config which works:

(also change: “chageme” entries and “mynamehere” entries)

<server name="k5.zombienet.2039jgq30ax3.com"
        description="Lupsha Research IRC Server"
        network="zombienet">

<admin name="mynamehere"
       nick="mynamehere"
       email="mynamehere@gmail.com">

<bind address="" port="6667" type="clients">

<power diepass="changeme3456" restartpass="changeme7890" pause="2">

<connect allow="*"
         timeout="60"
         flood="20"
         threshold="1"
         pingfreq="120"
         sendq="262144"
         recvq="8192"
         localmax="3"
         globalmax="3">

<class name="Shutdown" commands="DIE RESTART REHASH LOADMODULE UNLOADMODULE RELOAD">
<class name="ServerLink" commands="CONNECT SQUIT RCONNECT MKPASSWD MKSHA256">
<class name="BanControl" commands="KILL GLINE KLINE ZLINE QLINE ELINE">
<class name="OperChat" commands="WALLOPS GLOBOPS SETIDLE SPYLIST SPYNAMES">
<class name="HostCloak" commands="SETHOST SETIDENT SETNAME CHGHOST CHGIDENT">

<type name="NetAdmin" classes="OperChat BanControl HostCloak Shutdown ServerLink" host="netadmin.omega.org.za">
<type name="GlobalOp" classes="OperChat BanControl HostCloak ServerLink" host="ircop.omega.org.za">
<type name="Helper" classes="HostCloak" host="helper.omega.org.za">

<oper name="johnsmith"
      password="changeme3"
      host="*@*"
      type="NetAdmin">

<files motd="/etc/inspircd/inspircd.motd" rules="/etc/inspircd/inspircd.rules">

<channels users="20" opers="60">

<dns server="127.0.0.1" timeout="5">

<pid file="/tmp/inspircd.pid">

<options prefixquit="Quit: "
         noservices="no"
         qaprefixes="no"
         deprotectself="no"
         deprotectothers="no"
         flatlinks="no"
         hideulines="no"
         syntaxhints="no"
         cyclehosts="yes"
         ircumsgprefix="no"
         announcets="yes"
         disablehmac="no"
         hostintopic="yes"
         quietbursts="yes"
         pingwarning="15"
         allowhalfop="yes"
         exemptchanops="">

<security hidewhois=""
          userstats="Pu"
          customversion=""
          hidesplits="no"
          hidebans="no"
          operspywhois="no"
          hidemodes="eI"
          maxtargets="20">

<performance nouserdns="no"
             maxwho="128"
             softlimit="1024"
             somaxconn="128"
             netbuffersize="10240">

<log method="file"
     type="* -USERINPUT -USEROUTPUT"
     level="default"
     target="/var/log/inspircd/inspircd.log">

<whowas groupsize="10"
        maxgroups="100000"
        maxkeep="3d">

<timesync enable="no" master="no">
<badnick nick="ChanServ" reason="Reserved For Services">
<badnick nick="NickServ" reason="Reserved For Services">
<badnick nick="OperServ" reason="Reserved For Services">
<badnick nick="MemoServ" reason="Reserved For Services">

More setup:

sudo systemctl unmask inspircd.service

and make it auto start on boot:

sudo nano /etc/systemd/system/inspircd.service

with contents:

[Unit]
Description=Inspircd IRC Server

[Service]
Type=simple
RemainAfterExit=true
User=irc
Group=irc
ExecStart=/usr/sbin/inspircd

[Install]
WantedBy=multi-user.target

and

sudo systemctl daemon-reload
sudo systemctl enable inspircd.service
sudo systemctl start inspircd.service
sudo systemctl disable inspircd.service

watch the log:

tail -F /var/log/inspircd.log

Also see linking servers to one another, ex: k5 ↔ k6