]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - conf/inspircd.conf.example
Flexible SendQ
[user/henk/code/inspircd.git] / conf / inspircd.conf.example
index cdd247b21b2e68560eedc8a819064a689552a18a..0b860bb815dcec6573f98ae51e74e0050ee3d710 100644 (file)
 #   Here is where you enter the information about your server.        #
 #                                                                     #
 
-<server 
-        # name: Hostname of your server. Does not need to be valid.
+<server
+        # 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.
         description="Waddle World"
 
+        # id: The SID to use for this server. This should not be uncommented
+        # unless there is a SID conflict. This must be three characters long.
+        # The first character must be a digit [0-9], the remaining two chars
+        # may be letters [A-Z] or digits.
+        #id="97K"
+
         # network: Network name given on connect to clients.
         # Should be the same on all servers on the network and
         # not contain spaces.
@@ -87,7 +94,7 @@
 #   nick, and email address.                                          #
 #                                                                     #
 
-<admin 
+<admin
        # name: Real Name
        name="Johnny English"
 
 # PLEASE NOTE: If you have build InspIRCd with IPv6 support, you MUST #
 # specify a bind address if you want the IRCd to bind to a IPv4 IP.   #
 
-<bind 
+<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
-      address="" 
+      # 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" 
+      port="6697"
 
       # type: Type of bind block this is. It can either be clients or
       # servers. Whichever you select will be the only type able to connect
       # to this bind section.
-      type="clients" 
+      type="clients"
 
       # 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
+# 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".
 #   need this ability should know the die and restart password.       #
 #                                                                     #
 
-<power 
+<power
+       # hash: what hash these passwords are hashed with. requires the module
+       # for selected hash (m_md5.so, m_sha256.so or m_ripemd160.so) be
+       # loaded and the password hashing module (m_password_hash.so)
+       # loaded. Options here are: "md5", "sha256" and "ripemd160".
+       # Optional, but recommended. Create hashed password with:
+       # /mkpasswd <hash> <password>
+       #hash="sha256"
+
        # diepass: Password for opers to use if they need to shutdown (die)
        # a server.
-       diepass="" 
+       diepass=""
 
        # restartpass: Password for opers to use if they need to restart
        # a server.
 #   You may have as many of these as you require. To allow/deny all   #
 #   connections, use a '*' or 0.0.0.0/0.                              #
 #                                                                     #
+#  -- It is important to note that connect tags are read from the  -- #
+#     TOP DOWN. This means that you should have more specific deny    #
+#    and allow tags at the top, progressively more general, followed  #
+#        by a <connect allow="*" (should you wish to have one).       #
+#                                                                     #
+#                                                                     #
+<connect
+         # deny: Will not let people connect if they have specified host/IP.
+         deny="69.254.*">
+
+<connect deny="3ffe::0/32">
+
+<connect
+         # name: Name to use for this connect block. Mainly used for
+         # connect class inheriting.
+         name="secret"
+
+         # 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
+         parent="main"
 
-<connect 
          # allow: What IP addresses/hosts to allow for this block.
-         allow="196.12.*"  
+         allow="196.12.*"
+
+         # hash: what hash this password is hashed with. requires the module
+         # for selected hash (m_md5.so, m_sha256.so or m_ripemd160.so) be
+         # loaded and the password hashing module (m_password_hash.so)
+         # loaded. Options here are: "md5", "sha256" and "ripemd160".
+         # Optional, but recommended. Create hashed password with:
+         # /mkpasswd <hash> <password>
+         #hash="sha256"
 
          # password: Password to use for this block/user(s)
-         password="secret" 
+         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">
 
-<connect 
+<connect
+         # name: Name to use for this connect block. Mainly used for
+         # connect class inheriting.
+         name="main"
+
          # allow: What IP addresses/hosts to allow for this block.
          allow="*"
 
          # 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
+         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"
 
          # localmax: Maximum local connections per IP.
          # globalmax: Maximum global (network-wide) connections per IP.
          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">
 
-<connect 
-         # deny: Will not let people connect if they have specified host/IP.
-         deny="69.254.*">
-
-<connect deny="3ffe::0/32">
 
 #-#-#-#-#-#-#-#-#-#-#-#-  CIDR CONFIGURATION   -#-#-#-#-#-#-#-#-#-#-#-
 #                                                                     #
 # 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
 #-#-#-#-#-#-#-#-#-#-  MISCELLANEOUS CONFIGURATION  -#-#-#-#-#-#-#-#-#-#
 #                                                                     #
 
-<files 
+<files
        # motd: Path to your motd file. Path is relative to the conf directory.
        motd="inspircd.motd.example"
 
        # rules: Path to your rules file. Path is relative to the conf directory.
+       # This is optional and is displayed when a user does /rules on the network.
        rules="inspircd.rules.example">
 
 #-#-#-#-#-#-#-#-#-#-#-# MAXIMUM CHANNELS -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 #                                                                     #
 
-<channels 
+<channels
           # users: Maximum number of channels a user can be in at once.
           users="20"
 
 # If these values are not defined, InspIRCd uses the default DNS resolver
 # of your system.
 
-<dns 
+<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").       #
 #   Settings to define which features are usable on your server.      #
 #                                                                     #
 
-<options 
+<options
          # prefixquit: What (if anything) a users' quit message
          # should be prefixed with.
          prefixquit="Quit: "
          # should be suffixed with.
          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,
          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.
+         # exempt from. Supported modes are +TCGfcSFBgN. Defaults to off.
          exemptchanops=""
 
          # invitebypassmodes: This allows /invite to bypass other channel modes.
 #-#-#-#-#-#-#-#-#-#-#-# PERFORMANCE CONFIGURATION #-#-#-#-#-#-#-#-#-#-#
 #                                                                     #
 
-<performance 
+<performance
              # netbuffersize: Size of the buffer used to recieve data from clients.
              # The ircd may only read this amount of text in 1 go at any time.
              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
              softlimit="12800"
 
              # quietbursts: When syncing or splitting from a network, a server
-             # can generate a lof ot connect and quit messages to opers with
+             # can generate a lot of connect and quit messages to opers with
              # +C and +Q snomasks. Setting this to yes squelches those messages,
              # which makes it easier for opers, but degrades the functionality 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">
 
 #-#-#-#-#-#-#-#-#-#-#-# SECURITY CONFIGURATION  #-#-#-#-#-#-#-#-#-#-#-#
 #                                                                     #
 
-<security 
+<security
 
           # announceinvites: If this option is set, then invites are announced
-          # to the channel when a user invites another user. If you consider 
-          # this to be unnecessary noise, set this to 'none'. 
+          # to the channel when a user invites another user. If you consider
+          # this to be unnecessary noise, set this to 'none'.
           # To announce to all ops, set this to 'ops' and to announce to all users,
           # set the value to 'all'. The value 'dynamic' will make the messages
           # go to every user who has power of INVITE on the channel. This
           # 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"
 
           # runasuser: If this is set, InspIRCd will attempt to setuid
           # to run as this user- allows binding of ports under 1024.
-          # NOT SUPPORTED/NEEDED UNDER WIINDOWS.
+          # NOT SUPPORTED/NEEDED UNDER WINDOWS.
           #runasuser=""
 
           # runasgroup: If this is set, InspIRCd will attempt to set group
           # to run under this group, which allows binding of ports under 1024
-          # NOT SUPPORTED/NEEDED UNDER WIINDOWS.
+          # 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 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.
+          genericoper="no"
+
           # userstats: /stats commands that users can run (opers can run all).
           userstats="Pu">
 
 # 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 
+<limits
         # maxnick: Maximum length of a nickname.
         maxnick="31"
 
         # maxgecos: Maximum length of a GECOS (realname).
         maxgecos="128"
 
-        # maxaway: Maximum length of an away messahe.
+        # maxaway: Maximum length of an away message.
         maxaway="200">
 
 
 # your server.                                                        #
 #                                                                     #
 
-<whowas 
+<whowas
         # groupsize: Maximum entries per nick shown when performing
         # a /whowas nick.
         groupsize="10"
 
         # maxgroups: Maximum number of nickgroups that can be added to
         # the list so that /whowas does not use a lot of resources on
-        # large networks.                                            
+        # large networks.
         maxgroups="100000"
 
         # maxkeep: Maximum time a nick is kept in the whowas list
-        # before being pruned. Time may be specified in seconds, 
+        # before being pruned. Time may be specified in seconds,
         # or in the following format: 1y2w3d4h5m6s. Minimum is
         # 1 hour.
-        maxkeep="3d">                                                
+        maxkeep="3d">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-  BAN OPTIONS  -#-#-#-#-#-#-#-#-#-#-#-#-#-#
 #                                                                     #
 # Your server.                                                        #
 #                                                                     #
 
-<badip 
+<badip
        # ipmask: IP range to ban. Wildcards and CIDR can be used.
        ipmask="69.69.69.69"
 
        # reason: Reason to display when user is disconnected.
        reason="No porn here thanks.">
 
-<badnick 
+<badnick
          # nick: Nick to disallow. Wildcards are supported.
-         nick="ChanServ" 
+         nick="ChanServ"
 
          # reason: Reason to display on /nick.
          reason="Reserved For Services">
 <badnick nick="OperServ" reason="Reserved For Services">
 <badnick nick="MemoServ" reason="Reserved For Services">
 
-<badhost 
-         # host: ident@hostname to ban. 
+<badhost
+         # host: ident@hostname to ban.
          # Wildcards and CIDR (if you specify an IP) can be used.
-         host="*@hundredz.n.hundredz.o.1337.kiddies.com" 
+         host="*@hundredz.n.hundredz.o.1337.kiddies.com"
 
          # reason: Reason to display when user is disconnected
          reason="Too many 1337 kiddiots">
 <badhost host="*@172.32.0.0/16" reason="This subnet is bad.">
 
 # exception: Hosts that are exempt from [kgz]lines.
-<exception 
-           # host: ident@hostname to exempt. 
+<exception
+           # host: ident@hostname to exempt.
            # Wildcards and CIDR (if you specify an IP) can be used.
-           host="*@ircop.host.com" 
+           host="*@ircop.host.com"
 
            # reason: Reason for exception. Only shown in /stats e
            reason="Opers hostname">
 # allow any qline.                                                    #
 #                                                                     #
 
-<insane 
-        # hostmasks: Allow bans with insane hostmasks (over-reaching bans)
-        hostmasks="no" 
+<insane
+        # hostmasks: Allow bans with insane hostmasks. (over-reaching bans)
+        hostmasks="no"
 
-        # ipmasks: Allow bans with insane ipmasks (over-reaching bans)
-        ipmasks="no" 
+        # ipmasks: Allow bans with insane ipmasks. (over-reaching bans)
+        ipmasks="no"
 
-        # nickmasks: Allow bans with insane nickmasks (over-reaching bans)
-        nickmasks="no" 
+        # nickmasks: Allow bans with insane nickmasks. (over-reaching bans)
+        nickmasks="no"
 
         # trigger: What percentage of users on the network to trigger
         # specifying an insane ban as. The default is 95.5%, which means
         # if you have a 1000 user network, a ban will not be allowed if it
-        # will be banning 955 or more users. 
+        # will be banning 955 or more users.
         trigger="95.5">
 
 
 #   |_| \_\___|\__,_|\__,_|   |_| |_| |_|_|___/ |____/|_|\__(_)       #
 #                                                                     #
 # Well done, you've reached the end of the basic configuration, your  #
-# ircd should now start if you want to try it out! (./inspircd start) #                      
+# ircd should now start if you want to try it out! (./inspircd start) #
 #                                                                     #
 # We now suggest you read and edit modules.conf, as modules are what  #
 # provide almost all the features of InspIRCd. :)                     #
 #                                                                     #
 # The default does nothing -- we include it for simplicity for you.   #
-<include file="modules.conf">
+<include file="modules.conf.example">
 
 
 #########################################################################