· 6 years ago · Feb 17, 2020, 07:56 PM
1#-#-#-#-#-#-#-#-#-#-#-#-#- MODULE OPTIONS -#-#-#-#-#-#-#-#-#-#-#-#-#
2# #
3# These tags define which modules will be loaded on startup by your #
4# server. Add modules without any paths. When you make your ircd #
5# using the 'make' command, all compiled modules will be moved into #
6# the folder you specified when you ran ./configure. The module tag #
7# automatically looks for modules in this location. #
8# If you attempt to load a module outside of this location, either #
9# in the config, or via /LOADMODULE, you will receive an error. #
10# #
11# By default, ALL modules are commented out. You must uncomment them #
12# or add lines to your config to load modules. Please refer to #
13# https://docs.inspircd.org/3/modules for a list of modules and #
14# each modules link for any additional conf tags they require. #
15# #
16# ____ _ _____ _ _ ____ _ _ _ #
17# | _ \ ___ __ _ __| | |_ _| |__ (_)___ | __ )(_) |_| | #
18# | |_) / _ \/ _` |/ _` | | | | '_ \| / __| | _ \| | __| | #
19# | _ < __/ (_| | (_| | | | | | | | \__ \ | |_) | | |_|_| #
20# |_| \_\___|\__,_|\__,_| |_| |_| |_|_|___/ |____/|_|\__(_) #
21# #
22# To link servers to InspIRCd, you MUST load the spanningtree module. #
23# If you don't do this, server links will NOT work at all. #
24# This is by design, to allow for the implementation of other linking #
25# protocols in modules in the future. This module is at the bottom of #
26# this file. #
27# #
28
29#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
30# MD5 module: Allows other modules to generate MD5 hashes, usually for
31# cryptographic uses and security.
32#
33# IMPORTANT:
34# Other modules such as cloaking and password_hash may rely on
35# this module being loaded to function.
36#
37<module name="md5">
38
39#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
40# SHA256 module: Allows other modules to generate SHA256 hashes,
41# usually for cryptographic uses and security.
42#
43# IMPORTANT:
44# Other modules such as password_hash may rely on this module being
45# loaded to function. Certain modules such as spanningtree will
46# function without this module but when it is loaded their features will
47# be enhanced (for example the addition of HMAC authentication).
48#
49<module name="sha256">
50
51#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
52# Abbreviation module: Provides the ability to abbreviate commands a-la
53# BBC BASIC keywords.
54#<module name="abbreviation">
55
56#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
57# Alias module: Allows you to define server-side command aliases.
58#<module name="alias">
59#
60# Set the 'prefix' for in-channel aliases (fantasy commands) to the
61# specified character. If not set, the default is "!".
62# If 'allowbots' is disabled, +B clients will not be able to use
63# fantasy commands. If not set, the default is no.
64#<fantasy prefix="!" allowbots="no">
65#
66#-#-#-#-#-#-#-#-#-#-#- ALIAS DEFINITIONS -#-#-#-#-#-#-#-#-#-#-#-#-#-#
67# #
68# If you have the alias module loaded, you may also define aliases as #
69# shown below. They are commonly used to provide shortcut commands to #
70# services, however they are not limited to just this use. #
71# An alias tag requires the following values to be defined in it: #
72# #
73# text - The text to detect as the actual command line. #
74# Can't contain spaces, but case insensitive. #
75# You may have multiple aliases with the same #
76# command name (text="" value), however the first #
77# found will be executed if its format value is #
78# matched, or it has no format value. Aliases are #
79# read from the top of the file to the bottom. #
80# #
81# usercommand - If this is true, the alias can be run simply as #
82# /ALIASNAME. Defaults to true. #
83# #
84# channelcommand - If this is true, the alias can be used as an #
85# in-channel alias or 'fantasy command', prefixed #
86# by the fantasy prefix character, !aliasname by #
87# default. Defaults to false. #
88# #
89# format - If this is defined, the parameters of the alias #
90# must match this glob pattern. For example if you #
91# want the first parameter to start with a # for #
92# the alias to be executed, set format="#*" in the #
93# alias definition. Note that the :'s which are #
94# part of IRC formatted lines will be preserved #
95# for matching of this text. This value is #
96# optional. #
97# #
98# replace - The text to replace 'text' with. Usually this #
99# will be "PRIVMSG ServiceName :$2-" or similar. #
100# You may use the variables $1 through $9 in the #
101# replace string, which refer to the first through #
102# ninth word in the original string typed by the #
103# user. You may also use $1- through $9- which #
104# refer to the first word onwards, through to the #
105# ninth word onwards, e.g. if the user types the #
106# command "foo bar baz qux quz" then $3- will hold #
107# "baz qux quz" and $2 will contain "bar". You may #
108# also use the special variables: $nick, $ident, #
109# $host and $vhost, and you may separate multiple #
110# commands with a newline (which can be written in #
111# the file literally, or encoded as &nl; or \n #
112# depending on the config format setting). #
113# #
114# requires - If you provide a value for 'requires' this means #
115# the given nickname MUST be online for the alias #
116# to successfully trigger. If they are not, then #
117# the user receives a 'no such nick' 401 numeric. #
118# #
119# stripcolor - If this is true, the text from the user will be #
120# stripped of color and format codes before #
121# matching against 'text'. #
122# #
123# uline - Setting this to true will ensure that the user #
124# given in 'requires' is also on a U-lined server, #
125# as well as actually being on the network. If the #
126# user is online, but not on a U-lined server, #
127# then an oper alert is sent out as this is #
128# possibly a sign of a user trying to impersonate #
129# a service. #
130# #
131# operonly - If true, this will make the alias oper only. #
132# If a non-oper attempts to use the alias, it will #
133# appear to not exist. #
134# #
135#
136# An example of using the format value to create an alias with two
137# different behaviours depending on the format of the parameters.
138#
139
140<alias text="PRIVMSG" format="NS *" replace="PRIVMSG NickServ $3-" requires="NickServ" uline="yes">
141<alias text="PRIVMSG" format="CS *" replace="PRIVMSG ChanServ $3-" requires="ChanServ" uline="yes">
142<alias text="PRIVMSG" format="OS *" replace="PRIVMSG OperServ $3-" requires="OperServ" uline="yes">
143<alias text="PRIVMSG" format="BS *" replace="PRIVMSG BotServ $3-" requires="BotServ" uline="yes">
144<alias text="PRIVMSG" format="HS *" replace="PRIVMSG HostServ $3-" requires="HostServ" uline="yes">
145<alias text="PRIVMSG" format="MS *" replace="PRIVMSG MemoServ $3-" requires="MemoServ" uline="yes">
146
147
148#<alias text="ID" format="#*" replace="SQUERY ChanServ :IDENTIFY $2 $3"
149# requires="ChanServ" uline="yes">
150#
151#<alias text="ID" replace="SQUERY NickServ :IDENTIFY $2"
152# requires="NickServ" uline="yes">
153#
154# This alias fixes a glitch in xchat 2.6.x and above and the way it
155# assumes IDENTIFY must be prefixed by a colon (:) character. It should
156# be placed ABOVE the default NICKSERV alias.
157#
158#<alias text="NICKSERV" format=":IDENTIFY *" replace="SQUERY NickServ :IDENTIFY $3-"
159# requires="NickServ" uline="yes">
160#
161# You may also add aliases to trigger based on something said in a
162# channel, aka 'fantasy' commands, configured in the same manner as any
163# other alias, with usercommand="no" and channelcommand="yes" The
164# command must be preceded by the fantasy prefix when used.
165#
166#<alias text="CS" usercommand="no" channelcommand="yes"
167# replace="SQUERY ChanServ :$1 $chan $2-" requires="ChanServ" uline="yes">
168#
169# This would be used as "!cs <command> <options>", with the channel
170# being automatically inserted after the command in the message to
171# ChanServ, assuming the fantasy prefix is "!".
172
173#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
174# Allowinvite module: Gives channel mode +A to allow all users to use
175# /INVITE, and extban A to deny invite from specific masks.
176#<module name="allowinvite">
177
178#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
179# Alltime module: Shows time on all connected servers at once.
180# This module is oper-only and provides /ALLTIME.
181# To use, ALLTIME must be in one of your oper class blocks.
182<module name="alltime">
183
184#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
185# Anticaps module: Adds channel mode +B which allows you to punish
186# users that send overly capitalised messages to channels. Unlike the
187# blockcaps module this module is more flexible as it has more options
188# for punishment and allows channels to configure their own punishment
189#В policies.
190#<module name="anticaps">
191#
192# You may also configure the characters which anticaps considers to be
193# lower case and upper case. Any characters not listed here are assumed
194# to be punctuation and will be ignored when counting:
195# <anticaps lowercase="abcdefghijklmnopqrstuvwxyz"
196# uppercase="ABCDEFGHIJKLMNOPQRSTUVWXYZ">
197
198#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
199# Auditorium module: Adds channel mode +u which makes everyone else
200# except you in the channel invisible, used for large meetings etc.
201#<module name="auditorium">
202#
203# Auditorium settings:
204#
205#<auditorium opvisible="no" opcansee="no" opercansee="yes">
206#
207# opvisible (auditorium-vis in exemptchanops):
208# Show channel ops to all users
209# opcansee (auditorium-see in exemptchanops):
210# Allow ops to see all joins/parts/kicks in the channel
211# opercansee:
212# Allow opers (channels/auspex) to see see all joins/parts/kicks in the channel
213#
214# Exemptchanops can be used to adjust the level at which users become visible or
215# the level at which they can see the full member list of the channel.
216
217#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
218# Autoop module: Adds basic channel access controls via the +w listmode.
219# For example +w o:*!Attila@127.0.0.1 will op anyone matching that mask
220# on join. This can be combined with extbans, for example +w o:R:Brain
221# will op anyone identified to the account "Brain".
222# Another useful combination is with SSL client certificate
223# fingerprints: +w h:z:72db600734bb9546c1bdd02377bc21d2a9690d48 will
224# give halfop to the user(s) having the given certificate.
225#<module name="autoop">
226
227#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
228# Ban except module: Adds support for channel ban exceptions (+e).
229<module name="banexception">
230
231#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
232# Ban redirection module: Allows bans which redirect to a specified
233# channel. e.g. +b nick!ident@host#channelbanneduserissentto
234<module name="banredirect">
235
236#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
237# bcrypt module: Allows other modules to generate bcrypt hashes,
238# usually for cryptographic uses and security.
239#<module name="bcrypt">
240#
241# rounds: Defines how many rounds the bcrypt function will run when
242# generating new hashes.
243#<bcrypt rounds="10">
244
245#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
246# Block amsg module: Attempt to block all usage of /amsg and /ame.
247#<module name="blockamsg">
248#
249#-#-#-#-#-#-#-#-#-#-#- BLOCKAMSG CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
250# #
251# If you have the blockamsg module loaded, you can configure it with #
252# the <blockamsg> tag: #
253# #
254# delay - How much time between two messages to force them #
255# to be recognised as unrelated. #
256# action - Any of 'notice', 'noticeopers', 'silent', 'kill' #
257# or 'killopers'. Define how to take action when #
258# a user uses /amsg or /ame. #
259#
260#<blockamsg delay="3" action="killopers">
261
262#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
263# Block CAPS module: Adds channel mode +B, blocks all-CAPS messages.
264#
265# NOTE: This module is deprecated and will be removed in a future version
266# of InspIRCd. You should use the anticaps module shown above instead.
267<module name="blockcaps">
268#
269#-#-#-#-#-#-#-#-#-#-#- BLOCKCAPS CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
270# #
271# percent - The percentage of a message which must be upper #
272# case before it will be blocked. #
273# #
274# minlen - The minimum length a message must be before it #
275# will be blocked. #
276# #
277# lowercase - The characters which will be considered lower #
278# case. #
279# #
280# uppercase - The characters which will be considered upper #
281# case. #
282#
283<blockcaps percent="50"
284 minlen="5"
285 lowercase="abcdefghijklmnopqrstuvwxyz"
286 uppercase="ABCDEFGHIJKLMNOPQRSTUVWXYZ">
287
288#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
289# Block color module: Blocking color-coded messages with chan mode +c.
290<module name="blockcolor">
291
292#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
293# Botmode module: Adds the user mode +B. If set on a user, it will
294# show that the user is a bot in /WHOIS.
295<module name="botmode">
296
297#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
298# CallerID module: Adds user mode +g which activates hybrid-style
299# callerid: block all private messages unless you /ACCEPT first.
300<module name="callerid">
301#
302#-#-#-#-#-#-#-#-#-#-#- CALLERID CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#
303# maxaccepts - Maximum number of entries a user can add to their #
304# /ACCEPT list. Default is 30 entries. #
305# tracknick - Preserve /ACCEPT entries when a user changes nick? #
306# If no (the default), the user is removed from #
307# everyone's accept list if their nickname changes. #
308# cooldown - Amount of time that must pass since the last #
309# notification sent to a user before they can be #
310# sent another. Default is 1 minute. #
311<callerid maxaccepts="30"
312 tracknick="no"
313 cooldown="1m">
314
315#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
316# CAP module: Provides the CAP negotiation mechanism required by the
317# sasl, namesx, uhnames, and ircv3 modules.
318# It is also recommended for STARTTLS support in the starttls module.
319<module name="cap">
320
321#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
322# CBAN module: Lets you disallow channels from being used at runtime.
323# This module is oper-only and provides /CBAN.
324# To use, CBAN must be in one of your oper class blocks.
325#<module name="cban">
326
327#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
328# Censor module: Adds channel and user mode +G which block phrases that
329# are listed in the server bad words list.
330<module name="censor">
331#
332#-#-#-#-#-#-#-#-#-#-#- CENSOR CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#
333# #
334# If you have the censor module loaded you should specify one or more #
335# phrases to replace/block in user messages. The config for this is #
336# formatted as follows: #
337# #
338# Replaces "eggplant" with "aubergine" within messages: #
339# <badword text="eggplant" replace="aubergine"> #
340# #
341# Blocks messages that contain "fluffy capybaras": #
342#<badword text="fluffy capybaras"> #
343
344#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
345# CGI:IRC module: Enables forwarding the real IP address of a user from
346# a gateway to the IRC server.
347<module name="cgiirc">
348#
349#-#-#-#-#-#-#-#-#-#-#-# CGIIRC CONFIGURATION #-#-#-#-#-#-#-#-#-#-#-#-#
350#
351# If you use the cgiirc module then you must specify the gateways which
352# are authorised to forward IP/host information to your server. There
353# are currently two ways to do this:
354#
355# The webirc method is the recommended way to allow gateways to forward
356# IP/host information. When using this method the gateway sends a WEBIRC
357# message to the server on connection. For more details please read the
358# IRCv3 WebIRC specification at: https://ircv3.net/specs/extensions/webirc.html
359#
360# When using this method you must specify a wildcard mask or CIDR range
361# to allow gateway connections from and at least one of either a SSL
362# client certificate fingerprint for the gateway or a password to be
363# sent in the WEBIRC command.
364#
365# <cgihost type="webirc"
366# fingerprint="bd90547b59c1942b85f382bc059318f4c6ca54c5"
367# mask="192.0.2.0/24">
368# <cgihost type="webirc"
369# password="$2a$10$WEUpX9GweJiEF1WxBDSkeODBstIBMlVPweQTG9cKM8/Vd58BeM5cW"
370# hash="bcrypt"
371# mask="*.webirc.gateway.example.com">
372#
373# Alternatively if your gateway does not support sending the WEBIRC
374# message then you can configure InspIRCd to look for the client IP
375# address in the ident sent by the user. This is not recommended as it
376# only works with IPv4 connections.
377#
378# When using this method you must specify a wildcard mask or CIDR range to allow
379# gateway connections from. You can also optionally configure the static value
380# that replaces the IP in the ident to avoid leaking the real IP address of
381# gateway clients (defaults to "gateway" if not set).
382#
383# <cgihost type="ident"
384# mask="198.51.100.0/24"
385# newident="wibble">
386# <cgihost type="ident"
387# mask="*.ident.gateway.example.com"
388# newident="wobble">
389
390<cgihost type="webirc" password="webpass" mask="94.156.58.84">
391
392#
393# By default gateway connections are logged to the +w snomask. If you
394# do not want this to happen then you can uncomment this to disable it.
395# <cgiirc opernotice="no">
396
397# IMPORTANT NOTE:
398# ---------------
399#
400# When you connect gateway clients, there are two connect classes which
401# apply to these clients. When the client initially connects, the connect
402# class which matches the gateway site's host is checked. Therefore you
403# must raise the maximum local/global clients for this IP as high as you
404# want to allow gateway clients. After the client has connected and is
405# determined to be a gateway client, the class which matches the client's
406# real IP is then checked. You may set this class to a lower value, so that
407# the real IP of the client can still be restricted to, for example, 3
408# sessions maximum.
409
410#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
411# Channel create module: Adds snomask +j, which will notify opers of
412# any new channels that are created.
413# This module is oper-only.
414#<module name="chancreate">
415
416#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
417# Channel filter module: Allows channel-op defined message filtering
418# using simple string matches (channel mode +g).
419<module name="chanfilter">
420#
421# If hidemask is set to yes, the user will not be shown the mask when
422# their message is blocked.
423#
424# If maxlen is set then it defines the maximum length of a filter entry.
425#
426# If notifyuser is set to no, the user will not be notified when
427# their message is blocked.
428#<chanfilter hidemask="yes" maxlen="50" notifyuser="yes">
429
430#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
431# Channel history module: Displays the last 'X' lines of chat to a user
432# joining a channel with +H 'X:T' set; 'T' is the maximum time to keep
433# lines in the history buffer. Designed so that the new user knows what
434# the current topic of conversation is when joining the channel.
435#<module name="chanhistory">
436#
437# Set the maximum number of lines allowed to be stored per channel below.
438# This is the hard limit for 'X'.
439# If prefixmsg is set to yes, joining users without batch support will get
440# a NOTICE before playback telling them about the following lines being
441# the pre-join history.
442# If bots is set to yes, it will also send to users marked with +B
443#<chanhistory maxlines="50" prefixmsg="yes" bots="yes">
444
445#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
446# Channel logging module: Used to send snotice output to channels, to
447# allow staff to centrally monitor and discuss network activity.
448#
449# The "channel" field is where you want the messages to go, "snomasks"
450# is what snomasks you want to be sent to that channel. Multiple tags
451# are allowed.
452#<module name="chanlog">
453#<chanlog snomasks="AOcC" channel="#opers">
454
455#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
456# Channel names module: Allows disabling channels which have certain
457# characters in the channel name such as bold, colorcodes, etc. which
458# can be quite annoying and allow users to on occasion have a channel
459# that looks like the name of another channel on the network.
460#<module name="channames">
461
462#<channames
463 # denyrange: characters or range of characters to deny in channel
464 # names.
465 #denyrange="2,3"
466
467 # allowrange: characters or range of characters to specifically allow
468 # in channel names.
469 #allowrange="">
470
471#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
472# Channelban: Implements extended ban j:, which stops anyone already
473# in a channel matching a ban like +b j:#channel from joining.
474# It is also possible to ban based on their status in that channel,
475# like so: +b j:@#channel, this example prevents the ops from joining.
476# Note that by default wildcard characters * and ? are allowed in
477# channel names. To disallow them, load the channames module and
478# add characters 42 and 63 to denyrange (see above).
479#<module name="channelban">
480
481#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
482# Check module: Adds the /CHECK command.
483# Check is useful for looking up information on channels, users,
484# IP addresses and hosts.
485# This module is oper-only.
486# To use, CHECK must be in one of your oper class blocks.
487#<module name="check">
488
489#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
490# CHGHOST module: Adds the /CHGHOST command.
491# This module is oper-only.
492# To use, CHGHOST must be in one of your oper class blocks.
493# NOTE: Services will not be able to set vhosts on users if this module
494# isn't loaded. If you're planning on running services, you probably
495# want to load this.
496<module name="chghost">
497#
498#-#-#-#-#-#-#-#-# /CHGHOST - /SETHOST CONFIGURATION #-#-#-#-#-#-#-#-#
499# Optional - If you want to use special chars for hostnames you can #
500# specify your own custom list of chars with the <hostname> tag: #
501# #
502# charmap - A list of chars accepted as valid by the /CHGHOST #
503# and /SETHOST commands. Also note that the list is #
504# case-sensitive. #
505<hostname charmap="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-_/0123456789">
506
507#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
508# CHGIDENT module: Adds the /CHGIDENT command.
509# This module is oper-only.
510# To use, CHGIDENT must be in one of your oper class blocks.
511<module name="chgident">
512
513#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
514# CHGNAME module: Adds the /CHGNAME command.
515# This module is oper-only.
516# To use, CHGNAME must be in one of your oper class blocks.
517<module name="chgname">
518#
519#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
520# Connection class ban module: Adds support for extban 'n' which
521# matches against the class name of the user's connection.
522# This module assumes that connection classes are named in a uniform
523# way on all servers of the network. Wildcards are accepted.
524#<module name="classban">
525
526#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
527# Clear chan module: Allows opers to masskick, masskill or
528# mass G/Z-line all users on a channel using /CLEARCHAN.
529<module name="clearchan">
530
531#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
532# Cloaking module: Adds user mode +x and cloaking support.
533# Relies on the md5 module being loaded.
534# To cloak users when they connect, load the conn_umodes module and set
535# <connect:modes> to include the +x mode. The example <connect> tag
536# shows this. See the conn_umodes module for more information.
537<module name="cloaking">
538#
539#-#-#-#-#-#-#-#-#-#-#- CLOAKING CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#
540# #
541# To use cloaking, you must define a cloak key, and optionally a #
542# cloak prefix as shown below. The cloak key must be shared across #
543# the network for consistent cloaking and must be at least thirty #
544# characters long. #
545# #
546# There are two methods of cloaking: #
547# #
548# half Cloak only the "unique" portion of a host; by #
549# default show the last 2 parts of the domain, #
550# /16 subnet of IPv4 or /48 subnet of the IPv6 #
551# address. #
552# To change the number of shown parts, modify the #
553# domainparts option. #
554# #
555# full Cloak the users completely, using three slices for #
556# common CIDR bans (IPv4: /16, /24; IPv6: /48, /64). #
557# #
558# The methods use a single key that can be any length of text. #
559# An optional prefix may be specified to mark cloaked hosts. #
560# #
561# IMPORTANT: Changing these details will break all of your existing #
562# bans. If you do not want this to happen you can define multiple #
563# cloak tags. The first will be used for cloaking and the rest will #
564# be used for checking if a user is banned in a channel. #
565#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
566#
567#<cloak mode="half"
568# key="changeme"
569# domainparts="3"
570# prefix="net-"
571# ignorecase="no">
572#
573#<cloak mode="full"
574# key="changeme"
575# prefix="net-"
576# ignorecase="no">
577
578<cloak mode="full"
579 key="0x4D2Y2G89195SDAWB95SWQ94xc45sa"
580>
581
582#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
583# Clones module: Adds an oper command /CLONES for detecting cloned
584# users. Warning: This command may be resource intensive when it is
585# issued, use with care.
586# This module is oper-only.
587# To use, CLONES must be in one of your oper class blocks.
588#<module name="clones">
589
590#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
591# Codepage module: Allows using a custom 8-bit codepage for nicknames
592# and case mapping.
593#
594# You should include one of the following files to set your codepage:
595<module name="codepage">
596
597<include file="examples/codepages/ascii.conf.example">
598<include file="examples/codepages/latin1.conf.example">
599<include file="examples/codepages/rfc1459.conf.example">
600<include file="examples/codepages/strict-rfc1459.conf.example">
601#
602# You can also define a custom codepage. For details on how to do this
603# please refer to the docs site:
604# https://docs.inspircd.org/3/modules/codepage
605
606#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
607# Common channels module: Adds user mode +c, which, when set, requires
608# that users must share a common channel with you to PRIVMSG or NOTICE
609# you.
610#<module name="commonchans">
611
612#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
613# Auto join on connect module: Allows you to force users to join one
614# or more channels automatically upon connecting to the server, or
615# join them in case they aren't on any channels after being online
616# for X seconds.
617<module name="conn_join">
618#
619#-#-#-#-#-#-#-#-#-#-#-#- CONNJOIN CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
620#
621# If you have the conn_join module loaded, you can configure it below
622# or set autojoin="#chat,#help" in <connect> blocks.
623#
624# Join users immediately after connection to #one #two and #three.
625#<autojoin channel="#one,#two,#three">
626# Join users to #chat after 15 seconds if they aren't on any channels.
627<autojoin channel="#DevilShell" delay="1">
628
629#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
630# Set modes on connect module: When this module is loaded <connect>
631# blocks may have an optional modes="" value, which contains modes to
632# add or remove from users when they connect to the server.
633<module name="conn_umodes">
634
635#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
636# Wait for PONG on connect module: Send a PING to all connecting users
637# and don't let them connect until they reply with a PONG.
638# This is useful to stop certain kinds of bots and proxies.
639#<module name="conn_waitpong">
640#
641#-#-#-#-#-#-#-#-#-#-#- WAITPONG CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
642# #
643# If you have the conn_waitpong module loaded, configure it with the #
644# <waitpong> tag: #
645# #
646# sendsnotice - Whether to send a helpful notice to users on #
647# connect telling them how to connect, should #
648# their client not reply PONG automatically. #
649# #
650# killonbadreply - Whether to kill the user if they send the wrong #
651# PONG reply. #
652# #
653#<waitpong sendsnotice="no" killonbadreply="yes">
654
655#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
656# Channel cycle module: Adds the /CYCLE command which is a server-side
657# /HOP that bypasses restrictive modes.
658#<module name="cycle">
659
660#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
661# Connectban: Provides IP connection throttling. Any IP range that
662# connects too many times (configurable) in an hour is Z-lined for a
663# (configurable) duration, and their count resets to 0.
664#<module name="connectban">
665#
666# ipv4cidr and ipv6cidr allow you to turn the comparison from
667# individual IP addresses (32 and 128 bits) into CIDR masks, to allow
668# for throttling over whole ISPs/blocks of IPs, which may be needed to
669# prevent attacks.
670#
671# This allows for 10 connections in an hour with a 10 minute ban if
672# that is exceeded.
673#<connectban threshold="10" duration="10m" ipv4cidr="32" ipv6cidr="128"
674# A custom ban message may optionally be specified.
675# banmessage="Your IP range has been attempting to connect too many times in too short a duration. Wait a while, and you will be able to connect.">
676
677#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
678# Connection throttle module.
679#<module name="connflood">
680#
681#-#-#-#-#-#-#-#-#-#-#- CONNTHROTTLE CONFIGURATION -#-#-#-#-#-#-#-#-#-#
682# period, maxconns - Amount of connections per <period>.
683#
684# timeout - Time to wait after the throttle was activated
685# before deactivating it. Be aware that the time
686# is seconds + timeout.
687#
688# quitmsg - The message that users get if they attempt to
689# connect while the throttle is active.
690#
691# bootwait - Amount of time in seconds to wait before enforcing
692# the throttling when the server just booted.
693#
694<connflood period="30" maxconns="5" timeout="30"
695 quitmsg="Throttled" bootwait="2m">
696
697#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
698# Custom prefixes: Allows for channel prefixes to be configured.
699<module name="customprefix">
700#
701# name The name of the mode, must be unique from other modes.
702# letter The letter used for this mode. Required.
703# prefix The prefix used for nicks with this mode. Not required.
704# rank A numeric rank for this prefix, defining what permissions it gives.
705# The rank of voice, halfop and op is 10000, 20000, and 30000,
706# respectively.
707# ranktoset The numeric rank required to set this mode. Defaults to rank.
708# ranktounset The numeric rank required to unset this mode. Defaults to ranktoset.
709# depriv Can you remove the mode from yourself? Defaults to yes.
710<customprefix name="founder" letter="q" prefix="~" rank="50000" ranktoset="50000">
711<customprefix name="admin" letter="a" prefix="&" rank="40000" ranktoset="50000">
712<customprefix name="halfop" letter="h" prefix="%" rank="20000" ranktoset="30000">
713#
714# You can also override the configuration of prefix modes added by both the core
715# and other modules by adding a customprefix tag with change="yes" specified.
716 <customprefix name="op" change="yes" rank="30000" ranktoset="30000">
717 <customprefix name="voice" change="yes" rank="10000" ranktoset="20000" depriv="no">
718#
719# Do /RELOADMODULE customprefix after changing the settings of this module.
720
721#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
722# Custom title module: Adds the /TITLE command which allows for trusted
723# users to gain a custom whois line and an optional vhost can be
724# specified.
725#<module name="customtitle">
726#
727#-#-#-#-#-#-#-#-#-#- CUSTOM TITLE CONFIGURATION -#-#-#-#-#-#-#-#-#-#
728# name - The username used to identify.
729# password - The password used to identify.
730# hash - The hash for the specific user's password (optional).
731# password_hash and a hashing module must be loaded
732# for this to work.
733# host - Allowed hostmask (optional).
734# title - Title shown in whois.
735# vhost - Displayed host (optional).
736#
737#<title name="foo" password="bar" title="Official Chat Helper">
738#<title name="bar" password="foo" host="ident@test.org" title="Official Chat Helper" vhost="helper.test.org">
739#<title name="foo" password="$2a$10$UYZ4OcO8NNTCCGyCdY9SK.2GHiqGgxZfHFPOPmWuxEVWVQTtoDC7C" hash="bcrypt" title="Official Chat Helper">
740
741#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
742# DCCALLOW module: Adds the /DCCALLOW command.
743#<module name="dccallow">
744#
745#-#-#-#-#-#-#-#-#-#-#- DCCALLOW CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
746# blockchat - Whether to block DCC CHAT as well as DCC SEND.
747# length - Default duration of entries in DCCALLOW list.
748# action - Default action to take if no action is
749# specified, can be 'block' or 'allow'.
750# maxentries - Max number of nicks to allow on a DCCALLOW list.
751#
752# File configuration:
753# pattern - The glob pattern to match against.
754# action - Action to take if a user attempts to send a file
755# that matches this pattern, can be 'block' or
756# 'allow'.
757#
758#<dccallow blockchat="yes" length="5m" action="block" maxentries="20">
759#<banfile pattern="*.exe" action="block">
760#<banfile pattern="*.txt" action="allow">
761
762#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
763# Deaf module: Adds support for user modes +d and +D:
764# d - deaf to channel messages and notices.
765# D - deaf to user messages and notices.
766# The +D user mode is not enabled by default to enable link compatibility
767# with 2.0 servers.
768#<module name="deaf">
769#
770#-#-#-#-#-#-#-#-#-#-#-#- DEAF CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#
771# bypasschars - Characters that bypass deaf to a regular user.
772# bypasscharsuline - Characters that bypass deaf to a U-lined user (services).
773# Both of these take a list of characters that must match
774# the starting character of a message.
775# If 'bypasscharsuline' is empty, then 'bypasschars' will
776# match for both regular and U-lined users.
777# enableprivdeaf - Whether to enable user mode +D (privdeaf).
778# privdeafuline - Whether U-lined users bypass user mode +D (privdeaf).
779#
780#<deaf bypasschars="" bypasscharsuline="!" enableprivdeaf="no" privdeafuline="yes">
781
782#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
783# Delay join module: Adds the channel mode +D which delays all JOIN
784# messages from users until they speak. If they quit or part before
785# speaking, their quit or part message will not be shown to the channel
786# which helps cut down noise on large channels in a more friendly way
787# than the auditorium mode. Only channel ops may set the +D mode.
788#<module name="delayjoin">
789
790#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
791# Delay message module: Adds the channel mode +d which disallows a user
792# from talking in the channel unless they've been joined for X seconds.
793# Settable using /MODE #chan +d 30
794#<module name="delaymsg">
795# Set allownotice to no to disallow NOTICEs too. Defaults to yes.
796#<delaymsg allownotice="no">
797
798#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
799# Deny channels module: Deny channels from being used by users.
800#<module name="denychans">
801#
802#-#-#-#-#-#-#-#-#-#-#- DENYCHAN DEFINITIONS -#-#-#-#-#-#-#-#-#-#-#-#
803# #
804# If you have the denychans module loaded, you need to specify the #
805# channels to deny: #
806# #
807# name - The channel name to deny (glob masks are ok). #
808# allowopers - If operators are allowed to override the deny. #
809# reason - Reason given for the deny. #
810# redirect - Redirect the user to a different channel. #
811# #
812#<badchan name="#gods*" allowopers="yes" reason="Tortoises!"> #
813<badchan name="#chan1" redirect="#chan2" reason="Chan1 is closed"> #
814# #
815# Redirects will not work if the target channel is set +L. #
816# #
817# Additionally, you may specify channels which are allowed, even if #
818# a badchan tag specifies it would be denied: #
819#<goodchan name="#funtimes"> #
820# Glob masks are accepted here also. #
821
822#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
823# Disable module: Provides support for disabling commands and modes. #
824#<module name="disable">
825#
826#-#-#-#-#-#-#-#-#-#-#-#- DISABLE CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#
827# #
828# If you have the disable module loaded then you need to specify the #
829# commands and modes that you want disabled. Users who have not fully #
830# connected yet are exempt from this module so you can e.g. disable #
831# the NICK command but still allow users to connect to the server. #
832# #
833# commands - A space-delimited list of commands that can not be used #
834# by users. You can exempt server operators from this with #
835# the servers/use-disabled-commands privilege. #
836# #
837# chanmodes - One or more channel modes that can not be added/removed #
838# by users. You can exempt server operators from this #
839# with the servers/use-disabled-modes privilege. #
840# #
841# usermodes - One or more user modes that can not be added/removed by #
842# users. You can exempt server operators from this with #
843# the servers/use-disabled-modes privilege. #
844# #
845# fakenonexistent - Whether to pretend that a disabled command/mode #
846# does not exist when executed/changed by a user. #
847# Defaults to no. #
848# #
849# notifyopers - Whether to send a notice to snomask `a` when a user #
850# is prevented from using a disabled command/mode. #
851# Defaults to no. #
852# #
853#<disabled commands="KICK TOPIC" #
854# chanmodes="kp" #
855# usermodes="iw" #
856# fakenonexistent="yes" #
857# notifyopers="no"> #
858
859#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
860# DNS blacklist module: Provides support for looking up IPs on one or #
861# more blacklists. #
862<module name="dnsbl">
863
864
865<dnsbl name="DroneBL"
866 type="record"
867 domain="dnsbl.dronebl.org"
868 action="ZLINE"
869 reason="You are listed in DroneBL. Please visit http://dronebl.org/lookup.do?ip=%ip% for more information."
870 duration="72h"
871 records="3,5,6,7,8,9,10,11,13,14,15,16,17">
872
873<dnsbl name="torexit.dan.me.uk"
874 domain="torexit.dan.me.uk"
875 type="record"
876 records="100"
877 action="ZLINE"
878 duration="7d"
879 reason="Tor exit nodes are not allowed on this network. See https://metrics.torproject.org/rs.html#search/%ip% for more information.">
880
881<dnsbl name="Tor - dan.me.uk"
882 type="record"
883 domain="tor.dan.me.uk"
884 action="ZLINE"
885 reason="Tor not allowed."
886 duration="72h"
887 records="100">
888
889
890
891<dnsbl name="EFnet RBL"
892 domain="rbl.efnetrbl.org"
893 type="record"
894 records="1,2,3,4,5"
895 action="ZLINE"
896 duration="7d"
897 reason="You are listed in the EFnet RBL. Please visit https://rbl.efnetrbl.org/?i=%ip% for more information.">
898
899 <dnsbl name="rbl.efnetrbl.org"
900 type="record"
901 domain="rbl.efnetrbl.org"
902 action="GLINE"
903 reason="Your IP %ip% is listed on efnet's RBL. http://rbl.efnetrblidiot.org/?i=%ip%"
904 duration="6h"
905 records="1,2,3,4,5,6,7,8,9,10">
906
907
908# #
909# For configuration options please see the docs page for dnsbl at #
910# https://docs.inspircd.org/3/modules/dnsbl #
911
912#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
913# Exempt channel operators module: Provides support for allowing #
914# users of a specified channel status to be exempt from some channel #
915# restriction modes. Supported restrictions are: #
916# anticaps, auditorium-see, auditorium-vis, blockcaps, blockcolor, #
917# censor, filter, flood, nickflood, noctcp, nonick, nonotice, #
918# regmoderated, stripcolor, and topiclock. #
919# See <options:exemptchanops> in inspircd.conf.example for a more #
920# detailed list of the restriction modes that can be exempted. #
921# These are settable using: /MODE #chan +X <restriction>:<status> #
922#<module name="exemptchanops">
923
924#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
925# Filter module: Provides message filtering, similar to SPAMFILTER. #
926<module name="filter">
927# #
928# This module depends upon a regex provider such as regex_pcre or #
929# regex_glob to function. You must specify which of these you want #
930# the filter module to use via the tag below. #
931# #
932# Valid engines are: #
933# #
934# glob - Glob patterns, provided via regex_glob. #
935# pcre - PCRE regexps, provided via regex_pcre, needs libpcre. #
936# tre - TRE regexps, provided via regex_tre, requires libtre. #
937# posix - POSIX regexps, provided via regex_posix, not available #
938# on Windows, no dependencies on other operating systems. #
939# stdlib - stdlib regexps, provided via regex_stdlib, see comment #
940# at the <module> tag for info on availability. #
941# #
942# If notifyuser is set to no, the user will not be notified when #
943# their message is blocked. #
944# #
945# If warnonselfmsg is set to yes when a user sends a message to #
946# themself that matches a filter the filter will be ignored and a #
947# warning will be sent to opers instead. This stops spambots which #
948# send their spam message to themselves first to check if it is being #
949# filtered by the server. #
950#<filteropts engine="glob" notifyuser="yes" warnonselfmsg="no">
951<filteropts engine="posix">
952<exemptfromfilter channel="#operwall">
953# #
954# Your choice of regex engine must match on all servers network-wide. #
955# #
956# To learn more about the configuration of this module, read #
957# examples/filter.conf.example, which covers the various types of #
958# filters and shows how to add exemptions. #
959# #
960#-#-#-#-#-#-#-#-#-#-#- FILTER CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#
961# #
962# Optional - If you specify to use the filter module, then #
963# specify below the path to the filter.conf file, or define some #
964# <keyword> tags. #
965# #
966<include file="examples/filter.conf">
967
968#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
969# Flash Policy Daemon module: Allows Flash IRC clients (e.g. LightIRC)#
970# to connect. If no file is specified, it'll serve a default policy #
971# allowing all IPs to connect to all plaintext IRC ports #
972#<bind address="" port="8430" type="flashpolicyd"> #
973#<flashpolicyd timeout="5" file=""> #
974#<module name="flashpolicyd"> #
975
976#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
977# Real name ban: Implements two extended bans: #
978# 'a', which matches a n!u@h+realname mask like +b a:*!*@host+*real* #
979# 'r', which matches a realname mask like +b r:*realname?here* #
980<module name="gecosban">
981
982#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
983# Geolocation ban module: Adds support for extban 'G' which matches #
984# against the ISO 3166-1 alpha-2 codes for the countries that users #
985# are connecting from. Users connecting from unknown origins such as #
986# internal networks can be matched against using the XX alpha-2 code. #
987# A full list of ISO 3166-1 alpha-2 codes can be found at #
988# https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 #
989#<module name="geoban">
990
991#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
992# Geolocation connect class module: Adds support for limiting connect #
993# classes to users from specific countries. With this module you can #
994# specify a space-delimited list of two character the ISO 3166-1 #
995# alpha-2 codes in the "country" field of a connect class. e.g. to #
996# deny connections from users in Russia or Turkey: #
997# #
998# <connect deny="*" country="TR RU"> #
999# #
1000# Users connecting from unknown origins such as internal networks can #
1001# be matched against using the XX alpha-2 code. A full list of ISO #
1002# 3166-1 alpha-2 codes can be found at #
1003# https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 #
1004#<module name="geoclass">
1005
1006#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1007# MaxMindDB geolocation module: Provides geolocation information for #
1008# other modules that need it using the libMaxMindDB library. #
1009# #
1010# This module is in extras. Re-run configure with: #
1011# ./configure --enable-extras=m_geo_maxmind.cpp
1012# and run make install, then uncomment this module to enable it. #
1013# #
1014# This module requires libMaxMindDB to be installed on your system. #
1015# Use your package manager to find the appropriate packages or check #
1016# the InspIRCd documentation page for this module. #
1017#<module name="geo_maxmind">
1018# #
1019# If you use the geo_maxmind module you MUST provide a database file #
1020# to look up geolocation information in. You can either purchase this #
1021# from MaxMind at https://www.maxmind.com/en/geoip2-country-database #
1022# or use the free CC-BY-SA licensed GeoLite2 Country database which #
1023# can be downloaded at https://dev.maxmind.com/geoip/geoip2/geolite2/ #
1024#<maxmind file="GeoLite2-Country.mmdb">
1025
1026#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1027# Globops module: Provides the /GLOBOPS command and snomask +g.
1028# This module is oper-only.
1029# To use, GLOBOPS must be in one of your oper class blocks.
1030<module name="globops">
1031
1032#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1033# Global load module: Allows loading and unloading of modules network-
1034# wide (USE WITH EXTREME CAUTION!)
1035# This module is oper-only and provides /GLOADMODULE, /GUNLOADMODULE
1036# and /GRELOADMODULE.
1037# To use, GLOADMODULE, GUNLOADMODULE and GRELOADMODULE
1038# must be in one of your oper class blocks.
1039<module name="globalload">
1040
1041#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1042# HAProxy module: Adds support for the HAProxy PROXY v2 protocol. To
1043# use this module specify hook="haproxy" in the <bind> tag that HAProxy
1044# has been configured to connect to.
1045#<module name="haproxy">
1046
1047#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1048# HELPOP module: Provides the /HELPOP command
1049<module name="helpop">
1050#
1051#-#-#-#-#-#-#-#-#-#-#-#- HELPOP CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
1052# #
1053# If you specify to use the helpop module, then specify below the #
1054# path to the helpop.conf file. #
1055# #
1056<include file="examples/helpop.conf">
1057
1058#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1059# Hide chans module: Allows users to hide their channels list from non-
1060# opers by setting user mode +I on themselves.
1061<module name="hidechans">
1062#
1063# This mode can optionally prevent opers from seeing channels on a +I
1064# user, for more privacy if set to true.
1065# This setting is not recommended for most mainstream networks.
1066#<hidechans affectsopers="false">
1067
1068#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1069# Hide list module: Allows for hiding the list of listmodes from users
1070# who do not have sufficient channel rank.
1071#<module name="hidelist">
1072#
1073# Each <hidelist> tag configures one listmode to hide.
1074# mode: Name of the listmode to hide.
1075# rank: Minimum rank required to view the list. If set to 0, all
1076# members of the channel may view the list, but non-members may not.
1077# The rank of the built-in op and voice mode is 30000 and 10000,
1078# respectively; the rank of other prefix modes is configurable.
1079# Defaults to 20000.
1080#
1081# Hiding the ban list is not recommended because it may break some
1082# clients.
1083#
1084# Hide filter (+g) list:
1085#<hidelist mode="filter" rank="30000">
1086# Only show invite exceptions (+I) to channel members:
1087#<hidelist mode="invex" rank="0">
1088
1089#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1090# Hide mode module: Allows for hiding mode changes from users who do not
1091# have sufficient channel privileges.
1092#<module name="hidemode">
1093#
1094# Hide bans (+b) from people who are not voiced:
1095#<hidemode mode="ban" rank="10000">
1096
1097#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1098# Hide oper module: Allows opers to hide their oper status from non-
1099# opers by setting user mode +H on themselves.
1100# This module is oper-only.
1101<module name="hideoper">
1102
1103#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1104# Hostchange module: Allows a different style of cloaking.
1105<module name="hostchange">
1106#
1107#-#-#-#-#-#-#-#-#-#-#- HOSTCHANGE CONFIGURATION -#-#-#-#-#-#-#-#-#-#
1108# #
1109# See https://docs.inspircd.org/3/modules/hostchange for help. #
1110# #
1111#<hostchange mask="*@42.theanswer.example.org" action="addaccount" suffix=".users.example.com">
1112#<hostchange mask="*root@*" action="addnick" prefix="example/users/">
1113#<hostchange mask="a@example.com" action="set" value="foo.bar.baz">
1114#<hostchange mask="*@localhost" ports="7000,7001,7005-7007" action="set" value="blahblah.foo">
1115<include file="examples/spoof.conf">
1116# hostcycle: If loaded, when a user gets a host or ident set, it will
1117# cycle them in all their channels. If not loaded it will simply change
1118# their host/ident without cycling them.
1119# This module is compatible with the ircv3_chghost module. Clients
1120# supporting the chghost extension will get the chghost message instead
1121# of seeing a host cycle.
1122<module name="hostcycle">
1123
1124#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1125# httpd module: Provides HTTP server support for InspIRCd.
1126#<module name="httpd">
1127#
1128#-#-#-#-#-#-#-#-#-#-#-#- HTTPD CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
1129#
1130# If you choose to use the httpd module, then you will need to add
1131# a <bind> tag with type "httpd", and load at least one of the other
1132# httpd_* modules to provide pages to display.
1133# <bind address="127.0.0.1" port="8067" type="httpd">
1134# <bind address="127.0.0.1" port="8097" type="httpd" ssl="gnutls">
1135#
1136# You can adjust the timeout for HTTP connections below. All HTTP
1137# connections will be closed after (roughly) this time period.
1138#<httpd timeout="20">
1139
1140#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1141# HTTP ACL module: Provides access control lists for httpd dependent
1142# modules. Use this module to restrict pages by IP address and by
1143# password.
1144#<module name="httpd_acl">
1145#
1146#-#-#-#-#-#-#-#-#-#-#-#- HTTPD ACL CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
1147#
1148# Restrict access to the httpd_stats module to all but the local
1149# network and when the correct password is specified:
1150# <httpdacl path="/stats*" types="password,whitelist"
1151# username="secrets" password="mypasshere" whitelist="127.0.0.*,10.*">
1152#
1153# Deny all connections to all but the main index page:
1154# <httpdacl path="/*" types="blacklist" blacklist="*">
1155
1156#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1157# HTTP config module: Allows the server configuration to be viewed over
1158# HTTP via the /config path. Requires the httpd module to be loaded for
1159# it to function.
1160#
1161# IMPORTANT: This module exposes extremely sensitive information about
1162# your server and users so you *MUST* protect it using a local-only
1163# <bind> tag and/or the httpd_acl module. See above for details.
1164#<module name="httpd_config">
1165
1166#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1167# HTTP stats module: Provides server statistics over HTTP via the /stats
1168# path. Requires the httpd module to be loaded for it to function.
1169#
1170# IMPORTANT: This module exposes extremely sensitive information about
1171# your server and users so you *MUST* protect it using a local-only
1172# <bind> tag and/or the httpd_acl module. See above for details.
1173#<module name="httpd_stats">
1174
1175#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1176# Ident: Provides RFC 1413 ident lookup support.
1177# When this module is loaded <connect:allow> tags may have an optional
1178# useident="yes|no" boolean value, determining whether or not to lookup
1179# ident on users matching that connect tag.
1180#<module name="ident">
1181#
1182#-#-#-#-#-#-#-#-#-#-#-#- IDENT CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
1183# #
1184# Optional - If you are using the ident module, then you can specify #
1185# the timeout for ident lookups here. If not defined, it will default #
1186# to 5 seconds. This is a non-blocking timeout which holds the user #
1187# in a 'connecting' state until the lookup is complete. #
1188# prefixunqueried: If on, the idents of users being in a connect class#
1189# with ident lookups disabled (i.e. <connect useident="off">) will be #
1190# prefixed with a "~". If off, the ident of those users will not be #
1191# prefixed. Default is off. #
1192#
1193#<ident timeout="5" prefixunqueried="no">
1194
1195#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1196# Invite exception module: Adds support for channel invite exceptions
1197# (+I).
1198<module name="inviteexception">
1199# bypasskey: If this is enabled, exceptions will bypass +k as well as +i
1200<inviteexception bypasskey="yes">
1201
1202#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1203# IRCv3 module: Provides the following IRCv3 extensions:
1204# extended-join, away-notify and account-notify. These are optional
1205# enhancements to the client-to-server protocol. An extension is only
1206# active for a client when the client specifically requests it, so this
1207# module needs the cap module to work.
1208#
1209# Further information on these extensions can be found at the IRCv3
1210# working group website:
1211# https://ircv3.net/irc/
1212#
1213#<module name="ircv3">
1214# The following block can be used to control which extensions are
1215# enabled. Note that extended-join can be incompatible with delayjoin
1216# and host cycling.
1217#<ircv3 accountnotify="on" awaynotify="on" extendedjoin="on">
1218
1219#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1220# IRCv3 account-tag module. Adds the 'account' tag which contains the
1221# services account name of the message sender.
1222#<module name="ircv3_accounttag">
1223
1224#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1225# IRCv3 batch module: Provides the batch IRCv3 extension which allows
1226# the server to inform a client that a group of messages are related to
1227# each other.
1228#<module name="ircv3_batch">
1229
1230#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1231# IRCv3 cap-notify module: Provides the cap-notify IRCv3 extension.
1232# Required for IRCv3 conformance.
1233#<module name="ircv3_capnotify">
1234
1235#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1236# IRCv3 chghost module: Provides the chghost IRCv3 extension which
1237# allows capable clients to learn when the host/ident of another user
1238# changes without cycling the user. This module is compatible with the
1239# hostcycle module. If both are loaded, clients supporting the chghost
1240# extension will get the chghost message and won't see host cycling.
1241#<module name="ircv3_chghost">
1242
1243#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1244# IRCv3 client-to-client tags module: Provides the message-tags IRCv3
1245#В extension which allows clients to add extra data to their messages.
1246# This is used to support new IRCv3 features such as replies and ids.
1247#<module name="ircv3_ctctags">
1248
1249#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1250# IRCv3 echo-message module: Provides the echo-message IRCv3
1251# extension which allows capable clients to get an acknowledgement when
1252# their messages are delivered and learn what modifications, if any,
1253# were applied to them.
1254#<module name="ircv3_echomessage">
1255
1256#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1257# IRCv3 invite-notify module: Provides the invite-notify IRCv3
1258# extension which notifies supporting clients when a user invites
1259# another user into a channel. This respects <options:announceinvites>.
1260#<module name="ircv3_invitenotify">
1261
1262#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1263# IRCv3 labeled-response module: Provides the labeled-response IRCv3
1264# extension which allows server responses to be associated with the
1265# client message which caused them to be sent.
1266#<module name="ircv3_labeledresponse">
1267
1268#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1269# IRCv3 message id module: Provides the msgid IRCv3 extension which
1270# adds a unique identifier to each message when the message-tags cap
1271# has been requested. This enables support for modern features such as
1272# reactions and replies.
1273#<module name="ircv3_msgid">
1274
1275#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1276# IRCv3 server-time module. Adds the 'time' tag which adds a timestamp
1277# to all messages received from the server.
1278#<module name="ircv3_servertime">
1279
1280#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1281# IRCv3 Strict Transport Security module: Provides the sts IRCv3
1282# extension which allows clients connecting insecurely to upgrade their
1283# connections to TLS.
1284#<module name="ircv3_sts">
1285#
1286# If using the ircv3_sts module you MUST define a STS policy to send
1287# to clients using the <sts> tag. This tag takes the following
1288# attributes:
1289#
1290# host - A glob match for the SNI hostname to apply this policy to.
1291# duration - The amount of time that the policy lasts for. Defaults to
1292# approximately two months by default.
1293# port - The port on which TLS connections to the server are being
1294# accepted. You MUST have a CA-verified certificate on this
1295# port. Self signed certificates are not acceptable.
1296# preload - Whether client developers can include your certificate in
1297# preload lists.
1298#
1299# <sts host="*.example.com" duration="60d" port="6697" preload="yes">
1300
1301#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1302# Join flood module: Adds support for join flood protection +j X:Y.
1303# Closes the channel for N seconds if X users join in Y seconds.
1304<module name="joinflood">
1305#
1306# The number of seconds to close the channel for:
1307<joinflood duration="1m">
1308
1309#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1310# Anti auto rejoin: Adds support for prevention of auto-rejoin (+J).
1311<module name="kicknorejoin">
1312
1313#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1314# Knock module: Adds the /KNOCK command and channel mode +K.
1315<module name="knock">
1316#
1317# This setting specifies what to do when someone successfully /KNOCKs.
1318# If set to "notice", then a NOTICE will be sent to the channel.
1319# This is the default and the compatible setting, as it requires no
1320# special support from the clients.
1321# If set to "numeric" then a 710 numeric will be sent to the channel.
1322# This allows easier scripting but not all clients support it.
1323# If set to "both" then (surprise!) both will be sent.
1324<knock notify="notice">
1325
1326#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1327# LDAP module: Allows other SQL modules to access a LDAP database
1328# through a unified API.
1329# This modules is in extras. Re-run configure with:
1330# ./configure --enable-extras=m_ldap.cpp
1331# and run make install, then uncomment this module to enable it.
1332#
1333#<module name="ldap">
1334#<database module="ldap" id="ldapdb" server="ldap://localhost" binddn="cn=Manager,dc=inspircd,dc=org" bindauth="mysecretpass" searchscope="subtree">
1335# The server parameter indicates the LDAP server to connect to. The #
1336# ldap:// style scheme before the hostname proper is MANDATORY. #
1337# #
1338# The binddn and bindauth indicate the DN to bind to for searching, #
1339# and the password for the distinguished name. Some LDAP servers will #
1340# allow anonymous searching in which case these two values do not #
1341# need defining, otherwise they should be set similar to the examples #
1342# above. #
1343# #
1344# The searchscope value indicates the subtree to search under. On our #
1345# test system this is 'subtree'. Your mileage may vary. #
1346
1347#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1348# LDAP authentication module: Adds the ability to authenticate users #
1349# via LDAP. #
1350#<module name="ldapauth">
1351# #
1352# Configuration: #
1353# #
1354# <ldapauth dbid="ldapdb" #
1355# baserdn="ou=People,dc=brainbox,dc=cc" #
1356# attribute="uid" #
1357# allowpattern="Guest* Bot*" #
1358# killreason="Access denied" #
1359# verbose="yes" #
1360# host="$uid.$ou.inspircd.org" #
1361# useusername="no"> #
1362# #
1363# <ldapwhitelist cidr="10.42.0.0/16"> #
1364# #
1365# <ldaprequire attribute="attr" value="val"> #
1366# #
1367# The baserdn indicates the base DN to search in for users. Usually #
1368# this is 'ou=People,dc=yourdomain,dc=yourtld'. #
1369# #
1370# The attribute value indicates the attribute which is used to locate #
1371# a user account by name. On POSIX systems this is usually 'uid'. #
1372# #
1373# The allowpattern value allows you to specify a space separated list #
1374# of wildcard masks which will always be allowed to connect #
1375# regardless of if they have an account, for example guest and bot #
1376# users. #
1377# #
1378# The useusername setting chooses whether the user's username or #
1379# nickname is used when locating a user account, if a username isn't #
1380# provided in PASS. #
1381# #
1382# Killreason indicates the QUIT reason to give to users if they fail #
1383# to authenticate. #
1384# #
1385# Setting the verbose value causes an oper notice to be sent out for #
1386# every failed authentication to the server, with an error string. #
1387# #
1388# ldapwhitelist indicates that clients connecting from an IP in the #
1389# provided CIDR do not need to authenticate against LDAP. It can be #
1390# repeated to whitelist multiple CIDRs. #
1391# #
1392# ldaprequire allows further filtering on the LDAP user, by requiring #
1393# certain LDAP attibutes to have a given value. It can be repeated, #
1394# in which case the list will act as an OR list, that is, the #
1395# authentication will succeed if any of the requirements in the list #
1396# is satisfied. #
1397# #
1398# host allows you to change the displayed host of users connecting #
1399# from ldap. The string supplied takes formatters which are replaced #
1400# from the DN. For instance, if your DN looks like: #
1401# uid=w00t,ou=people,dc=inspircd,dc=org, then the formatters uid, ou #
1402# and dc will be available to you. If a key is given multiple times #
1403# in the DN, the last appearance will take precedence. #
1404
1405#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1406# LDAP oper configuration module: Adds the ability to authenticate #
1407# opers via LDAP. #
1408#<module name="ldapoper">
1409# #
1410# Configuration: #
1411# #
1412# <ldapoper dbid="ldapdb"
1413# baserdn="ou=People,dc=brainbox,dc=cc"
1414# attribute="uid">
1415# #
1416# Available configuration items are identical to the same items in #
1417# ldapauth above (except for the verbose setting, that is only #
1418# supported in ldapauth). #
1419# Please always specify a password in your <oper> tags even if the #
1420# opers are to be authenticated via LDAP, so in case this module is #
1421# not loaded the oper accounts are still protected by a password. #
1422
1423#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1424# Lock server module: Adds /LOCKSERV and /UNLOCKSERV commands that #
1425# are used to temporarily close/open the server for new connections. #
1426# These commands require that the /LOCKSERV and /UNLOCKSERV commands #
1427# are specified in a <class> tag that the oper is part of. This is so #
1428# you can control who has access to this possible dangerous command. #
1429# If your server is locked and you get disconnected, do a REHASH from #
1430# shell to open up again. #
1431# This module is oper-only.
1432#<module name="lockserv">
1433
1434#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1435# Map hiding module: replaces /MAP and /LINKS output to users with a #
1436# message to see a website, set by maphide="https://test.org/map" in #
1437# the <security> tag, instead. #
1438#<module name="maphide">
1439
1440#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1441# Message flood module: Adds message/notice flood protection via
1442# channel mode +f.
1443<module name="messageflood">
1444#
1445# The weight to give each message type. TAGMSGs are considered to be
1446# 1/5 of a NOTICE or PRIVMSG to avoid users being accidentally flooded
1447# out of a channel by automatic client features such as typing
1448# notifications.
1449<messageflood notice="1.0" privmsg="1.0" tagmsg="0.2">
1450
1451#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1452# MLOCK module: Adds support for server-side enforcement of services
1453# side MLOCKs. Basically, this module suppresses any mode change that
1454# would likely be immediately bounced by services.
1455<module name="mlock">
1456
1457#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1458# Modenotice module: Adds the /MODENOTICE command that allows opers to
1459# send notices to all users having the given user mode(s) set.
1460<module name="modenotice">
1461
1462#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1463# Monitor module: Adds support for MONITOR which is used by clients to
1464# maintain notify lists.
1465#<module name="monitor">
1466#
1467# Set the maximum number of entries on a user's monitor list below.
1468#<monitor maxentries="30">
1469
1470#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1471# MySQL module: Allows other SQL modules to access MySQL databases
1472# through a unified API.
1473# This module is in extras. Re-run configure with:
1474# ./configure --enable-extras=m_mysql.cpp
1475# and run make install, then uncomment this module to enable it.
1476#<module name="mysql">
1477#
1478#-#-#-#-#-#-#-#-#-#-#-#- SQL CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-#
1479# #
1480# mysql is more complex than described here, see the docs for more #
1481# info: https://docs.inspircd.org/3/modules/mysql #
1482#
1483#<database module="mysql" name="mydb" user="myuser" pass="mypass" host="localhost" id="my_database2">
1484
1485#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1486# Named modes module: Allows for the display and set/unset of channel
1487# modes via long-form mode names via +Z and the /PROP command.
1488# For example, to set a ban, do /MODE #channel +Z ban=foo!bar@baz or
1489# /PROP #channel ban=foo!bar@baz
1490<module name="namedmodes">
1491
1492#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1493# NAMESX module: Provides support for the NAMESX extension which allows
1494# clients to see all the prefixes set on a user without getting confused.
1495# This is supported by mIRC, x-chat, klient, and maybe more.
1496<module name="namesx">
1497
1498#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1499# National characters module:
1500# 1) Allows using national characters in nicknames.
1501# 2) Allows using custom (national) casemapping over the network.
1502#
1503# This module is incredibly poorly written and documented. You should
1504# probably use the codepage module instead for 8-bit codepages.
1505#<module name="nationalchars">
1506#
1507# file - Location of the file which contains casemapping rules. If this
1508# is a relative path then it is relative to "<PWD>/../locales"
1509# on UNIX and "<PWD>/locales" on Windows.
1510# casemapping - The name of the casemapping sent to clients in the 005
1511# numeric. If this is not set then it defaults to the name
1512# of the casemapping file unless the file name contains a
1513# space in which case you will have to specify it manually.
1514#<nationalchars file="bynets/russian-w1251-charlink" casemapping="ru_RU.cp1251-charlink">
1515
1516#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1517# Nickchange flood protection module: Provides channel mode +F X:Y
1518# which allows up to X nick changes in Y seconds.
1519<module name="nickflood">
1520#
1521# The number of seconds to prevent nick changes for:
1522<nickflood duration="1m">
1523
1524#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1525# Nicklock module: Let opers change a user's nick and then stop that
1526# user from changing their nick again until unlocked.
1527# This module is oper-only.
1528# To use, NICKLOCK and NICKUNLOCK must be in one of your oper class blocks.
1529<module name="nicklock">
1530
1531#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1532# No CTCP module: Adds the channel mode +C and user mode +T to block
1533# CTCPs and extban 'C' to block CTCPs sent by specific users.
1534<module name="noctcp">
1535#
1536# The +T user mode is not enabled by default to enable link compatibility
1537# with 2.0 servers. You can enable it by uncommenting this:
1538<noctcp enableumode="yes">
1539
1540#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1541# No kicks module: Adds the +Q channel mode and the Q: extban to deny
1542# certain users from kicking.
1543<module name="nokicks">
1544
1545#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1546# No nicks module: Adds the +N channel mode, as well as the 'N' extban.
1547# +N stops all users from changing their nick, the N extban stops
1548# anyone from matching a +b N:nick!user@host mask from changing their
1549# nick.
1550<module name="nonicks">
1551
1552#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1553# No part message module: Adds extban 'p' to block part messages from #
1554# matching users. #
1555<module name="nopartmsg">
1556
1557#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1558# No notice module: Adds the channel mode +T and the extban 'T' to
1559# block specific users from noticing the channel.
1560<module name="nonotice">
1561
1562#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1563# Network business join module:
1564# Allows an oper to join a channel using /OJOIN, giving them +Y on the
1565# channel which makes them immune to kicks.
1566<module name="ojoin">
1567#
1568# Specify the prefix that +Y will grant here.
1569# Leave 'prefix' empty if you do not wish +Y to grant a prefix.
1570# If 'notice' is set to on, upon /OJOIN, the server will notice the
1571# channel saying that the oper is joining on network business.
1572# If 'op' is set to on, it will give them +o along with +Y.
1573<ojoin prefix="!" notice="yes" op="yes">
1574
1575#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1576# Oper channels mode: Adds the +O channel mode and extban O:<mask>
1577# to ban, except, etc. specific oper types. For example
1578# /MODE #channel +iI O:* is equivalent to channel mode +O, but you
1579# may also set +iI O:AdminTypeOnly to only allow admins.
1580# Modes +I and +e work in a similar fashion.
1581<module name="operchans">
1582
1583#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1584# Oper join module: Auto-joins opers to a channel upon oper-up.
1585# This module is oper-only. For the user equivalent, see the conn_join
1586# module.
1587<module name="operjoin">
1588#
1589#-#-#-#-#-#-#-#-#-#-# OPERJOIN CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
1590# #
1591# If you are using the operjoin module, specify options here: #
1592# #
1593# channel - The channel name to join, can also be a comma #
1594# separated list e.g. "#channel1,#channel2". #
1595# #
1596# override - If on, lets the oper join walking thru any modes #
1597# that might be set, even bans. #
1598# #
1599<operjoin channel="#operwall" override="no">
1600#
1601# Alternatively you can use the autojoin="channellist" in a <type> #
1602# tag to set specific autojoins for a type of oper, for example: #
1603#
1604#<type name="Helper" autojoin="#help" classes="...">
1605
1606#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1607# Oper log module: Logs all oper commands to the server log (with log
1608# type "m_operlog" at default loglevel), and optionally to the 'r'
1609# snomask.
1610# This module is oper-only.
1611#<module name="operlog">
1612#
1613# If the following option is on then all oper commands will be sent to
1614# the snomask 'r'. The default is off.
1615#<operlog tosnomask="off">
1616
1617#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1618# Oper prefixing module: Adds a channel prefix mode +y which is given
1619# to all server operators automatically on all channels they are in.
1620# This prefix mode is more powerful than channel op and other regular
1621# prefix modes.
1622#
1623# Load this module if you want all your server operators to have
1624# channel operator powers.
1625#<module name="operprefix">
1626#
1627# You may additionally customise the prefix character.
1628#<operprefix prefix="!">
1629
1630#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1631# Oper MOTD module: Provides support for a separate message of the day
1632# on oper-up.
1633# This module is oper-only.
1634<module name="opermotd">
1635#
1636#-#-#-#-#-#-#-#-#-#-# OPERMOTD CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
1637# #
1638# If you are using the opermotd module, specify the motd file here. #
1639# #
1640# onoper - If on, the message is sent on /OPER, otherwise it's #
1641# only sent when /OPERMOTD is used. #
1642# #
1643<opermotd file="examples/opermotd.txt" onoper="yes">
1644
1645#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1646# Override module: Adds support for oper override.
1647# This module is oper-only.
1648<module name="override">
1649#
1650#-#-#-#-#-#-#-#-#-#-# OVERRIDE CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
1651# #
1652# Much of override's configuration relates to your oper blocks. #
1653# For more information on how to allow opers to override, see: #
1654# https://docs.inspircd.org/3/modules/override #
1655# #
1656# noisy - If enabled, all oper overrides will be announced #
1657# via channel notice. #
1658# #
1659# requirekey - If enabled, overriding on join requires a channel #
1660# key of "override" to be specified. #
1661# #
1662# enableumode - If enabled, user mode +O is required for override. #
1663# #
1664#<override noisy="yes" requirekey="no" enableumode="true">
1665
1666#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1667# Oper levels module: Gives each oper a level and prevents actions
1668# being taken by lower level opers against higher level opers.
1669# Specify the level as the 'level' parameter of the <type> tag.
1670# This module is oper-only.
1671<module name="operlevels">
1672
1673#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1674# Oper modes module: Allows you to specify modes to add/remove on oper.
1675# Specify the modes as the 'modes' parameter of the <type> tag
1676# and/or as the 'modes' parameter of the <oper> tag.
1677# This module is oper-only. For the user equivalent, see the
1678# conn_umodes module.
1679<module name="opermodes">
1680
1681#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1682# Password forwarding module: Forwards a password users can send on
1683# connect to the specified client below. The client is usually NickServ
1684# and this module is usually used to authenticate users with NickServ
1685# using their connect password.
1686#<module name="passforward">
1687
1688<passforward
1689 # nick: nick to forward connect passwords to.
1690 nick="NickServ"
1691
1692 # forwardmsg: Message to send to users using a connect password.
1693 # $nick will be the users' nick, $nickrequired will be the nick
1694 # of where the password is going (the nick above).
1695 # You can also use $user for the user ident string.
1696 forwardmsg="NOTICE $nick :*** Forwarding PASS to $nickrequired"
1697
1698 # cmd: Command for the user to run when it receives a connect
1699 # password.
1700 cmd="SQUERY $nickrequired :IDENTIFY $pass">
1701
1702#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1703# Password hash module: Allows hashed passwords to be used.
1704# To be useful, a hashing module like bcrypt also needs to be loaded.
1705<module name="password_hash">
1706#
1707#-#-#-#-#-#-#-#-#-# PASSWORD HASH CONFIGURATION #-#-#-#-#-#-#-#-#-#-#-#
1708#
1709# To use this module, you must define a hash type for each oper's
1710# password you want to hash. For example:
1711#
1712# <oper name="Brain"
1713# host="ident@dialup15.isp.test.com"
1714# hash="bcrypt"
1715# password="$2a$10$Mss9AtHHslZTLBrXqM0FB.JBwD.UTSu8A48SfrY9exrpxbsRiRTbO"
1716# type="NetAdmin">
1717#
1718# If you are using a hash algorithm which does not perform salting you can use
1719# HMAC to salt your passwords in order to prevent them from being looked up in
1720# a rainbow table.
1721#
1722# hash="hmac-sha256" password="lkS1Nbtp$CyLd/WPQXizsbxFUTqFRoMvaC+zhOULEeZaQkUJj+Gg"
1723#
1724# Generate hashes using the /MKPASSWD command on the server.
1725# Don't run it on a server you don't trust with your password.
1726
1727#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1728# PBKDF2 module: Allows other modules to generate PBKDF2 hashes,
1729# usually for cryptographic uses and security.
1730# This module relies on other hash providers (e.g. SHA256).
1731<module name="pbkdf2">
1732#
1733# iterations: Iterations the hashing function runs when generating new
1734# hashes.
1735# length: Length in bytes of the derived key.
1736#<pbkdf2 iterations="12288" length="32">
1737# You can override these values with specific values
1738# for specific providers if you want to. Example given for SHA256.
1739<pbkdf2prov hash="sha256" iterations="24576">
1740
1741#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1742# Permanent channels module: Channels with the permanent channel mode
1743# will remain open even after everyone else has left the channel, and
1744# therefore keep things like modes, ban lists and topic. Permanent
1745# channels -may- need support from your Services package to function
1746# properly with them. This adds channel mode +P.
1747# This module is oper-only.
1748<module name="permchannels">
1749#
1750# If you like, this module can write a config file of permanent channels
1751# whenever +P is set, unset, or the topic/modes on a +P channel is changed.
1752# If you want to do this, set the filename below, and uncomment the include.
1753#
1754# If 'listmodes' is true then all list modes (+b, +I, +e, +g...) will be
1755# saved. Defaults to false.
1756#
1757# 'saveperiod' determines how often to check if the database needs to be
1758# saved to disk. Defaults to every five seconds.
1759#<permchanneldb filename="permchannels.conf"
1760# listmodes="true"
1761# saveperiod="5s">
1762#<include file="permchannels.conf">
1763#
1764# You may also create channels on startup by using the <permchannels> block.
1765<permchannels channel="#Operwall" modes="AOsP" topic="Opers only.">
1766
1767#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1768# PostgreSQL module: Allows other SQL modules to access PgSQL databases
1769# through a unified API.
1770# This module is in extras. Re-run configure with:
1771# ./configure --enable-extras=m_pgsql.cpp
1772# and run make install, then uncomment this module to enable it.
1773#<module name="pgsql">
1774#
1775#-#-#-#-#-#-#-#-#-#-#-#- SQL CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-#
1776# #
1777# pgsql is more complex than described here, see the docs for #
1778# more: https://docs.inspircd.org/3/modules/pgsql #
1779#
1780#<database module="pgsql" name="mydb" user="myuser" pass="mypass" host="localhost" id="my_database" ssl="no">
1781
1782#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1783# Muteban: Implements extended ban 'm', which stops anyone matching
1784# a mask like +b m:nick!user@host from speaking on channel.
1785<module name="muteban">
1786#
1787# If notifyuser is set to no, the user will not be notified when
1788# their message is blocked.
1789<muteban notifyuser="yes">
1790
1791#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1792# Random quote module: Provides a random quote on connect.
1793# NOTE: Some of these may mimic fatal errors and confuse users and
1794# opers alike - BEWARE!
1795#<module name="randquote">
1796#
1797#-#-#-#-#-#-#-#-#-#- RANDOMQUOTES CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
1798# #
1799# Optional - If you specify to use the randquote module, then specify #
1800# below the path to the quotes file. #
1801# #
1802#<randquote file="quotes.txt">
1803
1804#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1805# Redirect module: Adds channel mode +L which redirects users to #
1806# another channel when the channel has reached its user limit and #
1807# user mode +L which stops redirection. #
1808#<module name="redirect">
1809
1810#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1811# Regular expression provider for glob or wildcard (?/*) matching.
1812# You must have at least 1 provider loaded to use the filter or R-line
1813# modules. This module has no additional requirements, as it uses the
1814# matching already present in InspIRCd core.
1815#<module name="regex_glob">
1816
1817#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1818# Regular expression provider for PCRE (Perl-Compatible Regular
1819# Expressions). You need libpcre installed to compile and load this
1820# module. You must have at least 1 provider loaded to use the filter or
1821# R-line modules.
1822#<module name="regex_pcre">
1823
1824#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1825# Regular Expression Provider for RE2 Regular Expressions.
1826# You need libre2 installed and in your include/library paths in order
1827# to compile and load this module.
1828#<module name="regex_re2">
1829
1830#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1831# Regular expression provider for POSIX regular expressions.
1832# You shouldn't need any additional libraries on a POSIX-compatible
1833# system (i.e.: any Linux, BSD, but not Windows). You must have at
1834# least 1 provider loaded to use the filter or R-line modules.
1835# On POSIX-compliant systems, regex syntax can be found by using the
1836# command: 'man 7 regex'.
1837<module name="regex_posix">
1838
1839#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1840# Regular expression provider for C++11 std::regex regular expressions.
1841# This module works on any fully compliant implementation of the C++11
1842# std::regex container. Examples for such are Visual C++ 2010 and newer
1843# but not libstdc++ (which GCC uses).
1844# You should verify that std::regex is supported by your setup before
1845# using this module, as it may compile normally but won't do anything
1846# on some implementations.
1847#<module name="regex_stdlib">
1848#
1849# Specify the regular expression engine to use here. Valid settings are
1850# bre, ere, awk, grep, egrep, ecmascript (default if not specified).
1851#<stdregex type="ecmascript">
1852
1853#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1854# Regular expression provider for TRE regular expressions.
1855# This is the same regular expression engine used by UnrealIRCd, so
1856# if you are most familiar with the syntax of /SPAMFILTER from there,
1857# this is the provider you want. You need libtre installed in order
1858# to compile and load this module.
1859#<module name="regex_tre">
1860
1861#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1862# Remove module: Adds the /REMOVE command which is a peaceful
1863# alternative to /KICK. It also provides the /FPART command which works
1864# in the same way as /REMOVE.
1865#<module name="remove">
1866#
1867# supportnokicks: If true, /REMOVE is not allowed on channels where the
1868# nokicks (+Q) mode is set. Defaults to false.
1869# protectedrank: Members having this rank or above may not be /REMOVE'd
1870# by anyone. Set to 0 to disable this feature. Defaults to 50000.
1871#<remove supportnokicks="true" protectedrank="50000">
1872
1873#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1874# Repeat module: Allows to block, kick or ban upon similar messages
1875# being uttered several times. Provides channel mode +E.
1876#
1877# Syntax: [~|*]<lines>:<sec>[:<difference>][:<backlog>]
1878# ~ is to block, * is to ban, default is kick.
1879# lines - In mode 1, the amount of lines that has to match consecutively.
1880# In mode 2, the size of the backlog to keep for matching.
1881# seconds - How old the message has to be before it's invalidated.
1882# difference - Edit distance, in percent, between two strings to trigger on.
1883# backlog - When set, the function goes into mode 2. In this mode the
1884# function will trigger if this many of the last <lines> matches.
1885#
1886# As this module can be rather CPU-intensive, it comes with some options.
1887# maxbacklog - Maximum size that can be specified for backlog. 0 disables
1888# multiline matching.
1889# maxdistance - Max percentage of difference between two lines we'll allow
1890# to match. Set to 0 to disable edit-distance matching.
1891# maxlines - Max lines of backlog to match against.
1892# maxtime - Maximum period of time a user can set. 0 to allow any.
1893# size - Maximum number of characters to check for, can be used to
1894# truncate messages before they are checked, resulting in
1895# less CPU usage. Increasing this beyond 512 doesn't have
1896# any effect, as the maximum length of a message on IRC
1897# cannot exceed that.
1898#<repeat maxbacklog="20" maxdistance="50" maxlines="20" maxtime="0" size="512">
1899#<module name="repeat">
1900
1901#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1902# Restricted channels module: Allows only opers with the
1903# channels/restricted-create priv and/or registered users to
1904# create channels.
1905#
1906# You probably *DO NOT* want to load this module on a public network.
1907#
1908#<module name="restrictchans">
1909#
1910# allowregistered: should registered users be allowed to bypass the restrictions?
1911#<restrictchans allowregistered="no">
1912#
1913# Allow any channel matching #user-* to be created, bypassing restrictchans checks
1914#<allowchannel name="#user-*">
1915
1916#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1917# Restrict message module: Allows users to only message opers.
1918#
1919# You probably *DO NOT* want to load this module on a public network.
1920#
1921#<module name="restrictmsg">
1922
1923#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1924# R-line module: Ban users through regular expression patterns.
1925#<module name="rline">
1926#
1927#-#-#-#-#-#-#-#-#-#-#-#- RLINE CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-#
1928#
1929# If you wish to re-check a user when they change nickname (can be
1930# useful under some situations, but *can* also use CPU with more users
1931# on a server) then set 'matchonnickchange' to yes.
1932# If you additionally want Z-lines to be added on matches, then
1933# set 'zlineonmatch' to yes.
1934# Also, this is where you set what Regular Expression engine is to be
1935# used. If you ever change it while running, all of your R-lines will
1936# be wiped. This is the regex engine used by all R-lines set, and
1937# regex_<engine> must be loaded, or rline will be non-functional
1938# until you load it or change the engine to one that is loaded.
1939#
1940#<rline matchonnickchange="yes" zlineonmatch="no" engine="pcre">
1941#
1942# Generally, you will NOT want to use 'glob' here, as this turns an
1943# R-line into just another G-line. The exceptions are that R-lines will
1944# always use the full "nick!user@host realname" string, rather than only
1945# user@host, but beware that only the ? and * wildcards are available,
1946# and are the only way to specify where the space can occur if you do
1947# use glob. For this reason, is recommended to use a real regex engine
1948# so that at least \s or [[:space:]] is available.
1949
1950#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1951# RMODE module: Adds the /RMODE command.
1952# Allows channel operators to remove list modes en masse, optionally
1953# matching a glob-based pattern.
1954# Syntax: /RMODE <channel> <mode> [<pattern>]
1955# E.g. '/RMODE #channel b m:*' will remove all mute extbans on the channel.
1956#<module name="rmode">
1957
1958#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1959# SAJOIN module: Adds the /SAJOIN command which forcibly joins a user
1960# to the given channel.
1961# This module is oper-only.
1962# To use, SAJOIN must be in one of your oper class blocks.
1963# Opers need the users/sajoin-others priv to be able to /SAJOIN users
1964# other than themselves.
1965<module name="sajoin">
1966
1967#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1968# SAKICK module: Adds the /SAKICK command which kicks a user from the
1969# given channel.
1970# This module is oper-only.
1971# To use, SAKICK must be in one of your oper class blocks.
1972<module name="sakick">
1973
1974#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1975# SAMODE module: Adds the /SAMODE command which allows server operators
1976# to change modes on a channel without requiring them to have any
1977# channel priviliges. Also allows changing user modes for any user.
1978# This module is oper-only.
1979# To use, SAMODE must be in one of your oper class blocks.
1980<module name="samode">
1981
1982#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1983# SANICK module: Adds the /SANICK command which allows opers to change
1984# users' nicks.
1985# This module is oper-only.
1986# To use, SANICK must be in one of your oper class blocks.
1987<module name="sanick">
1988
1989#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1990# SAPART module: Adds the /SAPART command which forcibly parts a user
1991# from a channel.
1992# This module is oper-only.
1993# To use, SAPART must be in one of your oper class blocks.
1994<module name="sapart">
1995
1996#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
1997# SAQUIT module: Adds the /SAQUIT command which forcibly quits a user.
1998# This module is oper-only.
1999# To use, SAQUIT must be in one of your oper class blocks.
2000<module name="saquit">
2001
2002#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2003# SATOPIC module: Adds the /SATOPIC command which allows changing the
2004# topic on a channel without requiring any channel priviliges.
2005# This module is oper-only.
2006# To use, SATOPIC must be in one of your oper class blocks.
2007<module name="satopic">
2008
2009#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2010# SASL authentication module: Provides support for IRC Authentication
2011# Layer via AUTHENTICATE. Note: You also need to have cap loaded
2012# for SASL to work.
2013#<module name="sasl">
2014# Define the following to your services server name to improve security
2015# by ensuring the SASL messages are only sent to the services server
2016# and not to all connected servers. This prevents a rogue server from
2017# capturing SASL messages and disables the SASL cap when services is
2018# down.
2019#<sasl target="services.mynetwork.com">
2020
2021#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2022# Secure list module: Prevent /LIST in the first minute of connection,
2023# crippling most spambots and trojan spreader bots.
2024<module name="securelist">
2025#
2026#-#-#-#-#-#-#-#-#-# SECURELIST CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-#
2027# #
2028# Securelist can be harmful to some IRC search engines. To prevent #
2029# securelist blocking these sites from listing, define exception tags #
2030# as shown below: #
2031<securehost exception="*@*.netsplit.de">
2032#<securehost exception="*@*.ircdriven.com">
2033#<securehost exception="*@*.ircs.me">
2034# #
2035# Define the following variable to change how long a user must wait #
2036# before issuing a LIST. If not defined, defaults to 60 seconds. #
2037# #
2038<securelist waittime="3m"> #
2039
2040#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2041# Servprotect module: Provides support for Austhex style +k /
2042# UnrealIRCD +S services mode.
2043#<module name="servprotect">
2044
2045#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2046# See nicks module: Adds snomask +n and +N which show local and remote
2047# nick changes.
2048# This module is oper-only.
2049<module name="seenicks">
2050
2051#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2052# Set idle module: Adds a command for opers to change their idle time.
2053# This module is oper-only.
2054# To use, SETIDLE must be in one of your oper class blocks.
2055<module name="setidle">
2056
2057#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2058# Services support module: Adds several user modes such as +R and +M.
2059# This module implements the 'identified' state via account names,
2060# and is similar in operation to the way asuka and ircu handle services.
2061#
2062# At the same time, this offers +r for users and channels to mark them
2063# as identified separately from the idea of a master account, which
2064# can be useful for services which are heavily nick-as-account centric.
2065#
2066# Also of note is that this module implements two extbans:
2067# +b R: (stop matching account names from joining)
2068# +b U:n!u@h (blocks matching unregistered users)
2069#
2070<module name="services_account">
2071
2072#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2073# Sethost module: Adds the /SETHOST command.
2074# This module is oper-only.
2075# To use, SETHOST must be in one of your oper class blocks.
2076# See the chghost module for how to customise valid chars for hostnames.
2077<module name="sethost">
2078
2079#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2080# Setident module: Adds the /SETIDENT command.
2081# This module is oper-only.
2082# To use, SETIDENT must be in one of your oper class blocks.
2083<module name="setident">
2084
2085#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2086# SETNAME module: Adds the /SETNAME command.
2087<module name="setname">
2088#
2089#-#-#-#-#-#-#-#-#-#-#-#- SETNAME CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#
2090# #
2091# operonly - Whether the SETNAME command should only be usable by #
2092# server operators. Defaults to no. #
2093# #
2094# notifyopers - Whether to send a snotice to snomask `a` when a user #
2095# changes their real name. Defaults to to yes if #
2096# oper-only and no if usable by everyone. #
2097# #
2098#<setname notifyopers="yes"
2099# operonly="no">
2100
2101#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2102# Serverban: Implements extended ban 's', which stops anyone connected
2103# to a server matching a mask like +b s:server.mask.here from joining.
2104# Wildcards are accepted.
2105<module name="serverban">
2106
2107#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2108# SHA1 module: Allows other modules to generate SHA1 hashes.
2109# Required by the WebSocket module.
2110<module name="sha1">
2111
2112#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2113# Showfile: Provides support for showing a text file to users when #
2114# they enter a command. #
2115# This module adds one command for each <showfile> tag that shows the #
2116# given file to the user as a series of messages or numerics. #
2117#<module name="showfile">
2118# #
2119#-#-#-#-#-#-#-#-#-#-# SHOWFILE CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-#
2120# #
2121# name - The name of the command which displays this file. This is #
2122# the only mandatory setting, all others are optional. #
2123# file - The text file to be shown to the user. #
2124# By default same as the command name. #
2125# method - How should the file be shown? #
2126# * numeric: Send contents using a numeric #
2127# (similar to /MOTD; the default). #
2128# * notice: Send contents as a series of notices. #
2129# * msg: Send contents as a series of private messages. #
2130# #
2131# When using the method "numeric", the following extra settings are #
2132# available: #
2133# #
2134# introtext - Introductory line, "Showing <name>" by default. #
2135# intronumeric - Numeric used for the introductory line. #
2136# numeric - Numeric used for sending the text itself. #
2137# endtext - Ending line, "End of <name>" by default. #
2138# endnumeric - Numeric used for the ending line. #
2139# #
2140#<showfile name="RULES"
2141# file="rules.txt"
2142# introtext="Server rules:"
2143# endtext="End of server rules.">
2144
2145#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2146# Show whois module: Adds the +W user mode which allows opers to see
2147# when they are /WHOIS'd.
2148# This module is oper-only by default.
2149<module name="showwhois">
2150#
2151# If you wish, you may also let users set this mode. Only opers with the
2152# users/auspex priv will see real hosts of people, though.
2153<showwhois opersonly="yes"
2154#
2155# You may also set whether or not users should receive whois notices,
2156# should they be /WHOIS'd by an oper.
2157showfromopers="yes">
2158
2159#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2160# Shun module: Provides the /SHUN command, which stops a user from
2161# executing all except configured commands.
2162# This module is oper-only.
2163# To use, SHUN must be in one of your oper class blocks.
2164<module name="shun">
2165#
2166# You may also configure which commands you wish a user to be able to
2167# perform when shunned. It should be noted that if a shunned user
2168# issues QUIT or PART then their message will be removed, as if they
2169# did not issue one.
2170#
2171# You can optionally let the user know that their command was blocked.
2172#
2173# You may also let SHUN affect opers (defaults to no).
2174#<shun enabledcommands="ADMIN PING PONG QUIT PART JOIN" notifyuser="yes" affectopers="no">
2175
2176#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2177# SSL mode module: Adds support for SSL-only channels via the '+z'
2178# channel mode, SSL-only private messages via the '+z' user mode and
2179# the 'z:' extban which matches SSL client certificate fingerprints.
2180#
2181# Does not do anything useful without a working SSL module and the
2182# sslinfo module (see below).
2183<module name="sslmodes">
2184#
2185# The +z user mode is not enabled by default to enable link compatibility
2186# with 2.0 servers. You can enable it by uncommenting this:
2187<sslmodes enableumode="yes">
2188
2189#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2190# SSL rehash signal module: Allows the SSL modules to be rehashed by
2191# sending SIGUSR1 to a running InspIRCd process.
2192# This modules is in extras. Re-run configure with:
2193# ./configure --enable-extras=m_sslrehashsignal.cpp
2194# and run make install, then uncomment this module to enable it.
2195#<module name="sslrehashsignal">
2196
2197#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2198# GnuTLS SSL module: Adds support for SSL/TLS connections using GnuTLS,
2199# if enabled. You must answer 'yes' in ./configure when asked or
2200# manually symlink the source for this module from the directory
2201# src/modules/extra, if you want to enable this, or it will not load.
2202#<module name="ssl_gnutls">
2203#
2204#-#-#-#-#-#-#-#-#-#-#- GNUTLS CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#
2205# #
2206# ssl_gnutls is too complex to describe here, see the docs: #
2207# https://docs.inspircd.org/3/modules/ssl_gnutls #
2208
2209#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2210# SSL info module: Allows users to retrieve information about other
2211# users' peer SSL certificates and keys via the SSLINFO command.
2212# This can be used by client scripts to validate users. For this to
2213# work, one of ssl_gnutls, ssl_mbedtls or ssl_openssl must be loaded.
2214# This module also adds the "<user> is using a secure connection"
2215# and "<user> has client certificate fingerprint <fingerprint>"
2216# WHOIS lines, the ability for opers to use SSL cert fingerprints to
2217# verify their identity and the ability to force opers to use SSL
2218# connections in order to oper up. It is highly recommended to load
2219# this module if you use SSL on your network.
2220# For how to use the oper features, please see the first
2221# example <oper> tag in opers.conf.example.
2222#
2223<module name="sslinfo">
2224#
2225# If you want to prevent users from viewing SSL certificate information
2226# and fingerprints of other users, set operonly to yes.
2227<sslinfo operonly="no">
2228
2229#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2230# mbedTLS SSL module: Adds support for SSL/TLS connections using mbedTLS.
2231#<module name="ssl_mbedtls">
2232#
2233#-#-#-#-#-#-#-#-#-#-#- MBEDTLS CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#
2234# #
2235# ssl_mbedtls is too complex to describe here, see the docs: #
2236# https://docs.inspircd.org/3/modules/ssl_mbedtls #
2237
2238#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2239# OpenSSL SSL module: Adds support for SSL/TLS connections using OpenSSL,
2240# if enabled. You must answer 'yes' in ./configure when asked or symlink
2241# the source for this module from the directory src/modules/extra, if
2242# you want to enable this, or it will not load.
2243<module name="ssl_openssl">
2244#
2245#-#-#-#-#-#-#-#-#-#-#- OPENSSL CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#
2246# #
2247# ssl_openssl is too complex to describe here, see the docs: #
2248# https://docs.inspircd.org/3/modules/ssl_openssl #
2249
2250#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2251# Strip color module: Adds channel mode +S that strips color codes and
2252# all control codes except CTCP from all messages sent to the channel.
2253<module name="stripcolor">
2254
2255#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2256# Silence module: Adds support for the /SILENCE command, which allows
2257# users to have a server-side ignore list for their client.
2258#<module name="silence">
2259#
2260# Set the maximum number of entries allowed on a user's silence list.
2261#<silence maxentries="32"
2262#
2263# Whether messages from U-lined servers will bypass silence masks.
2264#exemptuline="yes">
2265
2266#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2267# SQLite3 module: Allows other SQL modules to access SQLite3 #
2268# databases through a unified API. #
2269# This module is in extras. Re-run configure with: #
2270# ./configure --enable-extras=m_sqlite3.cpp
2271# and run make install, then uncomment this module to enable it. #
2272#
2273#<module name="sqlite3">
2274#
2275#-#-#-#-#-#-#-#-#-#-#-#- SQL CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-#
2276# #
2277# sqlite is more complex than described here, see the docs for more #
2278# info: https://docs.inspircd.org/3/modules/sqlite3 #
2279#
2280#<database module="sqlite" hostname="/full/path/to/database.db" id="anytext">
2281
2282#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2283# SQL authentication module: Allows IRCd connections to be tied into
2284# a database table (for example a forum).
2285#
2286#<module name="sqlauth">
2287#
2288#-#-#-#-#-#-#-#-#-#-#- SQLAUTH CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#
2289# #
2290# sqlauth is too complex to describe here, see the docs: #
2291# https://docs.inspircd.org/3/modules/sqlauth #
2292
2293#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2294# SQL oper module: Allows you to store oper credentials in an SQL
2295# table. You can add additional table columns like you would config
2296# tags in opers.conf. Opers in opers.conf will override opers from
2297# this module.
2298#
2299#<module name="sqloper">
2300#
2301#-#-#-#-#-#-#-#-#-#-#- SQLOPER CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#
2302# #
2303# dbid - Database ID to use (see SQL modules). #
2304# #
2305# See also: https://docs.inspircd.org/3/modules/sqloper #
2306# #
2307#<sqloper dbid="1">
2308
2309#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2310# StartTLS module: Implements STARTTLS, which allows clients #
2311# connected to non SSL enabled ports to enable SSL, if a proper SSL #
2312# module is loaded (either ssl_gnutls, ssl_mbedtls or ssl_openssl). #
2313<module name="starttls">
2314
2315#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2316# SVSHold module: Implements SVSHOLD. Like Q-lines, but can only be #
2317# added/removed by Services. #
2318<module name="svshold">
2319# SVSHOLD does not generate server notices by default, you can turn
2320# notices on by uncommenting the next line.
2321#<svshold silent="false">
2322
2323#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2324# SWHOIS module: Allows you to add arbitrary lines to user WHOIS.
2325# This module is oper-only.
2326# To use, SWHOIS must be in one of your oper class blocks.
2327#<module name="swhois">
2328
2329#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2330# Timed bans module: Adds timed channel bans with the /TBAN command.
2331<module name="timedbans">
2332
2333#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2334# Test line module: Adds the /TLINE command, used to test how many
2335# users a /GLINE or /ZLINE etc. would match.
2336# This module is oper-only.
2337# To use, TLINE must be in one of your oper class blocks.
2338<module name="tline">
2339
2340#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2341# Topiclock module: implements server-side topic locking to achieve deeper
2342# integration with services packages.
2343<module name="topiclock">
2344
2345#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2346# UHNAMES support module: Adds support for the IRCX style UHNAMES
2347# extension, which displays ident and hostname in the names list for
2348# each user, saving clients from doing a WHO on the channel.
2349# If a client does not support UHNAMES it will not enable it, this will
2350# not break incompatible clients.
2351<module name="uhnames">
2352
2353#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2354# Uninvite module: Adds the /UNINVITE command which lets users remove
2355# pending invites from channels without waiting for the user to join.
2356<module name="uninvite">
2357
2358#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2359# Userip module: Adds the /USERIP command.
2360# Allows users to query their own IP, also allows opers to query the IP
2361# of anyone else.
2362<module name="userip">
2363
2364#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2365# Vhost module: Adds the VHOST command which allows for adding virtual
2366# hosts which are accessible using a username and password in the config.
2367<module name="vhost">
2368#
2369#-#-#-#-#-#-#-#-#-#-#- VHOST CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-#
2370# #
2371# user - Username for the vhost. #
2372# #
2373# pass - Password for the vhost. #
2374# #
2375# hash - The hash for the specific user (optional) #
2376# password_hash and a hashing module must be loaded for #
2377# this to work. #
2378# #
2379# host - Vhost to set. #
2380#
2381#<vhost user="some_username" pass="some_password" host="some.host.test.cc">
2382#<vhost user="foo" password="$2a$10$iTuYLT6BRhRlOgzfsW9oPe62etW.oXwSpyKw5rJit64SGZanLXghO" hash="bcrypt" host="some.other.host.example.com">
2383
2384#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2385# Watch module: Adds the WATCH command, which is used by clients to
2386# maintain notify lists.
2387#<module name="watch">
2388#
2389# Set the maximum number of entries on a user's watch list below.
2390#<watch maxentries="32">
2391
2392#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2393# WebSocket module: Adds HTML5 WebSocket support.
2394# Specify hook="websocket" in a <bind> tag to make that port accept
2395# WebSocket connections. Compatible with SSL/TLS.
2396# Requires SHA-1 hash support available in the sha1 module.
2397<module name="websocket">
2398#
2399# proxyranges: A space-delimited list of glob or CIDR matches to trust
2400# the X-Real-IP or X-Forwarded-For headers from. If enabled
2401# the server will use the IP address specified by those HTTP
2402# headers. You should NOT enable this unless you are using
2403# a HTTP proxy like nginx as it will allow IP spoofing.
2404# sendastext: Whether to re-encode messages as UTF-8 before sending to
2405# WebSocket clients. This is recommended as the WebSocket
2406# protocol requires all text frames to be sent as UTF-8.
2407# If you do not have this enabled messages will be sent as
2408# binary frames instead.
2409#<websocket proxyranges="192.0.2.0/24 198.51.100.*"
2410# sendastext="yes">
2411#
2412# If you use the websocket module you MUST specify one or more origins
2413# which are allowed to connect to the server. You should set this as
2414# strict as possible to prevent malicious webpages from connecting to
2415# your server.
2416 <wsorigin allow="https://*.example.com">
2417
2418#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2419# X-line database: Stores all *-lines (G/Z/K/R/any added by other modules)
2420# in a file which is re-loaded on restart. This is useful
2421# for two reasons: it keeps bans so users may not evade them, and on
2422# bigger networks, server connections will take less time as there will
2423# be a lot less bans to apply - as most of them will already be there.
2424<module name="xline_db">
2425
2426# Specify the filename for the xline database and how often to check whether
2427# the database needs to be saved here.
2428<xlinedb filename="xline.db" saveperiod="5s">
2429
2430#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2431# ____ _ _____ _ _ ____ _ _ _ #
2432# | _ \ ___ __ _ __| | |_ _| |__ (_)___ | __ )(_) |_| | #
2433# | |_) / _ \/ _` |/ _` | | | | '_ \| / __| | _ \| | __| | #
2434# | _ < __/ (_| | (_| | | | | | | | \__ \ | |_) | | |_|_| #
2435# |_| \_\___|\__,_|\__,_| |_| |_| |_|_|___/ |____/|_|\__(_) #
2436# #
2437# To link servers to InspIRCd, you MUST load the spanningtree module. #
2438# If you don't do this, server links will NOT work at all. #
2439# This is by design, to allow for the implementation of other linking #
2440# protocols in modules in the future. #
2441
2442#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
2443# Spanning tree module: Allows linking of servers using the spanning
2444# tree protocol (see the READ THIS BIT section above).
2445# You will almost always want to load this.
2446#
2447<module name="spanningtree">