]> git.netwichtig.de Git - user/henk/code/inspircd.git/blob - docs/inspircd.conf.example
Customizable by-byte-size recvq stuff
[user/henk/code/inspircd.git] / docs / inspircd.conf.example
1 ########################################################################
2 #                                                                      #
3 #                     ---------------------------                      #
4 #                     InspIRCd Configuration File                      #
5 #                     ---------------------------                      #
6 #                                                                      #
7 ##################################||####################################
8                                  #||#
9 ##################################||####################################
10 #                                                                      #
11 #         This is an example of the config file for InspIRCd.          #
12 #             Change the options to suit your network                  #
13 #                                                                      #
14 #                 Last updated on : 01/05/2004                         #
15 #                 Written by      : CC  (cc@backchat.co.za)            #
16 #                 Updated by      : BlackDeathX (james@dreamirc.org)   #
17 ########################################################################
18
19
20
21 #-#-#-#-#-#-#-#-#-#-#-#-  SERVER DESCRIPTION  -#-#-#-#-#-#-#-#-#-#-#-#-
22 #                                                                     #
23 #   Here is where you enter the information about your server.        #
24 #                                                                     #
25 #  Syntax is as follows:                                              #
26 #     <server name="server.name"                                      #
27 #      description="Server Description"                               #
28 #      network="MyNetwork">                                           #
29 #                                                                     #
30
31 <server name="penguin.omega.org.za"
32         description="Waddle World"
33         network="Omega">
34
35
36 #-#-#-#-#-#-#-#-#-#-#-#-   ADMIN INFORMATION   -#-#-#-#-#-#-#-#-#-#-#-#
37 #                                                                     #
38 #   Describes the Server Administrator's real name, nick              #
39 #   and email address.                                                #
40 #                                                                     #
41 #  Syntax is as follows:                                              #
42 #       <admin name="real name"                                       #
43 #              nick="nick name"                                       #
44 #              email="email@address.com">                             #
45 #                                                                     #
46
47 <admin  name="Johnny Casino"
48         nick="CC"
49         email="cc@monkeynut.co.za">
50
51
52 #-#-#-#-#-#-#-#-#-#-#-#-   PORT CONFIGURATION   -#-#-#-#-#-#-#-#-#-#-#-
53 #                                                                     #
54 #   Enter the port and address bindings here.                         #
55 #                                                                     #
56 #  bind address - specifies which the address which ports bind        # 
57 #  port         - opens an unused port                                #
58 #  type         - can be 'clients' or 'servers'. The clients type is  #
59 #                 a standard tcp based socket, the servers type is a  #
60 #                 also a TCP based connection but of a different      #
61 #                 format.                                             #
62 #  default      - if the port type is 'servers' then this can be      #
63 #                 specified. If set to 'yes', it indicates that this  #
64 #                 port is the default route for all /connect commands.#
65 #                 if you do not bind your default route to an         #
66 #                 external ip, or all ip's, you may have connection   #
67 #                 problems.                                           #
68 #                                                                     #
69 #  Leaving address empty binds to all available interfaces            #
70 #                                                                     #
71 #  Syntax is as follows:                                              #
72 #                                                                     #
73 # <bind address="ip number" port="port" type="clients">               #
74 # <bind address="ip number" port="port" type="servers">               #
75 # <bind address="ip number" port="port" type="servers" default="yes"> #
76 #                                                                     #
77
78 <bind address="" port="6660" type="clients">
79 <bind address="" port="7000" type="servers" default="yes">
80 <bind address="" port="7001" type="servers">
81
82
83 #-#-#-#-#-#-#-#-#-#-  DIE/RESTART CONFIGURATION   -#-#-#-#-#-#-#-#-#-#-
84 #                                                                     #
85 #   You can configure the passwords here which you wish to use for    #
86 #   the die and restart commands. Only trusted ircops who will        #
87 #   need this ability should know the die and restart password.       #
88 #                                                                     #
89 #  Syntax is as follows:                                              #
90 #       <power diepass="die password" restartpass="restart password"  #
91 #        pause="secs before dying">                                   #
92 #                                                                     #
93
94 <power diepass="diepass" restartpass="restartpass" pause="2">
95
96
97 #-#-#-#-#-#-#-#-#-#-  CONNECTIONS CONFIGURATION   -#-#-#-#-#-#-#-#-#-#-
98 #                                                                     #
99 #   This is where you can configure which connections are allowed     #
100 #   and denied access onto your server.                               #
101 #   The password is optional.                                         #
102 #   You may have as many of these as you require.                     #
103 #   To allow/deny all connections use a *                             #
104 #                                                                     #
105 #  Syntax is as follows:                                              #
106 #       <connect allow="ip or host">                                  #
107 #       <connect allow="ip or host" password="blahblah">              #
108 #       <connect allow="ip or host" password="blah" timeout="10">     #
109 #       <connect allow="ip or host" timeout="blah" flood="5">         #
110 #       <connect allow="ip or host" threshold="8" pingfreq="120">     #
111 #       <connect allow="ip or host" sendq="99999" revcq="696969">     #
112 #       <connect deny="ip or host">                                   #
113 #                                                                     #
114 #   You may optionally include timeout="x" on any allow line, which   #
115 #   specifies the amount of time given before an unknown connection   #
116 #   is closed if USER/NICK/PASS are not given. This value is in secs  #
117 #                                                                     #
118 #   You may also optionally include a flood="x" line which indicates  #
119 #   the number of lines a user may place into their buffer at once    #
120 #   before they are disconnected for excess flood. The default is to  #
121 #   DISABLE this feature. A recommended value is 10. A counter is     #
122 #   maintained for each user which is reset every 'threshold' seconds #
123 #   and specifying this threshold value with threshold="X" indicates  #
124 #   how often the counter is reset. For example, with flood="5" and   #
125 #   threshold="8", the user may not send more than 5 lines in 8 secs. #
126 #                                                                     #
127 #   You may optionally specify the sendq size and ping frequency of   #
128 #   each connect:allow line using the pingfreq="X" and sendq="X"      #
129 #   settings as shown in the full example below.                      #
130 #   The ping frequency is specified in seconds, and the sendq size    #
131 #   in bytes. It is recommended, although not enforced, that you      #
132 #   should never set your sendq size to less than 8k. Send Queues are #
133 #   dynamically allocated and can grow as needed up to the maximum    #
134 #   size specified.                                                   #
135 #                                                                     #
136 #   The optional recvq value is the maximum size which users in this  #
137 #   group may grow their receive queue to. This is recommended to be  #
138 #   kept pretty low compared to the sendq, as users will always       #
139 #   recieve more than they send in normal circumstances. The default  #
140 #   if not specified is 4096.                                         #
141 #                                                                     #
142 #   IMPORTANT NOTE, CALL THE CONFUSION POLICE!                        #
143 #   The sendq is the data waiting to be sent TO THE USER.             #
144 #   The recvq is the data being received FROM THE USER.               #
145 #   The names sendq and recvq are from the SERVER'S PERSPECTIVE not   #
146 #   that of the user... Just to clear up any confusion or complaints  #
147 #   that these are backwards :p                                       #
148 #                                                                     #
149
150 <connect allow="196.12.*"  password="secret">
151 <connect allow="*" timeout="60" flood="10" timeout="60" pingfreq="120" sendq="262144" recvq="4096">
152
153 <connect deny="69.254.*">
154
155
156 #-#-#-#-#-#-#-#-#-#-#-#-  CLASS CONFIGURATION   -#-#-#-#-#-#-#-#-#-#-#-
157 #                                                                     #
158 #   Classes are a group of commands which are grouped together        #
159 #   and given a unique name. They used to define which commands       #
160 #   are available to certain types of Operators.                      #
161 #                                                                     #
162 #  Syntax is as follow:                                               #
163 #       <class name="name" commands="oper commands">                  #
164 #                                                                     #
165
166 <class name="Shutdown" commands="DIE RESTART REHASH">
167 <class name="ServerLink" commands="CONNECT SQUIT">
168 <class name="BanControl" commands="KILL GLINE KLINE ZLINE QLINE SHUN">
169 <class name="OperChat" commands="WALLOPS CHATOPS">
170 <class name="HostCloak" commands="SETHOST SETIDENT SETNAME">
171
172
173 #-#-#-#-#-#-#-#-#-#-#-#-  OPERATOR COMPOSITION   -#-#-#-#-#-#-#-#-#-#-#
174 #                                                                     #
175 #   This is where you specify which types of operators you have on    #
176 #   your server, as well as the commands they are allowed to use.     #
177 #   This works alongside with the classes specified above.            #
178 #                                                                     #
179 #  type name  - a name for the combined class types                   #
180 #  classes    - specified above, used for flexibility for the         #
181 #               server admin to decide on which operators get         #
182 #               what commands                                         #
183 #  host       - hostmask operators will recieve on oper-up            #
184 #                                                                     #
185 #  Syntax is as follows:                                              #
186 #       <type name="name" classes="class name" host="oper hostmask">  #
187 #                                                                     #
188
189 <type name="NetAdmin" classes="OperChat BanControl HostCloak Shutdown ServerLink" host="netadmin.omega.org.za">
190 <type name="GlobalOp" classes="OperChat BanControl HostCloak ServerLink" host="ircop.omega.org.za">
191 <type name="LocalOp" classes="OperChat BanControl HostCloak" host="local.omega.org.za">
192 <type name="Helper" classes="HostCloak" host="helper.omega.org.za">
193
194
195 #-#-#-#-#-#-#-#-#-#-#-  OPERATOR CONFIGURATION   -#-#-#-#-#-#-#-#-#-#-#
196 #                                                                     #
197 #   Opers are defined here. This is a very important section.         #
198 #   Remember to only make operators out of truthworthy people.        #
199 #                                                                     #
200 #  name      - oper name, best to use lower-case                      #
201 #  password  - password to oper-up,                                   #
202 #              encryption not yet available                           #
203 #  host      - host of client allowed to oper-up, more hostmasks      #
204 #              seperated by spaces, wildcards accepted                #
205 #  type      - specified above, defines the kind of operator          #
206 #                                                                     #
207 #  Syntax is as follows:                                              #
208 #       <oper name="login"                                            #
209 #             password="pass"                                         #
210 #             host="hostmask@of.oper"                                 #
211 #             type="oper type">                                       #
212 #                                                                     #
213
214 <oper   name="cc"
215         password="s3cret"
216         host="*@*"
217         type="NetAdmin">
218
219
220 #-#-#-#-#-#-#-#-#-#-#-  SERVER LINK CONFIGURATION  -#-#-#-#-#-#-#-#-#-#
221 #                                                                     #
222 # Defines which servers can link to this one, and which servers this  #
223 # server may create outbound links to.                                #
224 #                                                                     #
225 # name      - The name is the canocial name of the server, it does    #
226 #             not have to resolve - but it is expected to be sent in  #
227 #             the remote servers connection info.                     #
228 # ipaddr    - Valid host or ip address for remote server. *           #
229 # port      - Valid listening UDP port for remote server.             #
230 # sendpass  - Password to send to create an outbound connection to    #
231 #             this server.                                            #
232 # recvpass  - Password to receive to accept an inbound connection     #
233 #             from this server.                                       #
234 #                                                                     #
235 # to u:line a server (give it extra privilages required for running   #
236 # services, Q, etc) you must include the <uline server> tag as shown  #
237 # in the example below. You can have as many of these as you like.    #
238 #                                                                     #
239 # WARNING: Unlike other ircds, u:lining a server allows ALL users on  #
240 # that server to operoverride modes. This should only be used for     #
241 # services and protected oper servers!                                #
242 #                                                                     #
243 # IMPORTANT NOTE: When specifying the ip address and/or host, the     #
244 # server software will prioritize RESOLVED hostnames above ip         #
245 # addresses, so for example if your target server resolves to a.b.com #
246 # you MUST put a.b.com into your link block, and NOT the IP address   #
247 # of a.b.com. The system uses reverse resolution.                     #
248 #                                                                     #
249
250 <link name="hub.penguin.org"
251         ipaddr="penguin.box.com"
252         port="7000"
253         sendpass="outgoing!password"
254         recvpass="incoming!password">
255
256 <link name="services.antarctic.com"
257         ipaddr="localhost"
258         port="7000"
259         sendpass="penguins"
260         recvpass="polarbears">
261
262 <uline server="services.antarctic.com">
263
264
265
266 #-#-#-#-#-#-#-#-#-#-  MISCELLANEOUS CONFIGURATION  -#-#-#-#-#-#-#-#-#-#
267 #                                                                     #
268 #   These options let you define the path to your motd and rules      #
269 #   files.                                                            #
270 #                                                                     #
271
272 <files  motd="/home/cc/inspircd-1.0/conf/inspire.motd"
273         rules="/home/cc/inspircd-1.0/conf/inspire.rules">
274
275 #-#-#-#-#-#-#-#-#-#-#-#-#-#-# DNS SERVER -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
276 #                                                                     #
277 # Define your DNS server address here. InspIRCd has its own resolver  #
278 # and you must define this otherwise nobody's host will resolve. The  #
279 # timeout value is in seconds.                                        #
280 #                                                                     #
281
282 <dns server="127.0.0.1" timeout="5">
283
284 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#  PID FILE  -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
285 #                                                                     #
286 # Define the path to the PID file here. The PID file can be used to   #
287 # rehash the ircd from the shell or to terminate the ircd from the    #
288 # shell using shell scripts, perl scripts etc, and to monitor the     #
289 # ircd's state via cron jobs.                                         #
290 #                                                                     #
291
292 <pid file="/path/to/inspircd.pid">
293
294 #-#-#-#-#-#-#-#-#-#-#-#-#- BANLIST LIMITS #-#-#-#-#-#-#-#-#-#-#-#-#-#-#
295 #                                                                     #
296 # Use these tags to customise the ban limits on a per channel basis.  #
297 # the tags are read from top to bottom, and any tag found which       #
298 # matches the channels name applies the banlimit to that channel.     #
299 # It is advisable to put an entry with the channel as '*' at the      #
300 # bottom of the list. If none are specified or no maxbans tag is      #
301 # matched, the banlist size defaults to 64 entries.                   #
302 #                                                                     #
303
304 <banlist chan="#morons" limit="128">
305 <banlist chan="*" limit="69">
306
307 #-#-#-#-#-#-#-#-#-#-#-  DISABLED COMMANDS  -#-#-#-#-#-#-#-#-#-#-#-#-#-#
308 #                                                                     #
309 # This tag is optional, and specifies one or more commands which are  #
310 # not available to non-operators. For example you may wish to disable #
311 # NICK and prevent non-opers from changing their nicknames.           #
312 # Note that any disabled commands take effect only after the user has #
313 # 'registered' (e.g. after the initial USER/NICK/PASS on connection)  #
314 # so for example disabling NICK will not cripple your network.        #
315 #                                                                     #
316 #         <disabled commands="TOPIC MODE">                            #
317 #                                                                     #
318
319
320 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-  RTFM LINE  -#-#-#-#-#-#-#-#-#-#-#-#-#-#
321 #                                                                     #
322 #   Just remove this... Its here to make you read ALL of the config   #
323 #   file options ;)                                                   #
324
325 <die value="And god came down from the heavens and smote down the noob.">
326
327
328
329 #-#-#-#-#-#-#-#-#-#-#-#-#-  SERVER OPTIONS   -#-#-#-#-#-#-#-#-#-#-#-#-#
330 #                                                                     #
331 #   Settings to define which features are useable on your server.     #
332 #                                                                     #
333 #  prefixquit    - a prefix for a client's quit message               #
334 #  loglevel      - specifies what detail of messages to log in the    #
335 #                  log file. You may select from debug, verbose,      #
336 #                  default, sparse and none.                          #
337 #  allowhalfop   - allows the +h channel mode                         #
338 #  noservices    - If noservices is true, yes, or 1, then the first   #
339 #                  user into a channel gets founder status. This is   #
340 #                  only useful on networks running the m_chanprotect  #
341 #                  module without services.                           #
342 #  netbuffersize - size of the buffer used to receive data from       #
343 #                  clients. The ircd may only read() this amount      #
344 #                  of text in one go at any time. (OPTIONAL)          #
345 #  maxwho        - The maximum number of results returned by a /WHO   #
346 #                  query. This is to prevent /WHO being used as a     #
347 #                  spam vector or means of flooding an ircd. The      #
348 #                  default is 128, it is not recommended to raise it  #
349 #                  above 1024. Values up to 65535 are permitted.      #
350
351 <options prefixquit="Quit: "
352          loglevel="default"
353          netbuffersize="10240"
354          maxwho="128"
355          noservices="0"
356          allowhalfop="yes">
357
358
359
360 #-#-#-#-#-#-#-#-#-#-#-#-#-  MODULE OPTIONS   -#-#-#-#-#-#-#-#-#-#-#-#-#
361 #                                                                     #
362 #  These tags define which modules will be loaded on startup by your  #
363 #  server. Add modules without any paths. When you make your ircd     #
364 #  using the 'make' command, all compiled modules will be moved into  #
365 #  the folder you specified when you ran ./configure. The module tag  #
366 #  automatically looks for modules in this location.                  #
367
368 <module name="m_foobar.so">
369
370 #-#-#-#-#-#-#-#-#-#-#-  FILTER  CONFIGURATION  -#-#-#-#-#-#-#-#-#-#-#-#
371 #                                                                     #
372 # Optional - If you specify to use the m_filter.so module, then       #
373 # specfiy below the path to the filter.conf file.                     #
374
375 <filter file="/path/to/inspircd/filter.conf">
376
377
378 #-#-#-#-#-#-#-#-#-#-#-#-  HELPOP  CONFIGURATION  -#-#-#-#-#-#-#-#-#-#-#
379 #                                                                     #
380 # Optional - If you specify to use the m_helpop.so module, then       #
381 # specify below the path to the helpop.conf file.                     #
382
383 <helpop file="/path/to/inspircd/helpop.conf">
384
385
386 #-#-#-#-#-#-#-#-#-#-  RANDOMQUOTES CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
387 #                                                                     #
388 # Optional - If you specify to use the m_randquotes.so module, then   #
389 # specify below the path to the randquotes.conf file.                 #
390
391 <randquote file="/path/to/inspircd/randquotes.conf">
392
393 #-#-#-#-#-#-#-#-#-#-#-#-#-#-  BAN OPTIONS  -#-#-#-#-#-#-#-#-#-#-#-#-#-#
394 #                                                                     #
395 # The ban tags define nick masks, host masks and ip ranges which are  #
396 # banned from your server. All details in these tags are local to     #
397 # Your server.                                                        #
398 #                                                                     #
399 #                                                                     #
400 # badip lines ban an ip range (same as a zline)                       #
401 #                                                                     #
402 # ipmask       -          The ip range to ban (wildcards possible)    #
403 # reason       -          Reason to display when disconnected         #
404 #                                                                     #
405 # badnick lines ban a nick mask (same as a qline)                     #
406 #                                                                     #
407 # nick         -          Nick mask to ban (wildcards possible)       #
408 # reason       -          Reason to display on /NICK                  #
409 #                                                                     #
410 # badhost lines ban a user@host mask (same as a kline)                #
411 #                                                                     #
412 # host         -          ident@hostname (wildcards possible)         #
413 # reason       -          Reason to display on disconnection          #
414 #                                                                     #
415 # exception lines define a hostmask that is excempt from [kzg]lines   #
416 #                                                                     #
417 # host         -          ident@hostname (wildcards possible)         #
418 # reason       -          Reason, shown only in /stats e              #
419 #                                                                     #
420
421 <badip ipmask="69.69.69.69" reason="No porn here thanks.">
422
423 <badnick nick="ChanServ" reason="Reserved For Services">
424 <badnick nick="NickServ" reason="Reserved For Services">
425 <badnick nick="OperServ" reason="Reserved For Services">
426 <badnick nick="MemoServ" reason="Reserved For Services">
427
428 <badhost host="*@hundredz.n.hundredz.o.1337.kiddies.com" reason="Too many 1337 kiddiots">
429 <badhost host="*@localhost" reason="No irc from localhost!">
430
431 <exception host="*@ircop.host.com" reason="Opers hostname">
432
433 #-#-#-#-#-#-#-#-#-#-#-  ALIAS DEFINITIONS  -#-#-#-#-#-#-#-#-#-#-#-#-#-#
434 #                                                                     #
435 # If you have the m_alias.so module loaded, you may also define       #
436 # aliases as shown below. They are commonly used to provide shortcut  #
437 # commands to services, however they are not limited to jsut this use.#
438 # An alias tag requires the following values to be defined in it:     #
439 #                                                                     #
440 # text        -      The text to detect at the start of the line,     #
441 #                    must be at the start of the line to trigger the  #
442 #                    alias. May contain spaces, but case insensitive. #
443 # replace     -      The text to replace 'text' with. Usually this    #
444 #                    will be "PRIVMSG ServiceName :" or similar.      #
445 # requires    -      If you provide a value for 'requires' this means #
446 #                    the given nickname MUST be online for the alias  #
447 #                    to successfully trigger. If they are not, then   #
448 #                    the user receives a 'no such nick' 401 numeric.  #
449 # uline       -      Defining this value with 'yes', 'true' or '1'    #
450 #                    will ensure that the user given in 'requires'    #
451 #                    must also be on a u-lined server, as well as     #
452 #                    actually being on the network. If the user is    #
453 #                    online, but not on a u-lined server, then an     #
454 #                    oper-alert is sent out as this is possibly signs #
455 #                    of a user trying to impersonate a service.       #
456 #                                                                     #
457
458 <alias text="NICKSERV" replace="PRIVMSG NickServ :" requires="NickServ" uline="yes">
459 <alias text="CHANSERV" replace="PRIVMSG ChanServ :" requires="ChanServ" uline="yes">
460 <alias text="NS" replace="PRIVMSG NickServ :" requires="NickServ" uline="yes">
461 <alias text="CS" replace="PRIVMSG ChanServ :" requires="ChanServ" uline="yes">
462
463 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#- YAWN  -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
464 #                                                                     #
465 #   You should already know what to do here :)                        #
466
467 <die value="All l33t noobs must edit their configs.">
468
469
470 #########################################################################
471 #                                                                       #
472 #                -InspIRCd Development and Coding Team-                 #
473 #                          www.inspircd.org                             #
474 #                                                                       #
475 #########################################################################