Skip to content

Instantly share code, notes, and snippets.

@paigeadelethompson
Last active October 26, 2024 18:32
Show Gist options
  • Save paigeadelethompson/bf91ece342c4e9e9bf1bb32ceb27cf2f to your computer and use it in GitHub Desktop.
Save paigeadelethompson/bf91ece342c4e9e9bf1bb32ceb27cf2f to your computer and use it in GitHub Desktop.
Inspircd Config
FROM ubuntu:latest
ENV ADMIN_EMAIL="[email protected]"
ENV SID="01A"
ENV SERVER_NAME="irc.lame-network.local"
ENV NETWORK_NAME="LameNet"
ENV STS_HOST="irc.lame-network.local"
ENV SASL_TARGET="service.lame-network.local"
ENV ADMIN_PASSWORD="changeme"
ENV COMMAND_RATE="128000"
ENV FAKE_LAG="on"
ENV HARD_SENDQ="1M"
ENV MAX_CHANS="256"
ENV PING_FREQ="64"
ENV RECVQ="8K"
ENV SOFT_SENDQ="8192"
ENV COMMAND_RATE_THRESHOLD="128"
ENV COMMAND_RATE_THRESHOLD_TIMEOUT="16"
ENV USE_CONN_FLOOD="yes"
ENV USE_DNSBL="yes"
ENV USE_IDENT="no"
ENV GLOBAL_MAX="32"
ENV LOCAL_MAX="16"
ENV MAX_CONN_WARN="yes"
ENV DEFAULT_USER_MODES="+xWz"
ENV PORT="6667"
ENV RESOLVE_HOST_NAMES="yes"
ENV USE_CONNECT_BAN="yes"
ENV SSL_USER_MODES="+xWz"
ENV SSL_PORT="6697"
ENV AUTHENTICATED_USER_MODES="+xwWz"
ENV SERVER_SSL_PORT="7000"
ENV OPER_CHANNEL="#oper"
ENV HTTP_ACL_PASSWORD="changeme"
ENV HTTP_ACL_USERNAME="lame-network"
ENV SERVICE_CHANNEL="#services"
ENV HELP_CHANNEL="#help"
ENV MAX_AWAY="256"
ENV MAX_CHAN="31"
ENV MAX_GECOS="256"
ENV MAX_HOST="64"
ENV MAX_IDENT="16"
ENV MAX_KICK="256"
ENV MAX_MODES="32"
ENV MAX_NICK="31"
ENV MAX_QUIT="256"
ENV MAX_TOPIC="256"
ENV ALLOW_MISMATCH="yes"
ENV ALLOW_ZERO_LIMIT="yes"
ENV ANNOUNCE_TS="yes"
ENV CYCLE_HOST_TS="yes"
ENV CYCLE_HOST_FROM_USER="no"
ENV HOST_IN_TOPIC="yes"
ENV INVITE_BYPASS_MODES="yes"
ENV MODES_IN_LIST="yes"
ENV NO_SNOTICE_STACK="yes"
ENV PING_WARNING="8"
ENV PREFIX_PART="""
ENV PREFIX_QUIT="QUIT: ""
ENV SERVER_PING_FREQ="8"
ENV SPLIT_WHOIS="no"
ENV SUFFIX_PART="""
ENV SUFFIX_QUIT="""
ENV SYNTAX_HINTS="yes"
ENV XLINE_MESSAGE="DEAUTHORIZED"
ENV CLONES_ON_CONNECT="yes"
ENV NET_BUFFER_SIZE="10240"
ENV QUIET_BURSTS="yes"
ENV SOFT_LIMIT="102400"
ENV SO_MAX_CONN="1024"
ENV TIME_SKIP_WARN="2s"
ENV ROLE_PLAY_VHOST="rp.lame-network.local"
ENV CUSTOM_VERSION="LameNetworkIRCd v3.14 (final)"
ENV FLAT_LINKS="no"
ENV GENERIC_OPER="yes"
ENV HIDE_BANS="no"
ENV HIDE_MODES="no"
ENV HIDE_SPLITS="yes"
ENV HIDE_ULINES="no"
ENV MAX_TARGETS="16"
ENV RESTRICT_BANNED_USERS="yes"
ENV USER_STATS="Pu"
ENV NET_ADMIN_VHOST="oper/admin.lame-network.local"
ENV GLOBAL_OP_VHOST="oper/op.lame-network.local"
ENV HOPM_VHOST="oper/hopm.lame-network.local"
ENV HELPER_VHOST="oper/helper.lame-network.local"
ENV SERVICES_ULINE="services.lame-network.local"
ENV WS_ORIGIN_ALLOW="irc.lame-network.local"
ENV DEFAULT_BLOCK_HOST_MASK="*@*"
ENV LINK_RECV_PASSWORD="changeme"
ENV LINK_SEND_PASSWORD="changeme"
ENV LINK_TIMEOUT=3600
RUN apt -y update
RUN apt -y install perl git automake autoconf build-essential libpcre2-dev rapidjson-dev libcurl4-gnutls-dev libargon2-dev libmaxminddb-dev libldap2-dev rapidjson-dev libmysqlclient-dev libmysqlclient-dev default-libmysqlclient-dev libpq-dev libre2-dev gnutls-dev libsqlite3-dev libmbedtls-dev libqrencode-dev libpcre3-dev libtre-dev pkg-config libwww-perl
RUN groupadd inspircd
RUN useradd --system --shell /bin/bash inspircd -g inspircd
WORKDIR /tmp
RUN git clone https://github.com/inspircd/inspircd.git
WORKDIR /tmp/inspircd
RUN ./configure --gid inspircd --uid inspircd --development --prefix=/usr/local
RUN ./modulemanager list | awk '{print $1}' | xargs -i ./modulemanager install {} ; true
RUN make -j$(nproc) install
RUN mkdir -p /etc/inspircd /var/lib/inspircd /etc/ssl/inspircd /var/log/inspircd
ADD inspircd.conf /etc/inspircd
ADD include.conf /etc/inspircd
ADD GeoLite2-ASN.mmdb /etc/inspircd
RUN touch /etc/inspircd/motd.txt
RUN touch /etc/inspircd/oper.motd.txt
RUN openssl genrsa -out /etc/ssl/inspircd/server.key
RUN openssl req -new -key /etc/ssl/inspircd/server.key -out /etc/ssl/inspircd/server.csr \
-subj "/C=US/ST=Washington/L=Seattle/O=LameNetwork/OU=IT Department/CN=lame-network.local"
RUN openssl x509 -req -days 365 -in /etc/ssl/inspircd/server.csr -signkey /etc/ssl/inspircd/server.key -out /etc/ssl/inspircd/server.crt
RUN chown -R inspircd:inspircd /etc/inspircd /etc/ssl/inspircd /var/lib/inspircd /var/log/inspircd
USER inspircd
WORKDIR /
CMD /usr/local/bin/inspircd -c /etc/inspircd/inspircd.conf -F
<badhost host="&env.DEFAULT_BLOCK_HOST_MASK;"
reason="default hostmask block">
<exception host="*@127.0.0.1/32"
reason="Local IRC client">
<link allowmask="*"
bind="*"
hidden="no"
ipaddr="*"
name="leaf.lame-network.local"
port="&env.SERVER_SSL_PORT;"
recvpass="&env.LINK_RECV_PASSWORD;"
sendpass="&env.LINK_SEND_PASSWORD;"
statshidden="no"
timeout="&env.LINK_TIMEOUT;">
<badword text="vxp"
replace="larry">
<badword text="lol"
replace="%%">
<eventexec command="/bin/true"
event="rehash">
<path datadir="/var/lib/inspircd"
configdir="/etc/inspircd"
runtimedir="/tmp"
moduledir="/usr/local/modules"
logdir="/var/log/inspircd">
<maxmind file="/etc/inspircd/GeoLite2-ASN.mmdb">
<bind address="*"
port="8000"
type="httpd">
<bind address="*"
port="&env.SSL_PORT;"
sslprofile="defaultssl"
type="clients">
<bind address="*"
port="&env.PORT;"
type="clients">
<bind address="*"
port="&env.SERVER_SSL_PORT;"
sslprofile="defaultssl"
type="servers">
<admin email="&env.ADMIN_EMAIL;"
name="admin"
nick="admin">
<server description="General-purpose internet relay chat network"
id="&env.SID;"
name="&env.SERVER_NAME;"
network="&env.NETWORK_NAME;">
<sts duration="5m"
host="&env.STS_HOST;"
port="&env.SSL_PORT;"
preload="yes">
<sslprofile certfile="/etc/ssl/inspircd/server.crt"
compression="no"
keyfile="/etc/ssl/inspircd/server.key"
name="defaultssl"
tlsv11="no"
tlsv12="yes"
tlsv13="yes"
renegotiation="no"
requestclientcert="no"
provider="gnutls">
<sasl requiressl="yes"
target="&env.SASL_TARGET;">
<oper host="*@*"
name="admin"
password="&env.ADMIN_PASSWORD;"
type="NetAdmin">
<connect commandrate="&env.COMMAND_RATE;"
fakelag="&env.FAKE_LAG;"
hardsendq="&env.HARD_SENDQ;"
maxchans="&env.MAX_CHANS;"
motd="defaultmotd"
name="All"
pingfreq="&env.PING_FREQ;"
recvq="&env.RECVQ;"
softsendq="&env.SOFT_SENDQ;"
threshold="&env.COMMAND_RATE_THRESHOLD;"
timeout="&env.COMMAND_RATE_THRESHOLD_TIMEOUT;"
useconnflood="&env.USE_CONN_FLOOD;"
usednsbl="&env.USE_DNSBL;"
useident="&env.USE_IDENT;"
resolvehostnames="&env.RESOLVE_HOST_NAMES;"
useconnectban="&env.USE_CONNECT_BAN;">
<connect allow="*"
autojoin="#blackhole"
globalmax="&env.GLOBAL_MAX;"
localmax="&env.LOCAL_MAX;"
maxconnwarn="&env.MAX_CONN_WARN;"
modes="&env.DEFAULT_USER_MODES;"
name="default"
port="&env.PORT;">
<connect allow="*"
modes="&env.SSL_USER_MODES;"
name="ssl"
parent="default"
port="&env.SSL_PORT;">
<connect allow="*"
modes="&env.AUTHENTICATED_USER_MODES;"
name="authenticated"
parent="ssl"
registered="yes"
requireaccount="yes">
<operjoin channel="&env.OPER_CHANNEL;"
override="no">
<httpdacl password="&env.HTTP_ACL_PASSWORD;"
path="/*"
types="password"
username="&env.HTTP_ACL_USERNAME;">
<alias format="*"
replace="SQUERY ChanServ :IDENTIFY $2 $3"
requires="CHANSERV"
text="ID"
uline="yes">
<alias replace="SQUERY NickServ :IDENTIFY $2"
requires="NICKSERV"
text="ID"
uline="yes">
<alias format=":IDENTIFY *"
replace="SQUERY NickServ :IDENTIFY $3-"
requires="NICKSERV"
text="NICKSERV"
uline="yes">
<alias channelcommand="yes"
replace="SQUERY ChanServ :$1 $chan $2-"
requires="CHANSERV"
text="CS"
uline="yes"
usercommand="no">
<alias replace="SQUERY $requirement :$2-"
requires="BOTSERV"
text="BOTSERV"
uline="yes">
<alias replace="SQUERY $requirement :$2-"
requires="CHANSERV"
text="CHANSERV"
uline="yes">
<alias replace="SQUERY $requirement :$2-"
requires="HOSTSERV"
text="HOSTSERV"
uline="yes">
<alias replace="SQUERY $requirement :$2-"
requires="MEMOSERV"
text="MEMOSERV"
uline="yes">
<alias replace="SQUERY $requirement :$2-"
requires="NICKSERV"
text="NICKSERV"
uline="yes">
<alias operonly="yes"
replace="SQUERY $requirement :$2-"
requires="OPERSERV"
text="OPERSERV"
uline="yes">
<alias replace="SQUERY $requirement :$2-"
requires="STATSERV"
text="STATSERV"
uline="yes">
<alias replace="SQUERY $requirement :$2-"
requires="BOTSERV"
text="BS"
uline="yes">
<alias replace="SQUERY $requirement :$2-"
requires="CHANSERV"
text="CS"
uline="yes">
<alias replace="SQUERY $requirement :$2-"
requires="HOSTSERV"
text="HS"
uline="yes">
<alias replace="SQUERY $requirement :$2-"
requires="MEMOSERV"
text="MS"
uline="yes">
<alias replace="SQUERY $requirement :$2-"
requires="NICKSERV"
text="NS"
uline="yes">
<alias operonly="yes"
replace="SQUERY $requirement :$2-"
requires="OPERSERV"
text="OS"
uline="yes">
<alias replace="SQUERY $requirement :$2-"
requires="STATSERV"
text="SS"
uline="yes">
<alias format="*"
replace="SQUERY $requirement :IDENTIFY $2-"
requires="NICKSERV"
text="ID"
uline="yes">
<alias format="*"
replace="SQUERY $requirement :IDENTIFY $2-"
requires="NICKSERV"
text="IDENTIFY"
uline="yes">
<alias format="*"
operonly="yes"
replace="SQUERY $requirement :GLOBAL $2-"
requires="GLOBAL"
text="GLOBAL"
uline="yes">
<allowchannel name="*">
<anticaps lowercase="abcdefghijklmnopqrstuvwxyz"
uppercase="ABCDEFGHIJKLMNOPQRSTUVWXYZ">
<argon2 iterations="3"
length="32"
memory="131074"
saltlength="16">
<argon2d memory="131074">
<argon2i iterations="4">
<argon2id iterations="5"
length="64"
memory="262144"
saltlength="32">
<auditorium opcansee="no"
opercansee="yes"
opvisible="no">
<autodrop commands="CONNECT DELETE GET HEAD OPTIONS PATCH POST PUT TRACE">
<autojoinident chan="#blackhole"
ident="*">
<badhost host="root@*"
reason="Don't IRC as root">
<badip ipmask="169.254.0.0/16"
reason="APIPA">
<badip ipmask="10.0.0.0/8"
reason="Unclassified (ARPANET)">
<badip ipmask="100.64.0.0/10"
reason="Unclassified (CGNAT)">
<badip ipmask="172.16.0.0/12"
reason="Unclassified (private-network)">
<badip ipmask="192.0.0.0/24"
reason="Unclassified (private-network)">
<badip ipmask="192.0.2.0/24"
reason="Unclassified (TEST-NET-1)">
<badip ipmask="192.88.99.0/24"
reason="Unclassified (6-to-4)">
<badip ipmask="192.168.0.0/16"
reason="Unclassified (private network)">
<badip ipmask="198.18.0.0/15"
reason="benchmarking">
<badip ipmask="198.51.100.0/24"
reason="Unclassified (TEST-NET-2)">
<badip ipmask="203.0.113.0/24"
reason="Unclassified (TEST-NET-3)">
<badip ipmask="127.0.0.0/8"
reason="Unclassified (link-local)">
<badip ipmask="224.0.0.0/3"
reason="Unclassified (multi-cast/future-use/limited broadcast)">
<badip ipmask="6.0.0.0/7"
reason="You are forbidden from connecting to this network (AIS/DoD)">
<badip ipmask="11.0.0.0/8"
reason="You are forbidden from connecting to this network (DoD)">
<badip ipmask="21.0.0.0/7"
reason="You are forbidden from connecting to this network (DoD)">
<badip ipmask="26.0.0.0/8"
reason="You are forbidden from connecting to this network (DoD)">
<badip ipmask="30.0.0.0/8"
reason="YOu are forbidden from connecting to this network (DoD)">
<badip ipmask="33.0.0.0/8"
reason="You are forbidden from connecting to this network (DoD)">
<badip ipmask="55.0.0.0/8"
reason="You are forbidden from connecting to this network (DoD/US Postal Service)">
<badip ipmask="214.0.0.0/7"
reason="You are forbidden from connecting to this network (DoD)">
<badip ipmask="::1/128"
reason="Unclassified (loop-back)">
<badip ipmask="::ffff:0:0/96"
reason="Unclassified (IPv4 mapped)">
<badip ipmask="::ffff:0:0:0/96"
reason="Unclassified (IPv4 translated)">
<badip ipmask="64:ff9b::/96"
reason="Unclassified (Global IPv4 translated)">
<badip ipmask="100::/64"
reason="Unclassified (null-routed/discard)">
<badip ipmask="2001:20::/28"
reason="Unclassified (ORCHIDv2)">
<badip ipmask="2001:db8::/32"
reason="Unclassified (RFC documentation/RFC example subnet)">
<badip ipmask="2002::/16"
reason="Unclassified (6-to-4)">
<badip ipmask="fc00::/7"
reason="Unclassified (ULA)">
<badip ipmask="fe80::/10"
reason="Unclassified (link-local)">
<badnick nick="root"
reason="Don't IRC as root">
<badnick nick="LINKSERV"
reason="Reserved For Services">
<badnick nick="SPAMSERV"
reason="Reserved For Services">
<badnick nick="GAMESERV"
reason="Reserved For Services">
<badnick nick="MODESERV"
reason="Reserved For Services">
<badnick nick="BOTSERV"
reason="Reserved for a network service">
<badnick nick="CHANSERV"
reason="Reserved for a network service">
<badnick nick="GLOBAL"
reason="Reserved for a network service">
<badnick nick="HOSTSERV"
reason="Reserved for a network service">
<badnick nick="MEMOSERV"
reason="Reserved for a network service">
<badnick nick="NICKSERV"
reason="Reserved for a network service">
<badnick nick="OPERSERV"
reason="Reserved for a network service">
<badnick nick="STATSERV"
reason="Reserved for a network service">
<badnick nick="CHANFIX"
reason="Reserved for a network service">
<badnick nick="ALIS"
reason="Reserved for a network service">
<badnick nick="GAMESERV"
reason="Reserved for a network service">
<badnick nick="HELPSERV"
reason="Reserved for a network service">
<badnick nick="INFOSERV"
reason="Reserved for a network service">
<badnick nick="PROXYSCAN"
reason="Reserved for a network service">
<badnick nick="RPGSERV"
reason="Reserved for a network service">
<badnick nick="SASLSERV"
reason="Reserved for a network service">
<banmissing cap="yes"
duration="4m"
reason="CAP required, please upgrade your client"
version="yes">
<banmissing ctcp="yes"
duration="1m"
reason="Enable CTCP or adjust your CTCP flood settings and try again">
<bcrypt rounds="16">
<blockamsg action="killopers"
delay="3">
<blockhighlight ignoreextmsg="yes"
minlen="50"
minusernum="10"
reason="highlighting has been blocked (exceeded limits)"
stripcolor="yes">
<blockinvite modechar="V"
reply="Can't invite, +V">
<botmode forcenotice="no">
<callerid cooldown="4m"
maxaccepts="256"
tracknick="yes">
<cban glob="yes">
<chanfilter hidemask="yes"
maxlen="512"
notifyuser="yes">
<chanhistory bots="yes"
enableumode="yes"
maxlines="64"
prefixmsg="yes">
<chanlog channel="&env.OPER_CHANNEL;"
snomasks="DdRrtXxLlkKvgfFoO">
<channames allowrange="35,45-46"
denyrange="1-47,58-64,91-96,123-255">
<channels opers="4294967295"
users="4294967295">
<class chanmodes="*"
commands="DIE RESTART REHASH LOADMODULE UNLOADMODULE RELOADMODULE GLOADMODULE GUNLOADMODULE GRELOADMODULE"
name="Shutdown"
privs="users/auspex channels/auspex servers/auspex users/mass-message users/flood/no-throttle users/flood/increased-buffers"
snomasks="*"
usermodes="*">
<class commands="SAJOIN SAPART SANICK SAQUIT SATOPIC SAKICK SAMODE OJOIN"
name="SACommands"
privs="channels/ignore-nonicks">
<class chanmodes="*"
commands="CONNECT SQUIT RCONNECT RSQUIT MKPASSWD ALLTIME SWHOIS LOCKSERV UNLOCKSERV"
name="ServerLink"
privs="servers/auspex"
snomasks="Cc"
usermodes="*">
<class chanmodes="*"
commands="KILL GLINE KLINE ZLINE QLINE ELINE TLINE RLINE CHECK NICKLOCK NICKUNLOCK SHUN CLONES CBAN"
name="BanControl"
snomasks="Xx"
usermodes="*">
<class chanmodes="*"
commands="WALLOPS GLOBOPS"
name="OperChat"
privs="users/mass-message"
snomasks="Gg"
usermodes="*">
<class chanmodes="*"
commands="SETHOST SETIDENT SETIDLE CHGNAME CHGHOST CHGIDENT"
name="HostCloak"
privs="users/auspex"
usermodes="*">
<class name="RolePlay"
priv="channels/roleplay channels/roleplay-override">
<cloak ignorecase="no"
key="BP4qa616oRTJLnUMYZfdcllopx1mere0OlyyLtsicNh2NRyywd529cmvtZnlbNLCbsIkY7Efk6Dp170u"
mode="full"
prefix="cloak/"
suffix=".hidden">
<codepage name="ascii">
<connectban banmessage="filtered for connection hammering; wait 64 seconds to retry"
bootwait="128"
duration="64"
ipv4cidr="32"
ipv6cidr="128"
splitwait="128"
threshold="32">
<connflood bootwait="2m"
maxconns="8"
period="32s"
quitmsg="This module isn't used, use connban instead"
timeout="32s">
<connrequire blockmessage="Enable CTCP or adjust your CTCP flood settings and try again in 1 minute"
ctcpstring="TIME"
timeout="5">
<cpcase lower="97"
upper="65">
<cpcase lower="98"
upper="66">
<cpcase lower="99"
upper="67">
<cpcase lower="100"
upper="68">
<cpcase lower="101"
upper="69">
<cpcase lower="102"
upper="70">
<cpcase lower="103"
upper="71">
<cpcase lower="104"
upper="72">
<cpcase lower="105"
upper="73">
<cpcase lower="106"
upper="74">
<cpcase lower="107"
upper="75">
<cpcase lower="108"
upper="76">
<cpcase lower="109"
upper="77">
<cpcase lower="110"
upper="78">
<cpcase lower="111"
upper="79">
<cpcase lower="112"
upper="80">
<cpcase lower="113"
upper="81">
<cpcase lower="114"
upper="82">
<cpcase lower="115"
upper="83">
<cpcase lower="116"
upper="84">
<cpcase lower="117"
upper="85">
<cpcase lower="118"
upper="86">
<cpcase lower="119"
upper="87">
<cpcase lower="120"
upper="88">
<cpcase lower="121"
upper="89">
<cpcase lower="122"
upper="90">
<cpchars index="45">
<cpchars begin="48"
end="57">
<cpchars begin="65"
end="90"
front="yes">
<cpchars begin="91"
end="96"
front="yes">
<cpchars begin="97"
end="122"
front="yes">
<cpchars begin="123"
end="125"
front="yes">
<cpchars front="no"
index="47">
<ctctags allowclientonlytags="no">
<customprefix letter="q"
name="founder"
prefix="~"
rank="50000"
ranktoset="50000">
<customprefix letter="a"
name="admin"
prefix="&amp;"
rank="40000"
ranktoset="50000">
<customprefix letter="h"
name="halfop"
prefix="%"
rank="20000"
ranktoset="30000">
<customprefix change="yes"
name="op"
rank="30000"
ranktoset="30000">
<customprefix change="yes"
depriv="no"
name="voice"
rank="10000"
ranktoset="20000">
<dccblock channels="no"
users="no">
<deaf bypasschars=""
bypasscharsuline="!"
enableprivdeaf="yes"
privdeafuline="yes">
<delaymsg allownotice="yes">
<disabled chanmodes=""
commands=""
fakenonexistant="no"
usermodes="w">
<dnsbl action="zline"
domain="dnsbl.dronebl.org"
duration="5m"
name="DroneBL"
reason="DroneBL"
records="3,5,6,7,8,9,10,11,13,14,15,16,17,19"
timeout="5s"
type="record">
<dnsbl action="zline"
domain="rbl.efnetrbl.org"
duration="5m"
name="EFnet RBL"
reason="EFnet RBL"
records="1,2,3,4,5"
timeout="5s"
type="record">
<dnsbl action="zline"
domain="torexit.dan.me.uk"
duration="5m"
name="torexit.dan.me.uk"
reason="TOR Exit"
records="100"
timeout="5s"
type="record">
<dualversion active="yes"
ban="yes"
duration="1m"
reason="Enable CTCP or adjust your CTCP flood settings and try again in 1 minute"
show="yes">
<exception host="*@127.0.0.1/32"
reason="Local IRC client">
<exemptfromfilter target="&env.OPER_CHANNEL;">
<exemptfromfilter target="&env.SERVICE_CHANNEL;">
<exemptfromfilter target="&env.HELP_CHANNEL;">
<exemptfromfilter target="BOTSERV">
<exemptfromfilter target="CHANSERV">
<exemptfromfilter target="GLOBAL">
<exemptfromfilter target="HOSTSERV">
<exemptfromfilter target="MEMOSERV">
<exemptfromfilter target="NICKSERV">
<exemptfromfilter target="OPERSERV">
<exemptfromfilter target="STATSERV">
<extbanredirect char="d">
<extbanregex engine="pcre"
opersonly="yes">
<fakelist killonjoin="false"
maxusers="50"
minusers="20"
reason="User hit a spam trap"
target="#spamtrap"
topic="SPAM TRAP: DO NOT JOIN, wait 30 seconds for real channel list"
waittime="1s">
<filteropts engine="glob"
notifyuser="yes"
warnonselfmsg="yes">
<hidechans affectsopers="true">
<hideidle modechar="a">
<hidelist mode="filter"
rank="30000">
<hidelist mode="invex"
rank="0">
<hidemode mode="ban"
rank="10000">
<hostname charmap="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-_/0123456789,">
<httpd timeout="8s">
<httpstats enableparams="yes">
<ident prefixunqueried="yes"
timeout="2">
<idleprofile away="only"
idletime="7200"
ignoreloggedin="no"
name="example"
nochans="true"
reason="Disconnected for inactivity">
<insane hostmasks="no"
ipmasks="no"
nickmasks="no"
trigger="95.5">
<inviteexception bypasskey="yes">
<ircv3 accountnotify="yes"
awaynotify="yes"
extendedjoin="yes">
<joinflood bootwait="32s"
duration="2m"
splitwait="32s">
<joinpartspam allowredirect="no"
freeredirect="no"
modechar="x">
<keyword action="gline"
duration="5m"
flags="*"
pattern="*startkeylogger*"
reason="keylogger failed to start">
<knock notify="both">
<limits maxaway="&env.MAX_AWAY;"
maxchan="&env.MAX_CHAN;"
maxgecos="&env.MAX_GECOS;"
maxhost="&env.MAX_HOST;"
maxident="&env.MAX_IDENT;"
maxkick="&env.MAX_KICK;"
maxmodes="&env.MAX_MODES;"
maxnick="&env.MAX_NICK;"
maxquit="&env.MAX_QUIT;"
maxtopic="&env.MAX_TOPIC;">
<log level="default"
method="file"
target="opers.log"
type="OPER">
<log level="default"
method="file"
target="ircd.log"
type="* -USERINPUT -USEROUTPUT">
<maxlist chan="largechan"
limit="512"
mode="ban">
<maxlist chan="largechan"
limit="512"
mode="e">
<maxlist chan="*"
limit="256">
<maxmind file="/etc/inspircd/geolite2.mmdb">
<messageflood notice="1.0"
privmsg="1.0"
tagmsg="0.2">
<module name="geo_maxmind">
<module name="ssl_gnutls">
<module name="abbreviation">
<module name="alias">
<module name="allowinvite">
<module name="alltime">
<module name="anticaps">
<module name="anticaps">
<module name="argon2">
<module name="auditorium">
<module name="autoop">
<module name="banexception">
<module name="banredirect">
<module name="bcrypt">
<module name="blockamsg">
<module name="blockcolor">
<module name="botmode">
<module name="callerid">
<module name="cap">
<module name="cban">
<module name="cgiirc">
<module name="chancreate">
<module name="chanfilter">
<module name="chanhistory">
<module name="chanlog">
<module name="channames">
<module name="channelban">
<module name="check">
<module name="chghost">
<module name="chgident">
<module name="chgname">
<module name="classban">
<module name="clearchan">
<module name="cloaking">
<module name="codepage">
<module name="commonchans">
<module name="connectban">
<module name="connflood">
<module name="conn_join">
<module name="conn_umodes">
<module name="conn_waitpong">
<module name="customprefix">
<module name="customtitle">
<module name="cycle">
<module name="dccallow">
<module name="deaf">
<module name="delayjoin">
<module name="delaymsg">
<module name="denychans">
<module name="disable">
<module name="dnsbl">
<module name="exemptchanops">
<module name="filter">
<module name="gecosban">
<module name="geoban">
<module name="geoclass">
<module name="globalload">
<module name="globops">
<module name="haproxy">
<module name="hidechans">
<module name="hidelist">
<module name="hidemode">
<module name="hideoper">
<module name="hostcycle">
<module name="httpd_acl">
<module name="httpd">
<module name="httpd_config">
<module name="httpd_stats">
<module name="ident">
<module name="inviteexception">
<module name="ircv3_accounttag">
<module name="ircv3_batch">
<module name="ircv3_capnotify">
<module name="ircv3_chghost">
<module name="ircv3">
<module name="ircv3_ctctags">
<module name="ircv3_echomessage">
<module name="ircv3_invitenotify">
<module name="ircv3_labeledresponse">
<module name="ircv3_msgid">
<module name="ircv3_servertime">
<module name="ircv3_sts">
<module name="joinflood">
<module name="kicknorejoin">
<module name="knock">
<module name="ldap">
<module name="ldapoper">
<module name="maphide">
<module name="md5">
<module name="messageflood">
<module name="mlock">
<module name="monitor">
<module name="muteban">
<module name="mysql">
<module name="namedmodes">
<module name="namesx">
<module name="nickflood">
<module name="nicklock">
<module name="noctcp">
<module name="nokicks">
<module name="nonicks">
<module name="nonotice">
<module name="ojoin">
<module name="operchans">
<module name="operjoin">
<module name="operlevels">
<module name="operlog">
<module name="opermodes">
<module name="opermotd">
<module name="operprefix">
<module name="override">
<module name="passforward">
<module name="password_hash">
<module name="pbkdf2">
<module name="permchannels">
<module name="pgsql">
<module name="redirect">
<module name="regex_glob">
<module name="regex_pcre2">
<module name="regex_posix">
<module name="regex_re2">
<module name="regex_stdlib">
<module name="remove">
<module name="repeat">
<module name="restrictchans">
<module name="restrictmsg">
<module name="rline">
<module name="rmode">
<module name="sajoin">
<module name="sakick">
<module name="samode">
<module name="sanick">
<module name="sapart">
<module name="saquit">
<module name="sasl">
<module name="satopic">
<module name="securelist">
<module name="seenicks">
<module name="serverban">
<module name="services_account">
<module name="servprotect">
<module name="sethost">
<module name="setident">
<module name="setidle">
<module name="setname">
<module name="sha1">
<module name="sha256">
<module name="showfile">
<module name="showwhois">
<module name="shun">
<module name="silence">
<module name="spanningtree">
<module name="sqlite3">
<module name="sslinfo">
<module name="sslmodes">
<module name="sslrehashsignal">
<module name="starttls">
<module name="stripcolor">
<module name="svshold">
<module name="swhois">
<module name="timedbans">
<module name="tline">
<module name="topiclock">
<module name="uhnames">
<module name="uninvite">
<module name="vhost">
<module name="watch">
<module name="websocket">
<module name="xline_db">
<module name="helpop">
<module name="antiknocker">
<module name="antisnoop">
<module name="asn">
<module name="autoaway">
<module name="autodrop">
<module name="autokick">
<module name="blockhighlight">
<module name="censor">
<module name="clones">
<module name="complete">
<module name="custompenalty">
<module name="customtags">
<module name="defaulttopic">
<module name="exmode">
<module name="forceusername">
<module name="geocmd">
<module name="hostchange">
<module name="lockserv">
<module name="messagesocket">
<module name="modenotice">
<module name="noidletyping">
<module name="nopartmsg">
<module name="noprivatemode">
<module name="protoctl">
<module name="qrcode">
<module name="regex_tre">
<module name="solvemsg">
<module name="stats_unlinked">
<module name="teams">
<module name="teststdrpl">
<module name="userip">
<monitor maxentries="256">
<muteban notifyuser="yes">
<nickdelay delay="5"
hint="true">
<nickflood duration="60s">
<nocreate noisy="yes"
reason="You are not allowed to create channels"
telluser="yes">
<noctcp enableumode="yes">
<ojoin notice="yes"
op="yes"
prefix="!">
<operlog tosnomask="on">
<opermotd file="/etc/inspircd/oper.motd.txt"
onoper="yes">
<operprefix prefix="*">
<options allowmismatch="&env.ALLOW_MISMATCH;"
allowzerolimit="&env.ALLOW_ZERO_LIMIT;"
announcets="&env.ANNOUNCE_TS;"
casemapping="ascii"
cyclehosts="&env.CYCLE_HOST_TS;"
cyclehostsfromuser="&env.CYCLE_HOST_FROM_USER;"
defaultbind="auto"
exemptchanops="censor:o filter:o nickflood:o nonick:v regmoderated:o"
fixedpart=""
fixedquit=""
hostintopic="&env.HOST_IN_TOPIC;"
invitebypassmodes="&env.INVITE_BYPASS_MODES;"
modesinlist="&env.MODES_IN_LIST;"
nosnoticestack="&env.NO_SNOTICE_STACK;"
pingwarning="&env.PING_WARNING;"
prefixpart="&env.PREFIX_PART;"
prefixquit="&env.PREFIX_QUIT;"
serverpingfreq="&env.SERVER_PING_FREQ;"
splitwhois="&env.SPLIT_WHOIS;"
suffixpart="&env.SUFFIX_PART;"
suffixquit="&env.SUFFIX_QUIT;"
syntaxhints="&env.SYNTAX_HINTS;"
xlinemessage="&env.XLINE_MESSAGE;">
<override enableumode="yes"
noisy="yes"
requirekey="yes">
<passforward cmd="SQUERY $nickrequired :IDENTIFY $nick $pass"
forwardmsg="NOTICE $nick :*** Forwarding PASS to $nickrequired"
nick="NICKSERV">
<pbkdf2 iterations="12288"
length="32">
<pbkdf2prov hash="sha256"
iterations="24576">
<penalty name="HELPOP"
value="60">
<performance clonesonconnect="&env.CLONES_ON_CONNECT;"
netbuffersize="&env.NET_BUFFER_SIZE;"
quietbursts="&env.QUIET_BURSTS;"
softlimit="&env.SOFT_LIMIT;"
somaxconn="&env.SO_MAX_CONN;"
timeskipwarn="&env.TIME_SKIP_WARN;">
<permchanneldb filename="data/permchannels.db"
listmodes="yes"
saveperiod="1d">
<permchannels channel="&env.OPER_CHANNEL;"
modes="npstOP"
topic="party line">
<permchannels channel="&env.SERVICE_CHANNEL;"
modes="npstOP"
topic="Service monitoring">
<permchannels channel="#blackhole"
modes="ntP"
topic="blackhole">
<pid file="/tmp/inspircd.pid">
<qrcode blockchar=" "
darkcolour="black"
lightcolour="white">
<randquote file="quotes"
prefix="❦ "
suffix="">
<remove protectedrank="50000"
supportnokicks="yes">
<repeat maxbacklog="20"
maxdistance="50"
maxlines="20"
maxtime="0"
size="512">
<restrictchans allowregistered="no">
<restrictmsg_duration duration="1s"
exemptoper="yes"
exemptregistered="yes"
exemptuline="yes"
notify="no"
target="both">
<rline engine="pcre"
matchonnickchange="yes"
zlineonmatch="no">
<roleplay mode="U"
needchanmode="true"
needop="false"
npchost="&env.ROLE_PLAY_VHOST;">
<rotatelog period="86400">
<securelist exemptregistered="yes"
showmsg="yes"
waittime="8s">
<security allowcoreunload="no"
announceinvites="dynamic"
customversion="&env.CUSTOM_VERSION;"
flatlinks="&env.FLAT_LINKS;"
genericoper="&env.GENERIC_OPER;"
hidebans="&env.HIDE_BANS;"
hidemodes="&env.HIDE_MODES;"
hidesplits="&env.HIDE_SPLITS;"
hideulines="&env.HIDE_ULINES;"
maxtargets="&env.MAX_TARGETS;"
restrictbannedusers="&env.RESTRICT_BANNED_USERS;"
userstats="&env.USER_STATS;">
<shedusers blockconnect="yes"
blockmessage="This server is in maintenance mode."
kill="no"
maxusers="0"
message="This server has entered maintenance mode."
minidle="3600"
shedopers="no"
shutdown="no">
<showfile endtext="End of uptime"
file="/proc/uptime"
introtext="server uptime:"
name="UPTIME">
<showfile endtext="End of loadavg"
file="/proc/loadavg"
introtext="server loadavg:"
name="LOADAVG">
<showwhois opersonly="no"
showfromopers="yes">
<shun affectopers="no"
allowconnect="no"
allowtags="no"
cleanedcommands="AWAY PART QUIT"
enabledcommands="ADMIN OPER PING PONG QUIT PART JOIN"
notifyuser="yes">
<silence exemptuline="yes"
maxentries="256">
<sslinfo operonly="no">
<sslmodes enableumode="yes">
<stdregex type="ecmascript">
<strictsasl reason="Fix your SASL authentication settings and try again">
<svshold silent="false">
<timedbans sendnotice="yes">
<timedstaticquit mintime="5m"
quitmsg="client quit within first 5 minutes">
<totp hash="sha256"
window="5">
<type classes="SACommands OperChat BanControl HostCloak Shutdown ServerLink"
modes="+s +cCqQ"
name="NetAdmin"
vhost="&env.NET_ADMIN_VHOST;">
<type classes="SACommands OperChat BanControl HostCloak ServerLink"
name="GlobalOp"
vhost="&env.GLOBAL_OP_VHOST;">
<type classes="SACommands OperChat BanControl HostCloak ServerLink"
name="HOPM"
vhost="&env.HOPM_VHOST;">
<type classes="HostCloak"
name="Helper"
vhost="&env.HELPER_VHOST;">
<uline server="&env.SERVICES_ULINE;"
silent="no">
<waitpong killonbadreply="yes"
sendsnotice="yes">
<watch maxwatch="256">
<whowas groupsize="10"
maxgroups="100000"
maxkeep="32y">
<wsorigin allow="&env.WS_ORIGIN_ALLOW;">
<xlinedb filename="/var/lib/inspircd/xline.db"
saveperiod="128s">
<zombie cleansplit="no"
dirtysplit="yes"
maxzombies="100"
serverzombietime="5m">
<alias text="HELPOP" replace="HELP $2-">
<helpmsg nohelp="There is no help for the topic you searched for. Please try again.">
<helptopic key="start" title="HELP" value="
/HELP CUSER
/HELP COPER
/HELP UMODES
/HELP CHMODES
/HELP SNOMASKS
/HELP EXTBANS
/HELP INDEX">
<helptopic key="cuser" title="USER COMMANDS" value="
ACCEPT ADMIN AWAY COMMANDS CYCLE DCCALLOW
HEXIP INFO INVITE ISON JOIN KICK
KNOCK LINKS LIST LUSERS MAP MKPASSWD
MODE MODULES MONITOR MOTD NAMES NICK
NOTICE OPER PART PASS PING PONG
PRIVMSG QUIT REMOVE SERVLIST SETNAME SILENCE
SQUERY SSLINFO STATS TBAN TIME TITLE
TOPIC UNINVITE USER USERHOST VERSION VHOST
WATCH WHO WHOIS WHOWAS
">
<helptopic key="squery" title="/SQUERY <target> :<message>" value=" ">
<helptopic key="servlist" title="/SERVLIST [<nick> [<oper-type>]]" value=" ">
<helptopic key="sslinfo" title="/SSLINFO [<chan>|<nick>]" value=" ">
<helptopic key="uninvite" title="/UNINVITE <nick> <channel>" value=" ">
<helptopic key="tban" title="/TBAN <channel> <duration> <banmask>" value=" ">
<helptopic key="dccallow" title="/DCCALLOW [(+|-)<nick> [<time>]]|[LIST|HELP]" value="
/DCCALLOW - List allowed nicks
/DCCALLOW LIST - This also lists allowed nicks
/DCCALLOW +<nick> [<duration>] - Add a nick
/DCCALLOW -<nick> - Remove a nick
/DCCALLOW HELP - Display help">
<helptopic key="accept" title="/ACCEPT *|(+|-)<nick>[,(+|-)<nick>]+" value="
/ACCEPT * - List accepted nicks
/ACCEPT +<nick> - Add a nick
/ACCEPT -<nick> - Remove a nick
/ACCEPT +<nick>,-<nick>,+<nick>">
<helptopic key="cycle" title="/CYCLE <channel> [:<reason>]" value=" ">
<helptopic key="title" title="/TITLE <username> <password>" value=" ">
<helptopic key="watch" title="/WATCH C|L|l|S|(+|-)<nick> [(+|-)<nick>]+" value="
/WATCH - List watched nicks that are online
/WATCH l - List watched nicks that are online
/WATCH L - List watched nicks, online and offline
/WATCH C - Clear all watched nicks
/WATCH S - Show statistics
/WATCH +<nick> - Add a nick
/WATCH -<nick> - Remove a nick
/WATCH +<nick> -<nick> +<nick>">
<helptopic key="monitor" title="/MONITOR C|L|S|(+|-) <nick>[,<nick>]+" value="
/MONITOR L - List all monitored nicks, not differentiating between
online and offline nicks
/MONITOR C - Clear all monitored nicks
/MONITOR S - List all monitored nicks, indicating which are online
and which are offline
/MONITOR + <nick> - Add a nick
/MONITOR - <nick> - Remove a nick
/MONITOR + <nick>,<nick>,<nick>
/MONITOR - <nick>,<nick>,<nick>">
<helptopic key="vhost" title="/VHOST <username> <password>" value=" ">
<helptopic key="remove" title="/REMOVE <channel> <nick> [:<reason>]" value=" ">
<helptopic key="rmode" title="/RMODE <channel> <mode> [<pattern>]" value=" ">
<helptopic key="hexip" title="/HEXIP <hex-ip|raw-ip>" value=" ">
<helptopic key="silence" title="/SILENCE [(+|-)<mask> [CcdiHNnPpTtx]]" value="
/SILENCE - Shows a list of silenced masks
/SILENCE +<mask> [<flags>] - Add a mask
/SILENCE -<mask> - Remove a mask
FLAGS
-------------------
C Matches a CTCP targeted at a user.
c Matches a CTCP targeted at a channel.
d Default behaviour; equivalent to CciNnPpTt.
H Hide the contents of messages instead of blocking.
i Matches an invite to a channel.
N Matches a NOTICE targeted at a user.
n Matches a NOTICE targeted at a channel.
P Matches a PRIVMSG targeted at a user.
p Matches a PRIVMSG targeted at a channel.
T Matches a TAGMSG targeted at a user.
t Matches a TAGMSG targeted at a channel.
x Exempt the mask from silence rules.">
<helptopic key="knock" title="/KNOCK <channel> :<reason>" value=" ">
<helptopic key="user" title="/USER <username> <unused> <unused> :<realname>" value=" ">
<helptopic key="nick" title="/NICK <newnick>" value=" ">
<helptopic key="quit" title="/QUIT [:<message>]" value=" ">
<helptopic key="version" title="/VERSION [<servername>]" value=" ">
<helptopic key="ping" title="/PING <cookie> [<servername>]" value=" ">
<helptopic key="pong" title="/PONG <cookie> [<servername>]" value=" ">
<helptopic key="prop" title="/PROP <target> [(+|-)<name> [<value>]]+" value=" ">
<helptopic key="admin" title="/ADMIN [<servername>]" value=" ">
<helptopic key="privmsg" title="/PRIVMSG <target>[,<target>]+ :<message>" value=" ">
<helptopic key="notice" title="/NOTICE <target>[,<target>]+ :<message>" value=" ">
<helptopic key="join" title="/JOIN <channel>[,<channel>]+ [<key>[,<key>]+]" value=" ">
<helptopic key="names" title="/NAMES [<channel>[,<channel>]+]" value=" ">
<helptopic key="part" title="/PART <channel>[,<channel>]+ [:<reason>]" value=" ">
<helptopic key="kick" title="/KICK <channel> <nick>[,<nick>]+ [:<reason>]" value=" ">
<helptopic key="mode" title="/MODE <target> [[(+|-)]<modes> [<mode-parameters>]]" value="
/MODE <target> - Show modes of <target>.
/MODE <channel> <list mode char> - List bans, exceptions, etc. set on <channel>.">
<helptopic key="topic" title="/TOPIC <channel> [:<topic>]" value=" ">
<helptopic key="who" title="/WHO <pattern> [<flags>][%[<fields>[,<querytype>]]] <pattern>" value="
---------------
FLAGS
---------------
A Show users who have an away message matching <pattern>.
a Show users who have an account name matching <pattern>.
G Show users who are connecting from a country code matching <pattern>.
Requires the geoban module.
h Show users who have a hostname matching <pattern>. If the 'x' modifier
is specified then this will match against the real hostname instead of
the display hostname.
i Show users who have an IP address matching <pattern>.
m Show users who have the modes listed in <pattern>. The pattern
should be in the same format as a mode change e.g. +ow-i (server
operators only).
n Show users who have a nickname matching <pattern>.
p Show users who are connected to a port in the <pattern> range (server
operators only).
r Show users who have a real name matching <pattern>.
s Show users who are on a server with a name matching <pattern>. If the 'x'
modifier is specified then this will match against the real server name
instead of the masked server name.
t Show users who have connected in the last <pattern> seconds.
u Show users who have a username matching <pattern>.
f Only show users on remote (far) servers.
l Only show users on the local server.
o Only show server operators.
x Show sensitive data like real user hostnames and, when hideserver is
enabled, real server hostnames.
----------------
FIELDS
----------------
a Include the user's account name in the response.
c Include the first common channel name in the response.
d Include the user's server distance from you in the response.
f Include the user's away status, oper status, and highest channel prefix
in the response.
h Include the user's hostname in the response. If the 'x' flag was
specified then this is the real host rather than the display host.
i Include the user's IP address in the response.
l Include the user's idle time in the response.
n Include the user's nickname in the response.
o Include the user's channel operator rank level in the response.
r Include the user's real name in the response.
s Include the user's server name in the response. If the 'x' flag was
specified then this is the real server name rather than the masked server
name.
t Include the query type in the response.
u Include the user's username in the response.">
<helptopic key="motd" title="/MOTD [<servername>]" value=" ">
<helptopic key="oper" title="/OPER <username> <password>" value=" ">
<helptopic key="list" title="/LIST [<pattern>]" value=" ">
<helptopic key="lusers" title="/LUSERS" value=" ">
<helptopic key="userhost" title="/USERHOST <nick> [<nick>]+" value=" ">
<helptopic key="away" title="/AWAY [:<message>]" value=" ">
<helptopic key="ison" title="/ISON <nick> [<nick>]+" value=" ">
<helptopic key="invite" title="/INVITE [<nick> <channel> [<time>]]" value=" ">
<helptopic key="pass" title="/PASS <password>" value=" ">
<helptopic key="whowas" title="/WHOWAS <nick> [<count>]" value=" ">
<helptopic key="links" title="/LINKS" value=" ">
<helptopic key="map" title="/MAP" value=" ">
<helptopic key="whois" title="/WHOIS [<servername>] <nick>[,<nick>]+" value=" ">
<helptopic key="time" title="/TIME [<servername>]" value=" ">
<helptopic key="info" title="/INFO [<servername>]" value=" ">
<helptopic key="setname" title="/SETNAME :<realname>" value=" ">
<helptopic key="coper" title="Oper Commands" value="
ALLTIME CBAN CHECK CHGHOST CHGIDENT
CHGNAME CLEARCHAN CLOAK CONNECT DIE
ELINE FILTER GLINE GLOADMODULE GLOBOPS
GRELOADMODULE GUNLOADMODULE KILL KLINE LOADMODULE
NICKLOCK NICKUNLOCK OJOIN OPERMOTD QLINE
RCONNECT REHASH RELOADMODULE RESTART RLINE
RSQUIT SAJOIN SAKICK SAMODE SANICK
SAPART SAQUIT SATOPIC SETHOST SETIDENT
SETIDLE SHUN SQUIT SWHOIS TLINE
UNLOADMODULE WALLOPS ZLINE
">
<helptopic key="tline" title="/TLINE <mask>" value=" ">
<helptopic key="filter" title="/FILTER <pattern> [<action> <flags> [<duration>] :<reason>]" value="
------------------
FILTERS
------------------
None Does nothing
Warn Lets the message through and informs +s server operators
of the message and all relevant info
Block Blocks message and informs +s server operators of the blocked
message and all relevant info
Silent Blocks message, but does not notify server operators
Kill Kills the user
Gline G-lines the user for the specified duration
Zline Z-lines the user for the specified duration
Shun Shuns the user for the specified duration (requires the shun module)
------------------
FLAGS
------------------
p Block private and channel messages
n Block private and channel notices
P Block part messages
q Block quit messages
o Don't match against opers
r Don't match against registered users
c Strip all formatting codes from the message before matching
* Represents all of the above flags except r
- Does nothing, a non-op for when you do not want to specify any
flags">
<helptopic key="ojoin" title="/OJOIN <channel>" value=" ">
<helptopic key="check" title="/CHECK <nick>|<ipmask>|<hostmask>|<channel> [<servername>]" value=" ">
<helptopic key="alltime" title="/ALLTIME" value=" ">
<helptopic key="rconnect" title="/RCONNECT <remote-server-mask> <target-server-mask>" value=" ">
<helptopic key="rsquit" title="/RSQUIT <target-server-mask> [:<reason>]" value=" ">
<helptopic key="globops" title="/GLOBOPS :<message>" value=" ">
<helptopic key="cban" title="/CBAN <channelmask> [<duration> [:<reason>]]" value=" ">
<helptopic key="sajoin" title="/SAJOIN [<nick>] <channel>[,<channel>]+" value=" ">
<helptopic key="sapart" title="/SAPART <nick> <channel>[,<channel>]+ [:<reason>]" value=" ">
<helptopic key="samode" title="/SAMODE <target> (+|-)<modes> [<mode-parameters>]" value=" ">
<helptopic key="sanick" title="/SANICK <nick> <newnick>" value=" ">
<helptopic key="sakick" title="/SAKICK <channel> <nick> [:<reason>]" value=" ">
<helptopic key="satopic" title="/SATOPIC <channel> :<topic>" value=" ">
<helptopic key="saquit" title="/SAQUIT <nick> :<reason>" value=" ">
<helptopic key="setidle" title="/SETIDLE <duration>" value=" ">
<helptopic key="sethost" title="/SETHOST <host>" value=" ">
<helptopic key="setident" title="/SETIDENT <username>" value=" ">
<helptopic key="swhois" title="/SWHOIS <nick> :<swhois>" value=" ">
<helptopic key="mkpasswd" title="/MKPASSWD <hashtype> <plaintext>" value=" ">
<helptopic key="opermotd" title="/OPERMOTD [<servername>]" value=" ">
<helptopic key="nicklock" title="/NICKLOCK <nick> <newnick>" value=" ">
<helptopic key="nickunlock" title="/NICKUNLOCK <nick>" value=" ">
<helptopic key="chghost" title="/CHGHOST <nick> <host>" value=" ">
<helptopic key="chgname" title="/CHGNAME <nick> :<realname>" value=" ">
<helptopic key="chgident" title="/CHGIDENT <nick> <username>" value=" ">
<helptopic key="shun" title="/SHUN <nick!user@host>[,<nick!user@host>]+ [<duration> :<reason>]" value=" ">
<helptopic key="die" title="/DIE <servername>" value=" ">
<helptopic key="restart" title="/RESTART <servername>" value=" ">
<helptopic key="commands" title="/COMMANDS" value=" ">
<helptopic key="kill" title="/KILL <nick>[,<nick>]+ :<reason>" value=" ">
<helptopic key="rehash" title="/REHASH [<servermask>]" value=" ">
<helptopic key="connect" title="/CONNECT <servermask>" value=" ">
<helptopic key="squit" title="/SQUIT <servermask>" value=" ">
<helptopic key="modules" title="/MODULES [<servername>]" value=" ">
<helptopic key="loadmodule" title="/LOADMODULE <modulename>" value=" ">
<helptopic key="unloadmodule" title="/UNLOADMODULE <modulename>" value=" ">
<helptopic key="reloadmodule" title="/RELOADMODULE <modulename>" value=" ">
<helptopic key="gloadmodule" title="/GLOADMODULE <modulename> [<servermask>]" value=" ">
<helptopic key="gunloadmodule" title="/GUNLOADMODULE <modulename> [<servermask>]" value=" ">
<helptopic key="greloadmodule" title="/GRELOADMODULE <modulename> [<servermask>]" value=" ">
<helptopic key="kline" title="/KLINE <user@host>[,<user@host>]+ [<duration> :<reason>]" value=" ">
<helptopic key="zline" title="/ZLINE <ipmask>[,<ipmask>]+ [<duration> :<reason>]" value=" ">
<helptopic key="qline" title="/QLINE <nickmask>[,<nickmask>]+ [<duration> :<reason>]" value=" ">
<helptopic key="gline" title="/GLINE <user@host>[,<user@host>]+ [<duration> :<reason>]" value=" ">
<helptopic key="eline" title="/ELINE <user@host>[,<user@host>]+ [<duration> :<reason>]" value=" ">
<helptopic key="wallops" title="/WALLOPS :<message>" value=" ">
<helptopic key="rline" title="/RLINE <regex> [<duration> :<reason>]" value=" ">
<helptopic key="clearchan" title="/CLEARCHAN <channel> [KILL|KICK|G|Z] [:<reason>]" value=" ">
<helptopic key="cloak" title="/CLOAK <host>" value=" ">
<helptopic key="umodes" title="USER MODES" value="
c Blocks private messages and notices from users who do
not share a common channel with you (requires the
commonchans module).
d Deaf mode. User will not receive any messages or notices
from channels they are in (requires the deaf module).
g In combination with /ACCEPT, provides for server-side
ignore (requires the callerid module).
h Marks as 'available for help' in WHOIS (server operators
only, requires the helpmsg module).
i Makes invisible to /WHO if the user using /WHO is not in
a common channel.
k Prevents the user from being kicked from channels, or
having op modes removed from them (services only,
requires the services module).
o Marks as a server operator.
s <mask> Receives server notices specified by <mask>
(server operators only).
r Marks as a having a registered nickname
(requires the account module).
w Receives wallops messages.
x Gives a cloaked hostname (requires the cloak module).
z Only allow private messages from TLS users (requires
the sslmodes module).
B Marks as a bot (requires the botmode module).
D Privdeaf mode. User will not receive any private messages
or notices from users (requires the deaf module).
H Hides an oper's oper status from WHOIS (requires the
hideoper module).
I Hides a user's entire channel list in WHOIS from
non-server operators (requires the hidechans module).
L Stops redirections done by the redirect module (requires
the redirect module).
N Allows users to opt-out of receiving channel history
(requires the chanhistory module).
O Allows server operators to opt-in to overriding
restrictions (requires the override module).
R Blocks private messages from unregistered users
(requires the account module).
S Strips formatting codes out of private messages
to the user (requires the stripcolor module).
W Receives notifications when a user uses WHOIS on them
(server operators only, requires the showwhois module).">
<helptopic key="chmodes" title="CHANNEL MODES" value="
v <nickname> Gives voice to <nickname>, allowing them to speak
while the channel is +m.
h <nickname> Gives halfop status to <nickname> (requires the
customprefix module).
o <nickname> Gives op status to <nickname>.
a <nickname> Gives protected status to <nickname>, preventing
them from being kicked (+q only, requires the
customprefix module).
q <nickname> Gives owner status to <nickname>, preventing them
from being kicked (Services or +q only, requires
the customprefix module).
b <hostmask> Bans <hostmask> from the channel.
e <hostmask> Excepts <hostmask> from bans (requires the
banexception module).
I <hostmask> Excepts <hostmask> from +i, allowing matching
users to join while the channel is invite-only
(requires the inviteexception module).
c Blocks messages that contain formatting codes
(requires the blockcolor module).
d <time> Blocks messages to a channel from new users
until they have been in the channel for <time>
seconds (requires the delaymsg module).
f [*]<lines>:<sec> Kicks on text flood equal to or above the
specified rate. With *, the user is banned
(requires the messageflood module).
g <mask> Blocks messages matching the given glob mask
(requires the chanfilter module).
i Makes the channel invite-only.
Users can only join if an operator
uses /INVITE to invite them.
j <joins>:<sec> Limits joins to the specified rate (requires
the joinflood module).
k <key> Set the channel key (password) to <key>.
l <limit> Set the maximum allowed users to <limit>.
m Enable moderation. Only users with +v, +h, or +o
can speak.
n Blocks users who are not members of the channel
from messaging it.
p Hides the channel in /WHOIS from people who are not a member.
You probably want the s (secret) channel mode rather than this.
r Marks the channel as registered with Services
(requires the account module).
s Hides the channel in /WHOIS and /LIST from people who are not a member.
t Prevents users without +h or +o from changing the
topic.
u Makes the channel an auditorium; normal users only
see themselves or themselves and the operators,
while operators see all the users (requires the
auditorium module).
w <flag>:<banmask> Adds basic channel access controls of <flag> to
<banmask>, via the +w listmode.
For example, +w o:R:Brain will op anyone identified
to the account 'Brain' on join.
(requires the autoop module)
z Blocks non-TLS clients from joining the channel
(requires the sslmodes module).
A Allows anyone to invite users to the channel
(normally only chanops can invite, requires
the allowinvite module).
B Blocks messages with too many capital letters,
as determined by the network configuration
(requires the blockcaps module).
C Blocks any CTCPs to the channel (requires the
noctcp module).
D Delays join messages from users until they message
the channel (requires the delayjoin module).
E [~|*]<lines>:<sec>[:<difference>][:<backlog>] Allows blocking of
similar messages (requires the repeat module).
Kicks as default, blocks with ~ and bans with *
The last two parameters are optional.
F <changes>:<sec> Blocks nick changes when they equal or exceed the
specified rate (requires the nickflood module).
H <num>:<duration> Displays the last <num> lines of chat to joining
users. <duration> is the maximum time to keep
lines in the history buffer (requires the
chanhistory module).
J <seconds> Prevents rejoin after kick for the specified
number of seconds. This prevents auto-rejoin
(requires the kicknorejoin module).
K Blocks /KNOCK on the channel (requires the
knock module).
L <channel> If the channel reaches its limit set by +l,
redirect users to <channel> (requires the
redirect module).
M Blocks unregistered users from speaking (requires
the account module).
N Prevents users on the channel from changing nick
(requires the nonicks module).
O Channel is server operators only (can only be set
by server operators, requires the operchans module).
P Makes the channel permanent; Bans, invites, the
topic, modes, and such will not be lost when it
empties (can only be set by server operators,
requires the permchannels module).
Q Only services servers and their users can kick
(requires the nokicks module).
R Blocks unregistered users from joining (requires
the account module).
S Strips formatting codes from messages to the
channel (requires the stripcolor module).
T Blocks /NOTICEs to the channel from users who are
not at least halfop (requires the nonotice module).
X <type>:<status> Makes users of <status> or higher exempt to the
specified restriction <type>. For example: flood:h
(requires the exemptchanops module).
Possible restriction types to exempt with +X are:
anticaps Channel mode +B
auditorium-see Permission required to see the full user list of
a +u channel (requires the auditorium module).
auditorium-vis Permission required to be visible in a +u channel
(requires the auditorium module).
blockcaps Channel mode +B
blockcolor Channel mode +c
filter Channel mode +g
flood Channel mode +f
nickflood Channel mode +F
noctcp Channel mode +C
nonick Channel mode +N
nonotice Channel mode +T
regmoderated Channel mode +M
repeat Channel mode +E
stripcolor Channel mode +S
topiclock Channel mode +t">
<helptopic key="stats" title="/STATS <symbol> [<servername>]" value="
e Show E-lines (global user@host ban exceptions)
g Show G-lines (global user@host bans)
k Show K-lines (local user@host bans)
q Show Q-lines (global nick bans)
R Show R-lines (global regular expression bans)
Z Show Z-lines (global IP mask bans)
s Show filters (global)
C Show channel bans (global)
H Show shuns (global)
c Show link blocks
d Show configured DNSBLs and related statistics
m Show command statistics, number of times commands have been used
o Show a list of all valid oper usernames and hostmasks
p Show open client ports, and the port type (tls, plaintext, etc)
u Show server uptime
z Show memory usage statistics
i Show connect class permissions
l Show all client connections with information (sendq, commands, bytes, time connected)
L Show all client connections with information and IP address
P Show online opers and their idle times
T Show bandwidth/socket statistics
U Show services servers
Y Show connection classes
O Show opertypes and the allowed user and channel modes it can set
E Show socket engine events
S Show currently held registered nicknames
G Show how many local users are connected from each country">
<helptopic key="snomasks" title="SNOMASKS" value="
a Allows receipt of local announcement messages.
A Allows receipt of remote announcement messages.
c Allows receipt of local connect messages.
C Allows receipt of remote connect messages.
d Allows receipt of local DNSBL messages (requires the dnsbl module).
D Allows receipt of remote DNSBL messages (requires the dnsbl module).
f Allows receipt of local filter messages (requires the filter module).
F Allows receipt of remote filter messages (requires the filter module).
g Allows receipt of globops (requires the globops module).
j Allows receipt of channel creation notices (requires the chancreate module).
J Allows receipt of remote channel creation notices (requires the chancreate module).
k Allows receipt of local kill messages.
K Allows receipt of remote kill messages.
l Allows receipt of local linking related messages.
L Allows receipt of remote linking related messages.
n Allows receipt of local nickname changes (requires the seenicks module).
N Allows receipt of remote nickname changes (requires the seenicks modules).
o Allows receipt of oper-up, oper-down, and oper-failure messages.
O Allows receipt of remote oper-up, oper-down, and oper-failure messages.
q Allows receipt of local quit messages.
Q Allows receipt of remote quit messages.
t Allows receipt of attempts to use /STATS (local and remote).
v Allows receipt of oper override notices (requires the override module).
x Allows receipt of local X-line notices (G/Z/Q/K/E/R/SHUN/CBan).
X Allows receipt of remote X-line notices (G/Z/Q/K/E/R/SHUN/CBan).
">
<helptopic key="extbans" title="EXTBANS" value="
---------------------
MATCHING
---------------------
a:<mask> Matches user with both a matching banmask and real name,
where <mask> is in the format nick!user@host+realname
(requires realnameban module).
j:<channel> Matches anyone in the given channel. Does not support
wildcards (requires the channelban module).
n:<class> Matches users in a matching connect class (requires
the classban module).
r:<realname> Matches users with a matching real name (requires the
realnameban module).
s:<server> Matches users on a matching server (requires the
serverban module).
z:<tlsfp> Matches users having the given TLS certificate
fingerprint (requires the sslmodes module).
w:<gateway> Matches users who are connecting via a WebIRC gateway that
matches <gateway>.
O:<opertype> Matches server operators of a matching type, mostly
useful as an invite exception (requires the
operchans module).
R:<account> Matches users logged into a matching account (requires
the account module).
U:<banmask> Matches unregistered users matching the given banmask.
(requires the account module).
--------------------
ACTING
--------------------
c:<banmask> Blocks any messages that contain formatting codes from
matching users (requires the blockcolor module).
m:<banmask> Blocks messages from matching users (requires the muteban
module). Users with +v or above are not affected.
A:<banmask> Blocks invites by matching users even when +A is set
(requires the allowinvite module).
B:<banmask> Blocks all capital or nearly all capital messages from
matching users (requires the blockcaps module).
C:<banmask> Blocks CTCPs from matching users (requires the noctcp
module).
N:<banmask> Blocks nick changes from matching users (requires
the nonicks module).
Q:<banmask> Blocks kicks by matching users (requires the nokicks
module).
S:<banmask> Strips formatting codes from messages from matching
users (requires the stripcolor module).
T:<banmask> Blocks notices from matching users (requires the
nonotice module).
--------------------
ADDITIONAL
--------------------
Redirect n!u@h#channel will redirect the banned user to #channel
when they try to join (requires the banredirect module).">
<include file="/etc/inspircd/include.conf"
missingokay="yes">
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment