ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/ermyth/dist/example.conf
Revision: 1.2
Committed: Tue Aug 28 17:08:06 2007 UTC (16 years, 9 months ago) by pippijn
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +370 -354 lines
Log Message:
- changed name
- updated the example config to the new system
- added more documentation
- enhanced documentation generators
- added a link to the pdf to the website
- added an RSS feed generator
- transitioned hooks to c++ callbacks
- did various merges with upstream along the way
- added const where appropriate
- removed the old block allocator
- fixed most memory leaks
- transitioned some dictionaries to std::map
- transitioned some lists to std::vector
- made some free functions members where appropriate
- renamed string to dynstr and added a static string ststr
- use NOW instead of time (NULL) if possible
- completely reworked database backends, crypto handlers and protocol handlers
  to use an object factory
- removed the old module system. ermyth does not do any dynamic loading anymore
- fixed most of the build system
- reworked how protocol commands work

File Contents

# User Rev Content
1 pippijn 1.2 /* This is an example configuration for Ermyth.
2 pippijn 1.1 *
3     * All statements end in semi-colons (';').
4     * Shell style, C style, and C++ style comments may be used.
5     *
6     * Items marked with "(*)" are reconfigurable at runtime via REHASH.
7     */
8    
9 pippijn 1.2 /*
10     * These are the modules included with the core distribution of Ermyth 3.
11     * You may be interested in the Ermyth community modules distribution as
12     * well, which adds additional features that may or may not be compatible
13     * with the project paradigms intended for maintainance of the Ermyth core.
14 pippijn 1.1 *
15 pippijn 1.2 * Visit the Ermyth website for more information and to download them.
16     */
17    
18     /* Protocol handler.
19     *
20     * Please select a protocol handler. Different servers use different protocols.
21     * Below is a listing of ircd's known to work with the various protocol handlers
22 pippijn 1.1 * available.
23     *
24 pippijn 1.2 * Asuka 1.2.1 or later asuka
25     * Bahamut 1.8.x bahamut
26     * Beware IRCd (bircd) bircd
27     * Charybdis IRCd charybdis
28     * dancer-ircd/hyperion hyperion
29     * DreamForge 4.6.7 or later dreamforge
30     * Hybrid 7.1.2 and later hybrid
31     * ircd-ratbox 2.0 and later ratbox
32     * IRCNet ircd (ircd 2.11) ircnet
33     * ircu 2.10.11.07 or later undernet
34     * IRCXPRO 1.2/OfficeIRC officeirc
35     * InspIRCd 1.1b1 or later inspircd11
36     * InspIRCd 1.2 [experimental] inspircd12
37     * Nefarious IRCu 0.4.0 or later nefarious
38     * PleXusIRCd 3.x plexus
39     * PTlink IRCd ptlink
40     * ShadowIRCd 3.3/3.6 family shadowircd
41     * sorircd 1.3.1 or later sorcery
42     * UltimateIRCd 3.0 or later ultimate3
43     * UnrealIRCd 3.1/3.2 unreal
44 pippijn 1.1 *
45     * If your IRCd vendor has supplied a module file, build it and load it here
46     * instead of one above.
47     */
48 pippijn 1.2 protocol "inspircd11";
49 pippijn 1.1
50 pippijn 1.2 /* Database backend.
51 pippijn 1.1 *
52 pippijn 1.2 * Please select a database backend. Different backends allow for
53 pippijn 1.1 * different ways in which the services data can be manipulated. YOU MAY
54     * ONLY HAVE ONE OF THESE BACKENDS LOADED.
55     *
56     * The following backends are available:
57     *
58 pippijn 1.2 * Ermyth 0.1 flatfile database format flatfile
59 pippijn 1.1 *
60 pippijn 1.2 * Most networks will want flatfile.
61 pippijn 1.1 */
62 pippijn 1.2 backend "flatfile";
63 pippijn 1.1
64 pippijn 1.2 /* Crypto handler.
65 pippijn 1.1 *
66     * If you would like encryption for your services passwords, please
67 pippijn 1.2 * select a handler here. Note that upon starting with a crypto handler
68 pippijn 1.1 * YOUR PASSWORDS ARE IMMEDIATELY AND IRREVERSIBLY CONVERTED. Make at
69     * least TWO backups of your database before experimenting with this.
70     * If you have several thousand accounts, this conversion may take
71     * appreciable time.
72     *
73 pippijn 1.2 * The following crypto handlers are available:
74 pippijn 1.1 *
75 pippijn 1.2 * POSIX-style crypt(3) posix
76     * IRCServices (also Anope etc) compatibility ircservices
77     * SorceryNet services compatibility sorservices
78 pippijn 1.1 *
79 pippijn 1.2 * The ircservices and sorservices handlers are only recommended for use with
80 pippijn 1.1 * a database converted from other services with password encryption.
81     */
82 pippijn 1.2 crypto "posix";
83 pippijn 1.1
84     /* NickServ modules.
85     *
86     * Here you can disable or enable certain features of NickServ, by
87     * defining which modules are loaded. You can even disable NickServ
88     * entirely. Please note however, that an authentication service
89     * (either NickServ, or UserServ) are required for proper functionality.
90     *
91 pippijn 1.2 * Core components nickserv/main
92     * Nickname access lists nickserv/access
93     * DROP command nickserv/drop
94     * GHOST command nickserv/ghost
95     * GROUP and UNGROUP commands nickserv/group
96     * HELP command nickserv/help
97     * Nickname expiry override (HOLD command) nickserv/hold
98     * IDENTIFY command nickserv/identify
99     * INFO command nickserv/info
100     * LIST command nickserv/list
101     * LISTMAIL command nickserv/listmail
102     * LOGIN command (for no_nick_ownership) nickserv/login
103     * LOGOUT command nickserv/logout
104     * MARK command nickserv/mark
105     * FREEZE command nickserv/freeze
106     * LISTCHANS command nickserv/listchans
107     * REGISTER command nickserv/register
108     * Password reset (RESETPASS command) nickserv/resetpass
109     * Password return (RETURN command) nickserv/return
110     * Password retrieval (SENDPASS command) nickserv/sendpass
111     * SET command nickserv/set
112     * Password retrieval uses code (SETPASS cmd) nickserv/setpass
113     * Presence notifications (SUBSCRIBE command) nickserv/subscribe
114     * Nickname enforcement nickserv/enforce
115     * STATUS command nickserv/status
116     * Nickname metadata viewer (TAXONOMY command) nickserv/taxonomy
117     * VERIFY command nickserv/verify
118     * VHOST command nickserv/vhost
119     */
120     loadmodule "nickserv/main";
121     #loadmodule "nickserv/access";
122     loadmodule "nickserv/drop";
123     loadmodule "nickserv/ghost";
124     loadmodule "nickserv/group";
125     loadmodule "nickserv/help";
126     loadmodule "nickserv/hold";
127     loadmodule "nickserv/identify";
128     loadmodule "nickserv/info";
129     loadmodule "nickserv/list";
130     loadmodule "nickserv/listmail";
131     #loadmodule "nickserv/login";
132     loadmodule "nickserv/logout";
133     loadmodule "nickserv/mark";
134     loadmodule "nickserv/freeze";
135     loadmodule "nickserv/listchans";
136     loadmodule "nickserv/register";
137     loadmodule "nickserv/resetpass";
138     loadmodule "nickserv/return";
139     loadmodule "nickserv/sendpass";
140     loadmodule "nickserv/set";
141     loadmodule "nickserv/setpass";
142     loadmodule "nickserv/subscribe";
143     #loadmodule "nickserv/enforce";
144     loadmodule "nickserv/status";
145     loadmodule "nickserv/taxonomy";
146     loadmodule "nickserv/verify";
147     loadmodule "nickserv/vhost";
148 pippijn 1.1
149     /* ChanServ modules.
150     *
151     * Here you can disable or enable certain features of ChanServ, by
152     * defining which modules are loaded. You can even disable ChanServ
153     * entirely. Please note that ChanServ requires an authentication
154     * service, either NickServ or UserServ will do.
155     *
156 pippijn 1.2 * Core components chanserv/main
157     * AKICK command chanserv/akick
158     * BAN/UNBAN commands chanserv/ban
159     * UNBAN self only (load ban or this not both) chanserv/unban_self
160     * CLOSE command chanserv/close
161     * CLEAR command chanserv/clear
162     * CLEAR BANS command chanserv/clear_bans
163     * CLEAR USERS command chanserv/clear_users
164     * COUNT command chanserv/count
165     * DROP command chanserv/drop
166     * Forced flags changes chanserv/fflags
167     * FLAGS command chanserv/flags
168     * Forced foundership transfers chanserv/ftransfer
169     * GETKEY command chanserv/getkey
170     * HALFOP/DEHALFOP commands chanserv/halfop
171     * HELP command chanserv/help
172     * Channel expiry override (HOLD command) chanserv/hold
173     * INFO command chanserv/info
174     * INVITE command chanserv/invite
175     * KICK/KICKBAN commands chanserv/kick
176     * LIST command chanserv/list
177     * MARK command chanserv/mark
178     * OP/DEOP commands chanserv/op
179     * QUIET command (+q support) chanserv/quiet
180     * Channel takeover recovery (RECOVER command) chanserv/recover
181     * REGISTER command chanserv/register
182     * SET command chanserv/set
183     * STATUS command chanserv/status
184     * Channel metadata viewer (TAXONOMY command) chanserv/taxonomy
185     * TEMPLATE command chanserv/template
186     * TOPIC/TOPICAPPEND commands chanserv/topic
187     * VOICE/DEVOICE commands chanserv/voice
188     * WHY command chanserv/why
189     * VOP/HOP/AOP/SOP commands chanserv/xop
190     * This module provides emulation of the ircservices XOP scheme ONLY.
191     * Do not report discrepencies when using native commands to edit channel
192     * ACLs. This is intentional.
193     */
194     loadmodule "chanserv/main";
195     loadmodule "chanserv/akick";
196     loadmodule "chanserv/ban";
197     #loadmodule "chanserv/unban_self";
198     loadmodule "chanserv/close";
199     loadmodule "chanserv/clear";
200     loadmodule "chanserv/clear_bans";
201     loadmodule "chanserv/clear_users";
202     loadmodule "chanserv/count";
203     loadmodule "chanserv/drop";
204     #loadmodule "chanserv/fflags";
205     loadmodule "chanserv/flags";
206     loadmodule "chanserv/ftransfer";
207     loadmodule "chanserv/getkey";
208     loadmodule "chanserv/halfop";
209     loadmodule "chanserv/help";
210     loadmodule "chanserv/hold";
211     loadmodule "chanserv/info";
212     loadmodule "chanserv/invite";
213     loadmodule "chanserv/kick";
214     loadmodule "chanserv/list";
215     loadmodule "chanserv/mark";
216     loadmodule "chanserv/op";
217     #loadmodule "chanserv/quiet";
218     loadmodule "chanserv/recover";
219     loadmodule "chanserv/register";
220     loadmodule "chanserv/set";
221     loadmodule "chanserv/status";
222     loadmodule "chanserv/taxonomy";
223     loadmodule "chanserv/template";
224     loadmodule "chanserv/topic";
225     loadmodule "chanserv/voice";
226     loadmodule "chanserv/why";
227     #loadmodule "chanserv/xop";
228 pippijn 1.1
229     /* OperServ modules.
230     *
231     * Here you can disable or enable certain features of OperServ, by
232     * defining which modules are loaded.
233     *
234 pippijn 1.2 * Core components operserv/main
235     * AKILL system operserv/akill
236     * CLEARCHAN command operserv/clearchan
237     * CLONES system operserv/clones
238     * COMPARE command operserv/compare
239     * HELP command operserv/help
240     * IGNORE system operserv/ignore
241     * INJECT command operserv/inject
242     * JUPE command operserv/jupe
243     * MODE command operserv/mode
244     * MODINSPECT command operserv/modinspect
245     * MODLIST command operserv/modlist
246     * MODLOAD command operserv/modload
247     * MODUNLOAD command operserv/modunload
248     * NOOP system operserv/noop
249     * Regex mass akill (RAKILL command) operserv/rakill
250     * RAW command operserv/raw
251     * REHASH command operserv/rehash
252     * RESTART command operserv/restart
253     * Display regex matching (RMATCH command) operserv/rmatch
254     * Most common realnames (RNC command) operserv/rnc
255     * RWATCH system operserv/rwatch
256     * SHUTDOWN command operserv/shutdown
257     * Non-config oper privileges (SOPER command) operserv/soper
258     * Oper privilege display (SPECS command) operserv/specs
259     * UPDATE command operserv/update
260     * UPTIME command operserv/uptime
261     */
262     loadmodule "operserv/main";
263     loadmodule "operserv/akill";
264     loadmodule "operserv/clearchan";
265     loadmodule "operserv/clones";
266     loadmodule "operserv/compare";
267     loadmodule "operserv/help";
268     loadmodule "operserv/ignore";
269     #loadmodule "operserv/inject";
270     loadmodule "operserv/jupe";
271     loadmodule "operserv/mode";
272     loadmodule "operserv/modinspect";
273     loadmodule "operserv/modlist";
274     loadmodule "operserv/modload";
275     loadmodule "operserv/modunload";
276     loadmodule "operserv/noop";
277     loadmodule "operserv/rakill";
278     #loadmodule "operserv/raw";
279     loadmodule "operserv/rehash";
280     loadmodule "operserv/restart";
281     loadmodule "operserv/rmatch";
282     loadmodule "operserv/rnc";
283     loadmodule "operserv/rwatch";
284     loadmodule "operserv/shutdown";
285     loadmodule "operserv/soper";
286     loadmodule "operserv/specs";
287     loadmodule "operserv/update";
288     loadmodule "operserv/uptime";
289 pippijn 1.1
290     /* MemoServ modules.
291     *
292     * Here you can disable or enable certain features of MemoServ, by
293     * defining which modules are loaded. You can even disable MemoServ
294     * entirely.
295     *
296 pippijn 1.2 * Core components memoserv/main
297     * HELP command memoserv/help
298     * SEND command memoserv/send
299     * Channel memos (SENDOPS command) memoserv/sendops
300     * LIST command memoserv/list
301     * READ command memoserv/read
302     * FORWARD command memoserv/forward
303     * DELETE command memoserv/delete
304     * IGNORE command memoserv/ignore
305     */
306     loadmodule "memoserv/main";
307     loadmodule "memoserv/help";
308     loadmodule "memoserv/send";
309     loadmodule "memoserv/sendops";
310     loadmodule "memoserv/list";
311     loadmodule "memoserv/read";
312     loadmodule "memoserv/forward";
313     loadmodule "memoserv/delete";
314     loadmodule "memoserv/ignore";
315 pippijn 1.1
316     /* Global module.
317     *
318     * Like the other services, the Global noticer is a module. You can
319     * disable or enable it to your liking below. Please note that the
320     * Global noticer is dependent on OperServ for full functionality.
321     */
322 pippijn 1.2 loadmodule "global/main";
323 pippijn 1.1
324     /* SASL agent module.
325     *
326     * Allows clients to authenticate to services via SASL with an appropriate
327     * ircd. You need the core components and at least one mechanism.
328     *
329 pippijn 1.2 * Core components saslserv/main
330     * PLAIN mechanism saslserv/plain
331     * DH-BLOWFISH mechanism saslserv/dh-blowfish
332     */
333     #loadmodule "saslserv/main";
334     #loadmodule "saslserv/plain";
335     #loadmodule "saslserv/dh-blowfish"; /* requires SSL */
336    
337     /* Miscellaneous modules.
338     *
339     * These are fully accepted user contributions and modules that don't fit
340     * into a service. Modules in misc can generally be considered stable.
341     *
342     * Perl interface misc/svsperl
343     */
344     #loadmodule "misc/svsperl";
345 pippijn 1.1
346     /* GameServ modules.
347     *
348     * Here you can disable or enable certain features of GameServ, by
349     * defining which modules are loaded. You can even disable GameServ
350     * entirely.
351     *
352 pippijn 1.2 * Core components gameserv/main
353     * DICE/WOD commands gameserv/dice
354     * HELP commands gameserv/help
355     * NAMEGEN command gameserv/namegen
356     */
357     loadmodule "gameserv/main";
358     loadmodule "gameserv/dice";
359     loadmodule "gameserv/help";
360     loadmodule "gameserv/namegen";
361 pippijn 1.1
362 pippijn 1.2 /* RPC modules.
363     *
364     * Ermyth includes an optional HTTP server that can be used for integration
365 pippijn 1.1 * with portal software and other useful things. To enable it, load this
366     * module, and uncomment the httpd { } block towards the bottom of the config.
367     *
368 pippijn 1.2 * The RPC handlers require rpc/http to be loaded as it merely registers a
369     * path handler for RPC. The path used for XML-RPC is /xmlrpc. For JSON-RPC,
370     * it registers /jsonrpc.
371     *
372     * XMLRPC handler for the httpd xmlrpc/main
373     */
374     loadmodule "rpc/httpd"; // Required
375     loadmodule "rpc/xmlrpc";
376     #loadmodule "rpc/jsonrpc";
377 pippijn 1.1
378     /* Other modules.
379     *
380 pippijn 1.2 * Put any other modules you want to load on startup here.
381     * A list of user contributions and non-core modules is given here.
382 pippijn 1.1 */
383 pippijn 1.2 #loadmodule "contrib/cs_kickdots";
384     #loadmodule "contrib/cs_ping";
385     #loadmodule "contrib/cs_sync";
386     #loadmodule "contrib/cs_userinfo";
387     #loadmodule "contrib/gen_echoserver";
388     #loadmodule "contrib/gen_listenerdemo";
389     #loadmodule "contrib/gen_regcheckemail";
390     #loadmodule "contrib/gen_vhostonreg";
391     #loadmodule "contrib/graphtastical";
392     #loadmodule "contrib/ircd_alis";
393     #loadmodule "contrib/ircd_catserv";
394     #loadmodule "contrib/ircd_nohalfops";
395     #loadmodule "contrib/ircd_noowner";
396     #loadmodule "contrib/ircd_noprotect";
397     #loadmodule "contrib/ns_fregister";
398     #loadmodule "contrib/ns_generatepass";
399     #loadmodule "contrib/ns_mxcheck";
400     #loadmodule "contrib/ns_ratelimitreg";
401     #loadmodule "contrib/os_logonnews";
402     #loadmodule "contrib/os_logstream";
403     #loadmodule "contrib/os_pingspam";
404     #loadmodule "contrib/os_tabletest";
405     #loadmodule "contrib/os_testcmd";
406 pippijn 1.1
407 pippijn 1.2 /* The serverinfo{ } block defines how we
408 pippijn 1.1 * appear on the IRC network.
409     */
410     serverinfo {
411     /* name
412     * The server name that this program uses on the IRC network.
413     * This is the name you'll have to use in C:/N:Lines. It must be
414     * unique on the IRC network and contain at least one dot, but does
415     * not have to be equal to any DNS name.
416     */
417     name = "services.int";
418    
419     /* desc
420     * The ``server comment'' we send to the IRC network.
421     * If you want server hiding, prefix your desc with "(H)"
422     */
423 pippijn 1.2 desc = "Ermyth IRC Services";
424 pippijn 1.1
425     /* numeric
426 pippijn 1.2 * Some protocol drivers (Charybdis, Ratbox2, Hybrid, P10, IRCNet, InspIRCd 1.2)
427 pippijn 1.1 * require a server id, also known as a numeric. Please consult your
428     * ircd's documentation when providing this value.
429     */
430     numeric = "00A";
431    
432     /* (*)recontime
433     * The number of seconds before we reconnect to the uplink.
434     */
435     recontime = 10;
436    
437     /* (*)netname
438     * The name of your network.
439     */
440 pippijn 1.2 netname = "Misconfigured Network";
441 pippijn 1.1
442     /* (*)hidehostsuffix
443     * P10 +x host hiding gives <account>.<hidehostsuffix>.
444     * If using +x on asuka/bircd/undernet, this must agree
445     * with F:HIDDEN_HOST.
446     */
447     hidehostsuffix = "users.misconfigured";
448    
449     /* (*)adminname
450     * The name of the person running this service.
451     */
452 pippijn 1.2 adminname = "Misconfigured Admin";
453 pippijn 1.1
454     /* (*)adminemail
455     * The email address of the person running this service.
456     */
457     adminemail = "misconfigured@admin.tld";
458    
459     /* (*)mta
460     * The full path to your mail transfer agent.
461     * This is used for email authorization and password retrieval.
462     * Comment this out to disable sending email.
463     * Warning: sending email can disclose the IP of your services
464     * unless you take precautions (not discussed here further).
465     */
466     mta = "/usr/sbin/sendmail";
467    
468     /* (*)loglevel
469     * Specify the default categories of logging information to record
470 pippijn 1.2 * in the master Ermyth logfile, usually var/ermyth.log.
471 pippijn 1.1 *
472     * Options include:
473     * debug, all - meta-keyword for all possible categories
474     * trace - meta-keyword for a little bit of info
475     * misc - like trace, but with some more miscillaneous info
476     * notice - meta-keyword for notice-like information
477     * ------------------------------------------------------------------------------
478     * error - critical errors
479     * info - miscillaneous log notices
480     * commands - all command use
481     * admin - administrative command use
482     * register - account and channel registrations
483     * set - changes of account or channel settings
484     * network - log notices related to network status
485     * rawdata - log raw data sent and received by services
486     * wallops - <not yet used>
487     */
488     loglevel = { error; info; admin; network; wallops; };
489    
490     /* (*)maxlogins
491     * What is the maximum number of sessions allowed to login to one
492     * username? This reduces potential abuse. It is only checked on login.
493     */
494     maxlogins = 5;
495    
496     /* (*)maxusers
497     * What are the maximum usernames that one email address can register?
498     */
499     maxusers = 5;
500    
501     /* (*)maxnicks
502     * If GROUP is loaded, what are the maximum nicknames that one
503     * username can register?
504     */
505     maxnicks = 5;
506    
507     /* (*)maxchans
508     * What are the maximum channels that one username can register?
509     */
510     maxchans = 5;
511    
512     /* (*)mdlimit
513     * How many metadata entries can be added to an object?
514     */
515     mdlimit = 30;
516    
517     /* (*)emaillimit, emailtime
518     * The maximum number of emails allowed to be sent in
519     * that amount of time (seconds). If this is exceeded,
520     * wallops will be sent, at most one per minute.
521     */
522     emaillimit = 10;
523     emailtime = 300;
524    
525     /* (*)auth
526     * What type of username registration authorization do you want?
527 pippijn 1.2 * If "email," Ermyth will send a confirmation email to the address to
528 pippijn 1.1 * ensure it's valid. If "none," no message will be sent and the username
529     * will be fully registered.
530     * Valid values are: email, none.
531     */
532 pippijn 1.2 auth = "none";
533 pippijn 1.1
534     /* casemapping
535     * Specify the casemapping to use. Almost all TSora (and any that follow
536     * the RFC correctly) ircds will use rfc1459 casemapping. Bahamut, Unreal,
537     * and other ``Dalnet'' ircds will use ascii casemapping.
538     * Valid values are: rfc1459, ascii.
539     */
540 pippijn 1.2 casemapping = "rfc1459";
541 pippijn 1.1 };
542    
543 pippijn 1.2 /* uplink{ } blocks define connections to IRC servers.
544 pippijn 1.1 * Multiple may be defined but only one will be used at a time (IRC
545     * being a tree shaped network).
546     */
547 pippijn 1.2 uplink "irc.xinutec.org" {
548 pippijn 1.1 // the server name goes above
549    
550     // host
551     // The hostname to connect to.
552     host = "127.0.0.1";
553    
554     // vhost
555     // The source IP to connect from, used on machines with multiple interfaces.
556     #vhost = "202.119.187.31";
557    
558     // password
559     // The password used for linking.
560     password = "linkage";
561    
562     // port
563     // The port used for linking.
564 pippijn 1.2 port = 7000;
565 pippijn 1.1 };
566    
567 pippijn 1.2 /* The nickserv { } block defines settings specific to the nickname/username
568 pippijn 1.1 * registration services client on the IRC network.
569     */
570     nickserv {
571 pippijn 1.2 /* If you want NickServ to tell people about how great it is, enable the directive
572     * below.
573     */
574     #spam;
575 pippijn 1.1
576     /* no_nick_ownership
577 pippijn 1.2 * Enable this to disable nickname ownership (old userserv{ }).
578 pippijn 1.1 * This changes changes "nickname" to "account" in most messages,
579     * disables GHOST on users not logged in to the same account and
580     * makes the spam directive ineffective.
581     * It is suggested that the nick be set to UserServ, login.so
582     * be loaded instead of identify.so and ghost.so not be loaded.
583     */
584     #no_nick_ownership;
585    
586     /* (*)nick
587     * The nickname we want NickServ to have.
588     */
589     nick = "NickServ";
590    
591     /* user
592     * The username we want NickServ to have.
593     */
594     user = "NickServ";
595    
596     /* host
597     * The hostname we want NickServ to have.
598     */
599     host = "services.int";
600    
601     /* real
602     * The realname (gecos) information we want NickServ to have.
603     */
604     real = "Nickname Services";
605    
606     /* (*)expire
607     * The number of days before inactive registrations are expired.
608     */
609     expire = 30;
610     };
611    
612 pippijn 1.2 /* The chanserv { } block defines settings specific to the channel
613 pippijn 1.1 * services client on the IRC network.
614     */
615     chanserv {
616     /* (*)nick
617     * The nickname we want the client to have.
618     */
619     nick = "ChanServ";
620    
621     /* user
622     * The username we want the client to have.
623     */
624     user = "ChanServ";
625    
626     /* host
627     * The hostname we want the client to have.
628     */
629     host = "services.int";
630    
631     /* real
632     * The GECOS of the client.
633     */
634     real = "Channel Services";
635    
636     /* fantasy
637     * Do you want to enable fantasy commands? This can
638     * use a lot of CPU up, and will only work if you have
639     * join_chans (in general) enabled as well.
640     */
641     fantasy;
642    
643     /* (*) ca_xop
644     * Defines what flags the xop access levels comprise.
645     * These should all be different and not equal to the empty set,
646     * except that hop may be equal to vop to disable hop.
647     * Each subsequent level should have more flags (except +VHO).
648     * For optimal functioning of /cs forcexop, aop should not have
649     * any of +sRf, hop should not have any of +sRfoOr and vop should
650     * not have any of +sRfoOrhHt.
651 pippijn 1.2 * If this is not specified, the values of Ermyth 0.3 are used,
652 pippijn 1.1 * which are generally less intuitive than these.
653     * Note: changing these leaves the flags of existing channel access
654     * entries unchanged, thus removing them of the view of /cs xop list.
655     * Usually the channel founder can use /cs forcexop to update the
656     * entries to the new levels.
657     */
658     vop = "+VA";
659     hop = "+vVhHtA";
660     aop = "+vhoOtriA";
661     sop = "+vhoOtrsifA";
662    
663     /* (*) changets
664     * Change the channel TS to the registration time when someone
665     * recreates a registered channel, ensuring that they are deopped
666     * and all their modes are undone. When the channel was not recreated
667     * no deops will be done (apart from the SECURE option).
668     * This also solves the "join-mode" problem where someone recreates
669     * a registered channel and then sets some modes before they are
670     * deopped.
671     * This is currently supported for charybdis, hybrid, ratbox and
672     * bahamut. For charybdis, hybrid and ratbox it only fully works
673     * with TS6, with TS5 bans and last-moment modes will still apply.
674     * (That can also be used to advantage, when first enabling this.)
675     */
676     #changets;
677    
678     /* (*) trigger
679     * This setting allows you to change the trigger prefix for
680     * ChanServ's in-channel command feature (disableable via chanserv::fantasy).
681     * If no setting is provided, the default is used, which is "!".
682     *
683     * Other settings you could consider trying: ".", "~", "?", "`", "'".
684     */
685     trigger = "!";
686    
687     /* (*)expire
688     * The number of days before inactive registrations are expired.
689     */
690     expire = 30;
691    
692     /* (*)maxchanacs
693     * The maximum number of entries allowed in a channel's access list
694     * (both channel ops and akicks), 0 for unlimited.
695     */
696     maxchanacs = 0;
697 pippijn 1.2
698     /* (*)maxfounders
699     * The maximum number of founders allowed in a channel.
700     * Note that all founders have the exact same privileges and
701     * the list of founders is shown in various places.
702     */
703     maxfounders = 4;
704 pippijn 1.1 };
705    
706 pippijn 1.2 /* The global { } block defines settings concerning the global noticer. */
707 pippijn 1.1 global {
708     /* nick
709     * Sets the nick used for sending out a global notice.
710     */
711     nick = "Global";
712    
713     /* user
714     * Sets the username used for this client.
715     */
716     user = "Global";
717    
718     /* host
719     * The hostname used for this client.
720     */
721     host = "services.int";
722    
723     /* real
724     * The GECOS (real name) of the client.
725     */
726     real = "Network Announcements";
727     };
728    
729 pippijn 1.2 /* The operserv { } block defines settings concerning the operator service. */
730 pippijn 1.1 operserv {
731     /* nick
732     * The nickname we want the Operator Service to have.
733     */
734     nick = "OperServ";
735    
736     /* user
737     * Sets the username used for this client.
738     */
739     user = "OperServ";
740    
741     /* host
742     * The hostname used for this client.
743     */
744     host = "services.int";
745    
746     /* real
747     * The GECOS (real name) of the client.
748     */
749     real = "Operator Services";
750     };
751    
752 pippijn 1.2 /* If you are using SASL, uncomment this */
753     saslserv {
754     /* (*)nick
755     * The nickname we want SaslServ to have.
756 pippijn 1.1 */
757 pippijn 1.2 nick = "SaslServ";
758 pippijn 1.1
759 pippijn 1.2 /* user
760     * The username we want SaslServ to have.
761 pippijn 1.1 */
762 pippijn 1.2 user = "SaslServ";
763 pippijn 1.1
764     /* host
765 pippijn 1.2 * The hostname we want SaslServ to have.
766 pippijn 1.1 */
767 pippijn 1.2 host = "services.int";
768 pippijn 1.1
769 pippijn 1.2 /* real
770     * The realname (gecos) information we want SaslServ to have.
771 pippijn 1.1 */
772 pippijn 1.2 real = "SASL Authentication Agent";
773 pippijn 1.1 };
774    
775 pippijn 1.2 /* The httpd { } block defines configuration parameters for the
776 pippijn 1.1 * HTTP server.
777     */
778     httpd {
779     /* host
780     * The host that the HTTP server will listen on.
781     * Use 0.0.0.0 if you want to listen on all available hosts.
782     */
783     host = "0.0.0.0";
784    
785     /* www_root
786     * The directory that contains the files that should be served by the httpd.
787     */
788     www_root = "/var/www";
789    
790     /* port
791     * The port that the HTTP server will listen on.
792     */
793     port = 8080;
794     };
795    
796     /* MemoServ */
797     memoserv {
798     /* (*)nick
799     * The nickname we want MemoServ to have.
800     */
801     nick = "MemoServ";
802    
803     /* user
804     * The username we want MemoServ to have.
805     */
806     user = "MemoServ";
807    
808     /* host
809     * The hostname we want MemoServ to have.
810     */
811     host = "services.int";
812    
813     /* real
814     * The realname (gecos) information we want MemoServ to have.
815     */
816     real = "Memo Services";
817     };
818    
819 pippijn 1.2 /* The gameserv { } block defines settings concerning GameServ. */
820 pippijn 1.1 gameserv {
821     /* nick
822     * The nickname we want GameServ to have.
823     */
824     nick = "GameServ";
825    
826     /* user
827     * Sets the username used for this client.
828     */
829     user = "GameServ";
830    
831     /* host
832     * The hostname used for this client.
833     */
834     host = "services.int";
835    
836     /* real
837     * The GECOS (real name) of the client.
838     */
839     real = "Game Services";
840     };
841    
842     /*
843 pippijn 1.2 * logfile{ } blocks can be used to set up log files other than the master
844 pippijn 1.1 * logfile used by services, which is controlled by serverinfo::loglevel.
845     *
846     * The various logging categories are:
847     * debug, all - meta-keyword for all possible categories
848     * trace - meta-keyword for a little bit of info
849     * misc - like trace, but with some more miscillaneous info
850     * notice - meta-keyword for notice-like information
851     * ------------------------------------------------------------------------------
852     * error - critical errors
853     * info - miscillaneous log notices
854     * commands - all command use
855     * admin - administrative command use
856     * register - account and channel registrations
857     * set - changes of account or channel settings
858     * network - log notices related to network status
859     * rawdata - log raw data sent and received by services
860     * wallops - <not yet used>
861     */
862    
863     /*
864     * This block logs all account and channel registrations and drops,
865     * and account and channel setting changes to var/account.log.
866     */
867     logfile "var/account.log" { register; set; };
868    
869     /*
870     * This block logs all command use to var/commands.log.
871     */
872     logfile "var/commands.log" { commands; };
873    
874 pippijn 1.2 /* The general { } block defines general configuration options. */
875 pippijn 1.1 general {
876     /* (*)chan
877     * The channel the client joins and sends certain
878     * messages to.
879     * Comment to disable.
880     */
881     chan = "#services";
882    
883     /* (*)silent
884     * If you want to prevent services from sending
885     * WALLOPS/GLOBOPS about things uncomment this.
886     * Not recommended.
887     */
888     #silent;
889    
890     /* (*)verbose_wallops
891     * If you want services to send you more information about
892     * events that are occuring (in particular AKILLs), uncomment the
893     * directive below.
894     *
895     * WARNING! This may result in large amounts of wallops/globops
896     * floods.
897     */
898     #verbose_wallops;
899    
900     /* (*)use_privmsg
901     * If you want services to send messages via PRIVMSG instead of
902     * NOTICE, uncomment this below. This could be useful for networks
903     * with WEBTV users and various other improperly designed IRC clients
904     * connecting to it, such as flash and java chat clients and IRC
905     * clients for the physically handicapped.
906     *
907     * WARNING! It is against the IRC RFC to respond to PRIVMSG
908     * automatically with another PRIVMSG, because it can cause
909     * feedback loops between bots and services. You have been warned.
910     * Some users may not like this feature very well, it
911     * can be rather annoying.
912     */
913     #use_privmsg;
914    
915     /* (*)join_chans
916     * Should ChanServ be allowed to join registered channels?
917     * This option is useful for the fantasy command set.
918     *
919     * If enabled, you can tell ChanServ to join via SET GUARD ON.
920     *
921     * If you use ircu-like ircd (asuka, bircd, undernet), you must
922     * leave this enabled, and put guard in default cflags.
923     *
924     * For ratbox it is recommended to leave it on and put guard in
925     * default cflags, in order that ChanServ does not have to join/part
926     * to do certain things. On the other hand, enabling this increases
927     * potential for bots fighting with ChanServ.
928     *
929     * Regardless of this option, ChanServ will temporarily join
930     * channels which would otherwise be empty if necessary to enforce
931     * akick/staffonly/close.
932     */
933     join_chans;
934    
935     /* (*)leave_chans
936     * Do we leave registered channels after everyone else has left?
937     * Turning this off serves little purpose, except to mark "official"
938     * network channels by keeping them open, and to preserve the
939     * topic and +beI lists.
940     */
941     leave_chans;
942    
943     /* secure
944     * Do you want to require the use of /msg <service>@<services host>?
945     * Turning this on helps protect against spoofers, but is disabled
946     * as most networks do not presently use it.
947     */
948     #secure;
949    
950     /* (*)uflags
951     * The default flags to set for usernames upon registration.
952     * Valid values are: hold, neverop, noop, hidemail, and none.
953     */
954     uflags = { none; };
955    
956     /* (*)cflags
957     * The default flags to set for channels upon registration.
958     * Valid values are: hold, secure, verbose, verbose_ops, keeptopic,
959     * topiclock, guard and none.
960     */
961     cflags = { verbose; guard; };
962    
963     /* (*)raw
964     * Do you want to allow SRAs to use the RAW and INJECT commands?
965     * These commands are for debugging. If you don't know how to use them
966     * then don't enable them. They are not supported.
967     */
968     #raw;
969    
970     /* (*)flood_msgs
971     * Do you want services to detect floods?
972     * Set to how many messages before a flood is triggered.
973     * If services receives `flood_msgs' within `flood_time' the user will
974     * trigger the flood protection.
975     * Setting this to zero disables flood protection.
976     */
977     flood_msgs = 7;
978    
979     /* (*)flood_time
980     * Do you want services to detect floods?
981     * Set to how long before the counter resets.
982     * If services receives `flood_msgs' within `flood_time' the user will
983     * trigger the flood protection.
984     */
985     flood_time = 10;
986    
987     /* (*)kline_time
988     * The default expire time for KLINE's in days.
989     * Setting this to 0 makes all KLINE's permanent.
990     */
991     kline_time = 7;
992    
993     /* commit_interval
994     * The time between database writes in minutes.
995     */
996     commit_interval = 5;
997 pippijn 1.2
998     /* (*)default_clone_limit
999     * The default clone limit used by operserv/clones.
1000     */
1001     default_clone_limit = 5;
1002 pippijn 1.1 };
1003    
1004     /* Operator configuration
1005     * See the PRIVILEGES document for more information.
1006     * NOTE: All changes apply immediately upon rehash. You may need
1007     * to send a signal to regain control.
1008     */
1009     /* (*) Operclasses specify groups of services operator privileges */
1010     operclass "sra" {
1011 pippijn 1.2 /* You can have multiple privs { } blocks in an oper class.
1012     * This example uses multiple privs { } blocks to organize the privileges
1013 pippijn 1.1 * granted to the operclass by category.
1014     */
1015     privs = {
1016     special:ircop;
1017     };
1018    
1019     privs = {
1020     user:auspex;
1021     user:admin;
1022     user:sendpass;
1023     user:vhost;
1024     user:mark;
1025     user:hold;
1026     user:regnolimit;
1027     };
1028    
1029     privs = {
1030     chan:auspex;
1031     chan:admin;
1032     chan:cmodes;
1033     chan:joinstaffonly;
1034     };
1035    
1036     privs = {
1037     general:auspex;
1038     general:viewprivs;
1039     general:flood;
1040     general:metadata;
1041     general:admin;
1042     };
1043    
1044     privs = {
1045     operserv:omode;
1046     operserv:akill;
1047     #operserv:massakill;
1048 pippijn 1.2 #operserv:akill-anymask;
1049 pippijn 1.1 operserv:jupe;
1050     operserv:noop;
1051     operserv:global;
1052     operserv:grant;
1053     };
1054    
1055     /* needoper
1056     * Only grant privileges to IRC users in this oper class if they
1057     * are opered; other use of privilege (channel succession, XMLRPC,
1058     * etc.) is unaffected by this.
1059     */
1060     needoper;
1061     };
1062    
1063     /* The "ircop" operclass specifies privileges all IRCops get.
1064     * This may be empty in which case IRCops get no privs.
1065     * At least chan:cmodes, chan:joinstaffonly and general:auspex are suggested.
1066     */
1067     operclass "ircop" {
1068     privs = {
1069     special:ircop;
1070     };
1071    
1072     privs = {
1073     user:auspex;
1074     user:admin;
1075     user:sendpass;
1076     user:vhost;
1077     user:mark;
1078     };
1079    
1080     privs = {
1081     chan:auspex;
1082     chan:admin;
1083     chan:cmodes;
1084     chan:joinstaffonly;
1085     };
1086    
1087     privs = {
1088     general:auspex;
1089     general:viewprivs;
1090     general:flood;
1091     };
1092    
1093     privs = {
1094     operserv:omode;
1095     operserv:akill;
1096     operserv:jupe;
1097     operserv:global;
1098     };
1099     };
1100    
1101     /* (*) Operator blocks specify accounts with certain privileges
1102     * Oper classes must be defined before they are used in operator blocks.
1103     */
1104 pippijn 1.2 operator "pippijn" {
1105 pippijn 1.1 operclass = "sra";
1106     };
1107    
1108     /* You may also specify other files for inclusion.
1109     * For example:
1110     *
1111     * include "etc/sras.conf";
1112     */
1113 pippijn 1.2
1114     # vim:ft=c noexpandtab