ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/ermyth/dist/example.conf
Revision: 1.1
Committed: Thu Jul 19 08:24:47 2007 UTC (16 years, 10 months ago) by pippijn
Branch: MAIN
Log Message:
initial import. the most important changes since Atheme are:
- fixed many memory leaks
- fixed many bugs
- converted to C++ and use more STL containers
- added a (not very enhanced yet) perl module
- greatly improved XML-RPC speed
- added a JSON-RPC module with code from json-cpp
- added a valgrind memcheck module to operserv
- added a more object oriented base64 implementation
- added a specialised unit test framework
- improved stability
- use gettimeofday() if available
- reworked adding/removing commands
- MemoServ IGNORE DEL can now remove indices

File Contents

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