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, 8 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

# Content
1 /* This is an example configuration for Ermyth.
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 /*
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 *
15 * 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 * available.
23 *
24 * 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 *
45 * If your IRCd vendor has supplied a module file, build it and load it here
46 * instead of one above.
47 */
48 protocol "inspircd11";
49
50 /* Database backend.
51 *
52 * Please select a database backend. Different backends allow for
53 * 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 * Ermyth 0.1 flatfile database format flatfile
59 *
60 * Most networks will want flatfile.
61 */
62 backend "flatfile";
63
64 /* Crypto handler.
65 *
66 * If you would like encryption for your services passwords, please
67 * select a handler here. Note that upon starting with a crypto handler
68 * 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 * The following crypto handlers are available:
74 *
75 * POSIX-style crypt(3) posix
76 * IRCServices (also Anope etc) compatibility ircservices
77 * SorceryNet services compatibility sorservices
78 *
79 * The ircservices and sorservices handlers are only recommended for use with
80 * a database converted from other services with password encryption.
81 */
82 crypto "posix";
83
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 * 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
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 * 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
229 /* OperServ modules.
230 *
231 * Here you can disable or enable certain features of OperServ, by
232 * defining which modules are loaded.
233 *
234 * 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
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 * 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
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 loadmodule "global/main";
323
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 * 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
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 * 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
362 /* RPC modules.
363 *
364 * Ermyth includes an optional HTTP server that can be used for integration
365 * 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 * 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
378 /* Other modules.
379 *
380 * 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 */
383 #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
407 /* The serverinfo{ } block defines how we
408 * 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 desc = "Ermyth IRC Services";
424
425 /* numeric
426 * Some protocol drivers (Charybdis, Ratbox2, Hybrid, P10, IRCNet, InspIRCd 1.2)
427 * 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 netname = "Misconfigured Network";
441
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 adminname = "Misconfigured Admin";
453
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 * in the master Ermyth logfile, usually var/ermyth.log.
471 *
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 * If "email," Ermyth will send a confirmation email to the address to
528 * 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 auth = "none";
533
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 casemapping = "rfc1459";
541 };
542
543 /* uplink{ } blocks define connections to IRC servers.
544 * Multiple may be defined but only one will be used at a time (IRC
545 * being a tree shaped network).
546 */
547 uplink "irc.xinutec.org" {
548 // 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 port = 7000;
565 };
566
567 /* The nickserv { } block defines settings specific to the nickname/username
568 * registration services client on the IRC network.
569 */
570 nickserv {
571 /* If you want NickServ to tell people about how great it is, enable the directive
572 * below.
573 */
574 #spam;
575
576 /* no_nick_ownership
577 * Enable this to disable nickname ownership (old userserv{ }).
578 * 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 /* The chanserv { } block defines settings specific to the channel
613 * 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 * If this is not specified, the values of Ermyth 0.3 are used,
652 * 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
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 };
705
706 /* The global { } block defines settings concerning the global noticer. */
707 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 /* The operserv { } block defines settings concerning the operator service. */
730 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 /* If you are using SASL, uncomment this */
753 saslserv {
754 /* (*)nick
755 * The nickname we want SaslServ to have.
756 */
757 nick = "SaslServ";
758
759 /* user
760 * The username we want SaslServ to have.
761 */
762 user = "SaslServ";
763
764 /* host
765 * The hostname we want SaslServ to have.
766 */
767 host = "services.int";
768
769 /* real
770 * The realname (gecos) information we want SaslServ to have.
771 */
772 real = "SASL Authentication Agent";
773 };
774
775 /* The httpd { } block defines configuration parameters for the
776 * 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 /* The gameserv { } block defines settings concerning GameServ. */
820 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 * logfile{ } blocks can be used to set up log files other than the master
844 * 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 /* The general { } block defines general configuration options. */
875 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
998 /* (*)default_clone_limit
999 * The default clone limit used by operserv/clones.
1000 */
1001 default_clone_limit = 5;
1002 };
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 /* You can have multiple privs { } blocks in an oper class.
1012 * This example uses multiple privs { } blocks to organize the privileges
1013 * 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 #operserv:akill-anymask;
1049 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 operator "pippijn" {
1105 operclass = "sra";
1106 };
1107
1108 /* You may also specify other files for inclusion.
1109 * For example:
1110 *
1111 * include "etc/sras.conf";
1112 */
1113
1114 # vim:ft=c noexpandtab