# 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. #
# #
<server
- # name: Hostname of your server. Does not need to be valid.
+ # name: Hostname of your server. Does not need to resolve, but
+ # does need to be correct syntax (something.somethingelse.tld).
name="penguin.omega.org.za"
# description: Server description. Spaces are allowed.
<bind
# address: IP address to bind to if the box that you are hosting
# on has more than one IP, else the ircd will try to bind to all
- # IP's on the box if this is not defined
+ # IP's on the box if this is not defined.
address=""
- # port: Port for users and/or servers to be able to connect to.
+ # port: Port for users or servers to be able to connect to.
# you can select multiple ports by separating them
# with a - character like the example below.
port="6697"
# ssl: If you want this bind section to use SSL, define either
# gnutls or openssl here. The appropriate SSL modules must be loaded
# for ssl to work. If you do not want this bind section to support ssl,
- # just remove this option.
- ssl="gnutls">
+ # just remove or comment out this option.
+ ssl="gnutls"
+ >
<bind address="" port="6660-6669" type="clients">
-# When linking servers, the openssl and gnutls transports are largely
-# link-compatible and can be used alongside each other or either/or
+# 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 -#-#-#-#-#-#-#-#-#-#-
# parent: This setting is to specify if this connect class
# inherits settings from any other. Put the other class's name
- # in here to use its settings as a template - for example, if
- # you only want to adjust sendq and a password
+ # in here to use its settings as a template - for example, if
+ # you only want to adjust sendq and a password
parent="main"
# allow: What IP addresses/hosts to allow for this block.
# password: Password to use for this block/user(s)
password="secret"
+ # maxchans: Maximum number of channels a user in this class
+ # be in at one time. This overrides every other maxchans setting.
+ #maxchans="30"
+
+ # timeout: How long (in seconds) the server will wait before
+ # disconnecting a user if they do not do anything on connect.
+ # (Note, this is a client-side thing, if the client does not
+ # send /nick, /user or /pass)
+ timeout="10"
+
+ # localmax: Maximum local connections per IP (or CIDR mask, see below).
+ localmax="3"
+
+ # 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="no"
+
+ # limit: How many users are allowed in this class
+ limit="5000"
+
+ # 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)
# The port MUST be set to listen in the bind blocks above.
port="6667">
# disconnecting a user if they do not do anything on connect.
# (Note, this is a client-side thing, if the client does not
# send /nick, /user or /pass)
- timeout="60"
+ timeout="10"
- # pingfreq: How often the server tries to ping connecting clients/servers.
+ # 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 -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# #
<dns
# server: DNS server to use to attempt to resolve IP's to hostnames.
- server="127.0.0.1"
+ # 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.
timeout="5">
# Note that any disabled commands take effect only after the user has #
# 'registered' (e.g. after the initial USER/NICK/PASS on connection) #
# so for example disabling NICK will not cripple your network. #
+# #
+# You can also define if you want to disable any channelmodes #
+# or usermodes from your users. #
# #
# `fakenonexistant' will make the ircd pretend that nonexistant #
# commands simply don't exist to non-opers ("no such command"). #
# 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 soome help text of what
- # the correct parameters are
+ # for a command, the ircd will give back some help text of what
+ # the correct parameters are.
syntaxhints="no"
# cyclehosts: If enabled, when a user gets a host set, it will cycle
# ircumsgprefix: Use undernet-style message prefixing for NOTICE and
# PRIVMSG. If enabled, it will add users' prefix to the line, if not,
- # it will just message the user.
+ # 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 +SfFgNc. 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
# bots like BOPM during netsplits.
quietbursts="yes"
- # nouserdns: If enabled, no user DNS lookups will be performed on
+ # nouserdns: If enabled, no DNS lookups will be performed on
# connecting users. This can save a lot of resources on very busy servers.
nouserdns="no">
# as it may break some functionality in popular clients such as mIRC.
hidemodes="eI"
- # disablehmac: If you are linking your InspIRCd to versions older
- # than 1.1.6 (NOT RECOMMENDED), then you can specify this option and
- # set it to yes. 1.1.6 and above support HMAC and challenge-response
- # for password authentication. These can greatly enhance security of your
- # server-to-server connections when you are not using SSL.
- # It is highly recommended to keep this set to no.
- disablehmac="no"
-
- # hideulines: If this value is set to yes, U-lined server will
+ # hideulines: If this value is set to yes, U-lined servers will
# be hidden from non-opers in /links and /map.
hideulines="no"
# hidebans: If this value is set to yes, when a user is banned ([gkz]lined)
# only opers will see the ban message when the user is removed
- # from the server..
+ # from the server.
hidebans="no"
# hidekills: If defined, replaces who set a /kill with a custom string.
# the ircd. This may be set for security reasons or vanity reasons.
customversion=""
- # operspywhois: If this is set, when a oper /whois 's a user,
+ # operspywhois: If this is set to yes, when a oper /whois 's a user,
# it will show all channels the user is in including +s and +p
# channels.
operspywhois="no"
# NOT SUPPORTED/NEEDED UNDER WINDOWS.
#runasgroup=""
- # restrictbannedusers: If this is set, InspIRCd will not allow users
+ # restrictbannedusers: If this is set to yes, InspIRCd will not allow users
# banned on a channel to change nickname or message channels they are
# banned on.
restrictbannedusers="yes"
- # genericoper: Setting this value makes all opers on this server
+ # genericoper: Setting this value to yes makes all opers on this server
# appear as 'is an IRC operator' in their WHOIS, regardless of their
# oper type, however oper types are still used internally. This only
# affects the display in WHOIS.
# 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.
# #
<insane
- # hostmasks: Allow bans with insane hostmasks (over-reaching bans)
+ # hostmasks: Allow bans with insane hostmasks. (over-reaching bans)
hostmasks="no"
- # ipmasks: Allow bans with insane ipmasks (over-reaching bans)
+ # ipmasks: Allow bans with insane ipmasks. (over-reaching bans)
ipmasks="no"
- # nickmasks: Allow bans with insane nickmasks (over-reaching bans)
+ # nickmasks: Allow bans with insane nickmasks. (over-reaching bans)
nickmasks="no"
# trigger: What percentage of users on the network to trigger
# provide almost all the features of InspIRCd. :) #
# #
# The default does nothing -- we include it for simplicity for you. #
-<include file="modules.conf">
+<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">
#########################################################################