# file you include will be treated as part of the configuration file #
# which includes it, in simple terms the inclusion is transparent. #
# #
-# All paths to config files are relative to the directory of the main #
-# config file inspircd.conf, unless the filename starts with a forward#
-# slash (/) in which case it is treated as an absolute path. #
+# All paths to config files are relative to the directory that the #
+# process runs in. #
# #
# You may also include an executable file, in which case if you do so #
# the output of the executable on the standard output will be added #
# #
+#-#-#-#-#-#-#-#-#-#-#-# VARIABLE DEFINITIONS -#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# You can define variables that will be substituted later in the #
+# configuration file. This can be useful to allow settings to be #
+# easily changed, or to parameterize a remote includes. #
+# #
+# Variables may be redefined and may reference other variables. #
+# Value expansion happens at the time the tag is read. #
+# #
+# Using variable definitions REQUIRES that the config format be #
+# changed to "xml" from the default "compat" that uses escape #
+# sequences such as "\"" and "\n", and does not support <define> #
+<config format="xml">
+<define name="bindip" value="1.2.2.3">
+<define name="localips" value="&bindip;/24">
+
#-#-#-#-#-#-#-#-#-#-#-#- SERVER DESCRIPTION -#-#-#-#-#-#-#-#-#-#-#-#-
# #
# Here is where you enter the information about your server. #
<bind address="" port="6660-6669" type="clients">
-# When linking servers, the openssl and gnutls transports are largely
+# When linking servers, the openssl and gnutls transports are completely
# link-compatible and can be used alongside each other
# on each end of the link without any significant issues.
# Transports can only be used on server blocks.
-# Supported Transports are: "zip", "openssl" and "gnutls".
+# Supported Transports are: "ziplinks", "openssl" and "gnutls".
# You must load m_ziplinks module for zip, m_ssl_openssl for openssl
# or m_ssl_gnutls for gnutls.
<bind address="" port="7000,7001" type="servers">
-<bind address="1.2.3.4" port="7005" type="servers" transport="openssl">
+<bind address="1.2.3.4" port="7005" type="servers" ssl="openssl">
#-#-#-#-#-#-#-#-#-#- DIE/RESTART CONFIGURATION -#-#-#-#-#-#-#-#-#-#-
# send /nick, /user or /pass)
timeout="10"
- # pingfreq: How often (in seconds) the server tries to ping connecting clients.
- pingfreq="120"
-
- # sendq: Amount of data that the server is allowed to send to the user
- # before they are dropped.
- sendq="262144"
-
- # recvq: amount of data allowed in a clients queue before they are dropped.
- recvq="8192"
-
- # localmax: Maximum local connections per IP.
+ # localmax: Maximum local connections per IP (or CIDR mask, see below).
localmax="3"
- # globalmax: Maximum global (network-wide) connections per IP.
+ # globalmax: Maximum global (network-wide) connections per IP (or CIDR mask, see below).
globalmax="3"
- # useident: Defines if users in this class must respond to a ident query or not.
+ # useident: Defines if users in this class MUST respond to a ident query or not.
useident="no"
# limit: How many users are allowed in this class
# modes: Usermodes that are set on users in this block on connect.
# Enabling this option requires that the m_conn_umodes module be loaded.
# This entry is highly recommended to use for/with IP Cloaking/masking.
+ # For the example to work, this also requires that the m_cloaking
+ # module be loaded as well.
modes="+x"
# port: What port this user is allowed to connect on. (optional)
# pingfreq: How often (in seconds) the server tries to ping connecting clients.
pingfreq="120"
- # sendq: Amount of data that the server is allowed to send to the user
- # before they are dropped.
- sendq="262144"
+ # hardsendq: maximum amount of data allowed in a client's send queue
+ # before they are dropped. Keep this value higher than the length of
+ # your network's /LIST or /WHO output, or you will have lots of
+ # disconnects from sendq overruns!
+ hardsendq="1048576"
+
+ # softsendq: amount of data in a client's send queue before the server
+ # begins delaying their commands in order to allow the sendq to drain
+ softsendq="8192"
- # recvq: amount of data allowed in a clients queue before they are dropped.
+ # recvq: amount of data allowed in a client's queue before they are dropped.
recvq="8192"
+ # threshold: This specifies the amount of command penalty a user is allowed to have
+ # before being quit or fakelagged due to flood. Normal commands have a penalty of 1,
+ # ones such as /OPER have penalties up to 10.
+ #
+ # If you are not using fakelag, this should be at least 20 to avoid excess flood kills
+ # from processing some commands.
+ threshold="10"
+
+ # commandrate: This specifies the maximum rate that commands can be processed.
+ # If commands are sent more rapidly, the user's penalty will increase and they will
+ # either be fakelagged or killed when they reach the threshold
+ #
+ # Units are millicommands per second, so 1000 means one line per second.
+ commandrate="1000"
+
+ # fakelag: Use fakelag instead of killing users for excessive flood
+ #
+ # Fake lag stops command processing for a user when a flood is detected rather than
+ # immediately killing them; their commands are held in the recvq and processed later
+ # as the user's command penalty drops. Note that if this is enabled, flooders will
+ # quit with "RecvQ exceeded" rather than "Excess Flood".
+ fakelag="on"
+
# localmax: Maximum local connections per IP.
localmax="3"
# modes: Usermodes that are set on users in this block on connect.
# Enabling this option requires that the m_conn_umodes module be loaded.
# This entry is highly recommended to use for/with IP Cloaking/masking.
+ # For the example to work, this also requires that the m_cloaking
+ # module be loaded as well.
modes="+x">
# throttle limits across a CIDR range. (A CIDR range is a group of #
# IPs, for example, the CIDR range 192.168.1.0-192.168.1.255 may be #
# represented as 192.168.1.0/24). This means that abuse across an ISP #
-# is detected and curtailed much easier. #
+# is detected and curtailed much easier. Here is a good chart that #
+# shows how many IPs the different CIDRs correspond to: #
+# http://en.wikipedia.org/wiki/CIDR#Prefix_aggregation #
# #
<cidr
# This file has all the information about oper classes, types and o:lines.
# You *MUST* edit it.
-<include file="opers.conf.example">
+<include file="conf/opers.conf.example">
# This file has all the information about server links and ulined servers.
# You *MUST* edit it if you intend to link servers.
-<include file="links.conf.example">
+<include file="conf/links.conf.example">
#-#-#-#-#-#-#-#-#-#- MISCELLANEOUS CONFIGURATION -#-#-#-#-#-#-#-#-#-#
# #
<files
- # motd: Path to your motd file. Path is relative to the conf directory.
- motd="inspircd.motd.example"
+ # motd: Path to your motd file. Path is relative to the run directory.
+ motd="conf/inspircd.motd.example"
- # rules: Path to your rules file. Path is relative to the conf directory.
- rules="inspircd.rules.example">
+ # rules: Path to your rules file. Path is relative to the run directory.
+ # This is optional and is displayed when a user does /rules on the network.
+ rules="conf/inspircd.rules.example">
#-#-#-#-#-#-#-#-#-#-#-# MAXIMUM CHANNELS -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# #
# in most cases, you won't need to change this, as inspircd will
# automatically detect the nameserver depending on /etc/resolv.conf
# (or, on windows, your set nameservers in the registry.)
+ # Note that this must be an IP address and not a hostname, because
+ # there is no resolver to resolve the name until this is defined!
+ #
# server="127.0.0.1"
# timeout: seconds to wait to try to resolve DNS/hostname.
# prefixpart: What (if anything) a users' part message
# should be prefixed with.
- prefixpart="\""
+ prefixpart="""
+ # NOTE: Use "\"" instead of """ if not using <config format="xml">
# suffixpart: What (if anything) a users' part message
# should be suffixed with.
- suffixpart="\""
+ suffixpart="""
+
+ # fixedquit: Set all users' quit messages to this value.
+ #fixedquit=""
+
+ # fixedpart: Set all users' part messages in all channels
+ # to this value.
+ #fixedpart=""
# syntaxhints: If enabled, if a user fails to send the correct parameters
# for a command, the ircd will give back some help text of what
# it will just message the user normally.
ircumsgprefix="no"
- # announcets: If set to yes, when the TS on a channel changes, all users
+ # announcets: If set to yes, when the TimeStamp on a channel changes, all users
# in channel will be sent a NOTICE about it.
announcets="yes"
+ # allowmismatched: Setting this option to yes will allow servers to link even
+ # if they don't have the same VF_OPTCOMMON modules loaded. Setting this to
+ # yes may introduce some desyncs and weirdness.
+ allowmismatched="no"
+
# hostintopic: If enabled, channels will show the host of the topicsetter
- # in the topic.
+ # in the topic. If set to no, it will only show the nick of the topicsetter.
hostintopic="yes"
# pingwarning: If a server does not respond to a ping within x seconds,
# banned from the server.
moronbanner="You're banned! Email haha@abuse.com with the ERROR line below for help."
- # exemptchanops: Defines what channel modes channel operators are
- # exempt from. Supported modes are +TCGfcSFBgN. Defaults to off.
- exemptchanops=""
-
# invitebypassmodes: This allows /invite to bypass other channel modes.
# (Such as +k, +j, +l, etc)
invitebypassmodes="yes">
netbuffersize="10240"
# maxwho: Maximum number of results to show in a /who query.
- # It is not recommended to set this above 1024.
- maxwho="128"
+ maxwho="4096"
# somaxconn: The maximum number of connections that may be waiting
# in the accept queue. This is *NOT* the total maximum number of
# defined to account for a null terminator on the end of the text. #
# #
# These values should match network-wide otherwise issues will occur. #
+# #
+# The highest safe value you can set any of these options to is 500, #
+# but it is recommended that you keep them somewhat #
+# near their defaults (or lower). #
<limits
# maxnick: Maximum length of a nickname.
# provide almost all the features of InspIRCd. :) #
# #
# The default does nothing -- we include it for simplicity for you. #
-<include file="modules.conf.example">
+<include file="conf/modules.conf.example">
+
+# Here are some pre-built modules.conf files that closely match the
+# default configurations of some popular IRCd's. You still may want to
+# look over them and make sure if everything is correct for you and setup
+# the proper SSL information.
+#
+# *NOTE*: These files have no comments for what the modules do. If you
+# are interested in that, please read the modules.conf.example. It is also
+# recommended that you make your own modules file based on modules.conf.example.
+
+# Settings similar to UnrealIRCd defaults.
+#<include file="conf/modules/modules.conf.unreal">
+
+# Settings similar to Charybdis IRCd defaults.
+#<include file="conf/modules/modules.conf.charybdis">
#########################################################################