]> git.netwichtig.de Git - user/henk/code/inspircd.git/blob - docs/inspircd.conf.example
Added important note relating to ip addresses in <link:ipaddr>
[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 deny="ip or host">                                   #
111 #                                                                     #
112 #   You may optionally include timeout="x" on any allow line, which   #
113 #   specifies the amount of time given before an unknown connection   #
114 #   is closed if USER/NICK/PASS are not given. This value is in secs  #
115 #                                                                     #
116 #   You may also optionally include a flood="x" line which indicates  #
117 #   the number of lines a user may place into their buffer at once    #
118 #   before they are disconnected for excess flood. The default is to  #
119 #   DISABLE this feature. A recommended value is 10.                  #
120
121
122 <connect allow="196.12.*"  password="secret">
123 <connect allow="*" timeout="60" flood="10">
124
125 <connect deny="69.254.*">
126
127
128 #-#-#-#-#-#-#-#-#-#-#-#-  CLASS CONFIGURATION   -#-#-#-#-#-#-#-#-#-#-#-
129 #                                                                     #
130 #   Classes are a group of commands which are grouped together        #
131 #   and given a unique name. They used to define which commands       #
132 #   are available to certain types of Operators.                      #
133 #                                                                     #
134 #  Syntax is as follow:                                               #
135 #       <class name="name" commands="oper commands">                  #
136 #                                                                     #
137
138 <class name="Shutdown" commands="DIE RESTART REHASH">
139 <class name="ServerLink" commands="CONNECT SQUIT">
140 <class name="BanControl" commands="KILL GLINE KLINE ZLINE QLINE SHUN">
141 <class name="OperChat" commands="WALLOPS CHATOPS">
142 <class name="HostCloak" commands="SETHOST SETIDENT SETNAME">
143
144
145 #-#-#-#-#-#-#-#-#-#-#-#-  OPERATOR COMPOSITION   -#-#-#-#-#-#-#-#-#-#-#
146 #                                                                     #
147 #   This is where you specify which types of operators you have on    #
148 #   your server, as well as the commands they are allowed to use.     #
149 #   This works alongside with the classes specified above.            #
150 #                                                                     #
151 #  type name  - a name for the combined class types                   #
152 #  classes    - specified above, used for flexibility for the         #
153 #               server admin to decide on which operators get         #
154 #               what commands                                         #
155 #  host       - hostmask operators will recieve on oper-up            #
156 #                                                                     #
157 #  Syntax is as follows:                                              #
158 #       <type name="name" classes="class name" host="oper hostmask">  #
159 #                                                                     #
160
161 <type name="NetAdmin" classes="OperChat BanControl HostCloak Shutdown ServerLink" host="netadmin.omega.org.za">
162 <type name="GlobalOp" classes="OperChat BanControl HostCloak ServerLink" host="ircop.omega.org.za">
163 <type name="LocalOp" classes="OperChat BanControl HostCloak" host="local.omega.org.za">
164 <type name="Helper" classes="HostCloak" host="helper.omega.org.za">
165
166
167 #-#-#-#-#-#-#-#-#-#-#-  OPERATOR CONFIGURATION   -#-#-#-#-#-#-#-#-#-#-#
168 #                                                                     #
169 #   Opers are defined here. This is a very important section.         #
170 #   Remember to only make operators out of truthworthy people.        #
171 #                                                                     #
172 #  name      - oper name, best to use lower-case                      #
173 #  password  - password to oper-up,                                   #
174 #              encryption not yet available                           #
175 #  host      - host of client allowed to oper-up, more hostmasks      #
176 #              seperated by spaces, wildcards accepted                #
177 #  type      - specified above, defines the kind of operator          #
178 #                                                                     #
179 #  Syntax is as follows:                                              #
180 #       <oper name="login"                                            #
181 #             password="pass"                                         #
182 #             host="hostmask@of.oper"                                 #
183 #             type="oper type">                                       #
184 #                                                                     #
185
186 <oper   name="cc"
187         password="s3cret"
188         host="*@*"
189         type="NetAdmin">
190
191
192 #-#-#-#-#-#-#-#-#-#-#-  SERVER LINK CONFIGURATION  -#-#-#-#-#-#-#-#-#-#
193 #                                                                     #
194 # Defines which servers can link to this one, and which servers this  #
195 # server may create outbound links to.                                #
196 #                                                                     #
197 # name      - The name is the canocial name of the server, it does    #
198 #             not have to resolve - but it is expected to be sent in  #
199 #             the remote servers connection info.                     #
200 # ipaddr    - Valid host or ip address for remote server. *           #
201 # port      - Valid listening UDP port for remote server.             #
202 # sendpass  - Password to send to create an outbound connection to    #
203 #             this server.                                            #
204 # recvpass  - Password to receive to accept an inbound connection     #
205 #             from this server.                                       #
206 #                                                                     #
207 # to u:line a server (give it extra privilages required for running   #
208 # services, Q, etc) you must include the <uline server> tag as shown  #
209 # in the example below. You can have as many of these as you like.    #
210 #                                                                     #
211 # WARNING: Unlike other ircds, u:lining a server allows ALL users on  #
212 # that server to operoverride modes. This should only be used for     #
213 # services and protected oper servers!                                #
214 #                                                                     #
215 # IMPORTANT NOTE: When specifying the ip address and/or host, the     #
216 # server software will prioritize RESOLVED hostnames above ip         #
217 # addresses, so for example if your target server resolves to a.b.com #
218 # you MUST put a.b.com into your link block, and NOT the IP address   #
219 # of a.b.com. The system uses reverse resolution.                     #
220 #                                                                     #
221
222 <link name="hub.penguin.org"
223         ipaddr="penguin.box.com"
224         port="7000"
225         sendpass="outgoing!password"
226         recvpass="incoming!password">
227
228 <link name="services.antarctic.com"
229         ipaddr="localhost"
230         port="7000"
231         sendpass="penguins"
232         recvpass="polarbears">
233
234 <uline server="services.antarctic.com">
235
236
237
238 #-#-#-#-#-#-#-#-#-#-  MISCELLANEOUS CONFIGURATION  -#-#-#-#-#-#-#-#-#-#
239 #                                                                     #
240 #   These options let you define the path to your motd and rules      #
241 #   files.                                                            #
242 #                                                                     #
243
244 <files  motd="/home/cc/inspircd-1.0/conf/inspire.motd"
245         rules="/home/cc/inspircd-1.0/conf/inspire.rules">
246
247 #-#-#-#-#-#-#-#-#-#-#-#-#-#-# DNS SERVER -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
248 #                                                                     #
249 # Define your DNS server address here. InspIRCd has its own resolver  #
250 # and you must define this otherwise nobody's host will resolve. The  #
251 # timeout value is in seconds.                                        #
252 #                                                                     #
253
254 <dns server="127.0.0.1" timeout="5">
255
256 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#  PID FILE  -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
257 #                                                                     #
258 # Define the path to the PID file here. The PID file can be used to   #
259 # rehash the ircd from the shell or to terminate the ircd from the    #
260 # shell using shell scripts, perl scripts etc, and to monitor the     #
261 # ircd's state via cron jobs.                                         #
262 #                                                                     #
263
264 <pid file="/path/to/inspircd.pid">
265
266 #-#-#-#-#-#-#-#-#-#-#-#-#- BANLIST LIMITS #-#-#-#-#-#-#-#-#-#-#-#-#-#-#
267 #                                                                     #
268 # Use these tags to customise the ban limits on a per channel basis.  #
269 # the tags are read from top to bottom, and any tag found which       #
270 # matches the channels name applies the banlimit to that channel.     #
271 # It is advisable to put an entry with the channel as '*' at the      #
272 # bottom of the list. If none are specified or no maxbans tag is      #
273 # matched, the banlist size defaults to 64 entries.                   #
274 #                                                                     #
275
276 <banlist chan="#morons" limit="128">
277 <banlist chan="*" limit="69">
278
279 #-#-#-#-#-#-#-#-#-#-#-  DISABLED COMMANDS  -#-#-#-#-#-#-#-#-#-#-#-#-#-#
280 #                                                                     #
281 # This tag is optional, and specifies one or more commands which are  #
282 # not available to non-operators. For example you may wish to disable #
283 # NICK and prevent non-opers from changing their nicknames.           #
284 # Note that any disabled commands take effect only after the user has #
285 # 'registered' (e.g. after the initial USER/NICK/PASS on connection)  #
286 # so for example disabling NICK will not cripple your network.        #
287 #                                                                     #
288 #         <disabled commands="TOPIC MODE">                            #
289 #                                                                     #
290
291
292 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-  RTFM LINE  -#-#-#-#-#-#-#-#-#-#-#-#-#-#
293 #                                                                     #
294 #   Just remove this... Its here to make you read ALL of the config   #
295 #   file options ;)                                                   #
296
297 <die value="And god came down from the heavens and smote down the noob.">
298
299
300
301 #-#-#-#-#-#-#-#-#-#-#-#-#-  SERVER OPTIONS   -#-#-#-#-#-#-#-#-#-#-#-#-#
302 #                                                                     #
303 #   Settings to define which features are useable on your server.     #
304 #                                                                     #
305 #  prefixquit    - a prefix for a client's quit message               #
306 #  loglevel      - specifies what detail of messages to log in the    #
307 #                  log file. You may select from debug, verbose,      #
308 #                  default, sparse and none.                          #
309 #  allowhalfop   - allows the +h channel mode                         #
310 #  noservices    - If noservices is true, yes, or 1, then the first   #
311 #                  user into a channel gets founder status. This is   #
312 #                  only useful on networks running the m_chanprotect  #
313 #                  module without services.                           #
314 #  netbuffersize - size of the buffer used to receive data from       #
315 #                  clients. The ircd may only read() this amount      #
316 #                  of text in one go at any time. (OPTIONAL)          #
317 #  maxwho        - The maximum number of results returned by a /WHO   #
318 #                  query. This is to prevent /WHO being used as a     #
319 #                  spam vector or means of flooding an ircd. The      #
320 #                  default is 128, it is not recommended to raise it  #
321 #                  above 1024. Values up to 65535 are permitted.      #
322
323 <options prefixquit="Quit: "
324          loglevel="default"
325          netbuffersize="10240"
326          maxwho="128"
327          noservices="0"
328          allowhalfop="yes">
329
330
331
332 #-#-#-#-#-#-#-#-#-#-#-#-#-  MODULE OPTIONS   -#-#-#-#-#-#-#-#-#-#-#-#-#
333 #                                                                     #
334 #  These tags define which modules will be loaded on startup by your  #
335 #  server. Add modules without any paths. When you make your ircd     #
336 #  using the 'make' command, all compiled modules will be moved into  #
337 #  the folder you specified when you ran ./configure. The module tag  #
338 #  automatically looks for modules in this location.                  #
339
340 <module name="m_foobar.so">
341
342 #-#-#-#-#-#-#-#-#-#-#-  FILTER  CONFIGURATION  -#-#-#-#-#-#-#-#-#-#-#-#
343 #                                                                     #
344 # Optional - If you specify to use the m_filter.so module, then       #
345 # specfiy below the path to the filter.conf file.                     #
346
347 <filter file="/path/to/inspircd/filter.conf">
348
349
350 #-#-#-#-#-#-#-#-#-#-#-#-  HELPOP  CONFIGURATION  -#-#-#-#-#-#-#-#-#-#-#
351 #                                                                     #
352 # Optional - If you specify to use the m_helpop.so module, then       #
353 # specify below the path to the helpop.conf file.                     #
354
355 <helpop file="/path/to/inspircd/helpop.conf">
356
357
358 #-#-#-#-#-#-#-#-#-#-  RANDOMQUOTES CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
359 #                                                                     #
360 # Optional - If you specify to use the m_randquotes.so module, then   #
361 # specify below the path to the randquotes.conf file.                 #
362
363 <randquote file="/path/to/inspircd/randquotes.conf">
364
365 #-#-#-#-#-#-#-#-#-#-#-#-#-#-  BAN OPTIONS  -#-#-#-#-#-#-#-#-#-#-#-#-#-#
366 #                                                                     #
367 # The ban tags define nick masks, host masks and ip ranges which are  #
368 # banned from your server. All details in these tags are local to     #
369 # Your server.                                                        #
370 #                                                                     #
371 #                                                                     #
372 # badip lines ban an ip range (same as a zline)                       #
373 #                                                                     #
374 # ipmask       -          The ip range to ban (wildcards possible)    #
375 # reason       -          Reason to display when disconnected         #
376 #                                                                     #
377 # badnick lines ban a nick mask (same as a qline)                     #
378 #                                                                     #
379 # nick         -          Nick mask to ban (wildcards possible)       #
380 # reason       -          Reason to display on /NICK                  #
381 #                                                                     #
382 # badhost lines ban a user@host mask (same as a kline)                #
383 #                                                                     #
384 # host         -          ident@hostname (wildcards possible)         #
385 # reason       -          Reason to display on disconnection          #
386 #                                                                     #
387 # exception lines define a hostmask that is excempt from [kzg]lines   #
388 #                                                                     #
389 # host         -          ident@hostname (wildcards possible)         #
390 # reason       -          Reason, shown only in /stats e              #
391 #                                                                     #
392
393 <badip ipmask="69.69.69.69" reason="No porn here thanks.">
394
395 <badnick nick="ChanServ" reason="Reserved For Services">
396 <badnick nick="NickServ" reason="Reserved For Services">
397 <badnick nick="OperServ" reason="Reserved For Services">
398 <badnick nick="MemoServ" reason="Reserved For Services">
399
400 <badhost host="*@hundredz.n.hundredz.o.1337.kiddies.com" reason="Too many 1337 kiddiots">
401 <badhost host="*@localhost" reason="No irc from localhost!">
402
403 <exception host="*@ircop.host.com" reason="Opers hostname">
404
405 #-#-#-#-#-#-#-#-#-#-#-  ALIAS DEFINITIONS  -#-#-#-#-#-#-#-#-#-#-#-#-#-#
406 #                                                                     #
407 # If you have the m_alias.so module loaded, you may also define       #
408 # aliases as shown below. They are commonly used to provide shortcut  #
409 # commands to services, however they are not limited to jsut this use.#
410 # An alias tag requires the following values to be defined in it:     #
411 #                                                                     #
412 # text        -      The text to detect at the start of the line,     #
413 #                    must be at the start of the line to trigger the  #
414 #                    alias. May contain spaces, but case insensitive. #
415 # replace     -      The text to replace 'text' with. Usually this    #
416 #                    will be "PRIVMSG ServiceName :" or similar.      #
417 # requires    -      If you provide a value for 'requires' this means #
418 #                    the given nickname MUST be online for the alias  #
419 #                    to successfully trigger. If they are not, then   #
420 #                    the user receives a 'no such nick' 401 numeric.  #
421 # uline       -      Defining this value with 'yes', 'true' or '1'    #
422 #                    will ensure that the user given in 'requires'    #
423 #                    must also be on a u-lined server, as well as     #
424 #                    actually being on the network. If the user is    #
425 #                    online, but not on a u-lined server, then an     #
426 #                    oper-alert is sent out as this is possibly signs #
427 #                    of a user trying to impersonate a service.       #
428 #                                                                     #
429
430 <alias text="NICKSERV" replace="PRIVMSG NickServ :" requires="NickServ" uline="yes">
431 <alias text="CHANSERV" replace="PRIVMSG ChanServ :" requires="ChanServ" uline="yes">
432 <alias text="NS" replace="PRIVMSG NickServ :" requires="NickServ" uline="yes">
433 <alias text="CS" replace="PRIVMSG ChanServ :" requires="ChanServ" uline="yes">
434
435 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#- YAWN  -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
436 #                                                                     #
437 #   You should already know what to do here :)                        #
438
439 <die value="All l33t noobs must edit their configs.">
440
441
442 #########################################################################
443 #                                                                       #
444 #                -InspIRCd Development and Coding Team-                 #
445 #                          www.inspircd.org                             #
446 #                                                                       #
447 #########################################################################