]> jfr.im git - irc/evilnet/x3.git/blame - x3.conf.example
fix table display bug
[irc/evilnet/x3.git] / x3.conf.example
CommitLineData
5a6d6ae5 1/* *****************************************************************
fbbc275b 2 * X3 Services Example Configuration file.
3 *
4 * Copy it to your x3 runtime dir, and edit to taste.
5 *
6 * This file allows two kinds of comments. Whitespaces between
7 * tokens are ignored. All strings (even if they're just numbers)
8 * MUST be enclosed in double quotes. There must be a semicolon
9 * after every * key/value pair.
d76ed9a9 10 */
11
fbbc275b 12/* UPLINKS (servers we connect to) *********************************
13 * Each subsection describes one server. X3 will try to connect to
14 * each in turn maxtries times, and then will quit.
15 */
d76ed9a9 16"uplinks" {
fbbc275b 17 // This first entry connects to an ircd on teh same server an X3..
18 "Hub" { // This can be any string, just used here for your conveniance
19 "address" "127.0.0.1"; // The IP address of the server
20 "port" "8888"; // What TCP port to connect to
21 "password" "laoo,rpe"; // Both of these passwords must match
22 "their_password" "laoo,rpe"; // the one in the ircd C line for X3.
23 "enabled" "1"; // Set to 0 to disable connecting to this server
24 "max_tries" "10"; // How many times to attemt reconnect before quitting
25 "bind_address" "127.0.0.1"; // LOCAL IP address we want to connect FROM
26 };
27 // This next one connects to an ircd on another server
28 "Hub-west" {
d76ed9a9 29 // IP address and port the server listens on
fbbc275b 30 "address" "192.168.234.123"; // IP of remote server
31 "port" "8888";
32 "password" "ekrpat"; // C line passwords
33 "their_password" "ekrpat"; // Set same as above
34 "enabled" "0"; // Set this to 1 to use this server..
35 "max_tries" "1";
36 "bind_address" "192.168.1.10";
d76ed9a9 37 };
fbbc275b 38};
d76ed9a9 39
fbbc275b 40/* SERVER (Details about our existance) **********************************
41 */
42"server" {
43 "hostname" "X3.AfterNET.Services"; // The servers name. (Use this in the ircd's C line)
44 "description" "AfterNET Network Services"; // Shows up in /links.
45 "network" "AfterNET";
46 "hidden_host" "Users.AfterNET.Org"; // set this if you enabled Nefarious' +x mode
47 /* hidden_host should match the F:HIDDEN_HOST: line in your ircu's ircd.conf;
48 * x3 does not set the host suffix for users, but must know it when making
49 * things like bans, where it should not show the user's real hostname. */
50 "numeric" "51"; // hint: If you get collisions on link, CHANGE THIS.
c02cd944 51 "type" "4"; // Only change this to 5 if you are using Nefarious 0.5.0 off SVN
fbbc275b 52 "max_users" "256"; // You can save a little memory by setting this to a lower value.
53 "force_n2k" "1"; // Use extended (5-digit) numnick for self, even if 3 are possible.
54 "ping_freq" "60";
55 "ping_timeout" "90";
56 "max_cycles" "30"; // max uplink cycles before giving up
57 // Admin information is traditionally: location, location, email
58 // This shows up on a /admin x3.afternet.services command.
59 "admin" (
60 "AfterNET IRC Network",
61 "www.afternet.org",
62 "Support Staff <support@afternet.org>"
63 );
805e7c7a 64 /* extended_accounts -
65 * enable this for nefarious 0.4.x and higher. Sends 'AC R nick account'instead of
66 * 'AC nick account' and allows for renames etc. */
67 "extended_accounts" "1";
fbbc275b 68 /* the following two settings are for ircu's HEAD_IN_SAND features, and are equivelent to
69 * the F: lines in ircu's ircd.conf. both can be disabled by commenting them out. */
70 //"his_servername" "*.AfterNET.org"; // hidden server name, shown in remote /whois requests
71 //"his_servercomment" "AfterNET IRC Network";
d76ed9a9 72};
73
fbbc275b 74/* SERVICES (Bot nicknames) *******************************************
75 * Each section describes one service nickname and the details of that
76 * bot's features
77 * You may disable a service by commenting out its "nick" config item.
78 */
d76ed9a9 79"services" {
fbbc275b 80 /* Nickserv is the bot you register with and auth to.
81 * Afternet uses the name "Authserv" without the nickname reservation
82 * features enabled. Some nets call it Nickserv and configure it to
83 * reserve nicks.
84 */
d76ed9a9 85 "nickserv" {
fbbc275b 86 "nick" "AuthServ"; // The bots nick on IRC
87
88 // If you want to have *@* as the default hostmask, set
89 // default_hostmask. I highly reccomend this, and its required
90 // for login-on-connect to work.
91 "default_hostmask" "1";
92
d76ed9a9 93 // do we warn users when someone new auths to their account?
fbbc275b 94 "warn_clone_auth" "1"; // -X3- warning: foobar has authed to your account
95
96 // default max number of logins allowed on new accounts. Users can set it
97 // to something different using authserv commands.
98 "default_maxlogins" "3";
99
100 // hard_maxlogins is the ammount the user cant override.
d76ed9a9 101 "hard_maxlogins" "10";
fbbc275b 102
d76ed9a9 103 // This names a file that contains easily guessed passwords.
104 // It always contains "password", "<password>" and the user's
105 // account name.
fbbc275b 106 // uncomment if you have a dict file.
107 //"dict_file" "/usr/share/dict/words";
108
d76ed9a9 109 // Minimum number of various types of characters permitted in
fbbc275b 110 // a password. Authserv will enforce these.
d76ed9a9 111 "password_min_length" "4";
fbbc275b 112 "password_min_digits" "0";
d76ed9a9 113 "password_min_upper" "0";
114 "password_min_lower" "0";
fbbc275b 115
d76ed9a9 116 // What should valid account and nicks look like?
117 // If valid_nick_regex is omitted, valid_account_regex is used
118 // for both nicks and accounts.
fbbc275b 119 // Be very carefull changing these. This default is
120 // basically limited to letters, numbers, dash and underscore.
121 "valid_account_regex" "^[-_a-z0-9A-Z]{2,15}$";
d76ed9a9 122 "valid_nick_regex" "^[-_a-z][-_a-z0-9]*$";
123
fbbc275b 124 // "Nickserv" networks, set this to 0. "Authserv" networks,
125 // set it to 1.
126 "disable_nicks" "1";
127 // One account may only own this many nicks.
128 "nicks_per_account" "4";
129
130 // Send a warning when someone uses a registered nick?
131 "warn_nick_owned" "0";
132
133 // What to do when someone uses the NickServ "reclaim" command?
134 // This can be one of "none", "warn", "svsnick", or "kill", but
135 // stock ircu does not support svsnick -- you need Bahamut or
136 // nefarious.
137 "reclaim_action" "none";
138
139 // What (else) to do when someone uses a registered nick?
140 // This can be anything "reclaim_action" can be, but it makes
141 // more sense to use the "warn_nick_owned" instead of "warn".
142 "auto_reclaim_action" "none";
143
144 // How long to wait before doing the auto_reclaim_action?
145 // This is ignored if "auto_reclaim_action" is "none".
146 "auto_reclaim_delay" "0";
d76ed9a9 147
148 // access control for who can change account flags
fbbc275b 149 // See /msg authserv help account flags
d76ed9a9 150 "flag_levels" {
fbbc275b 151 "g" "800"; // God mode
152 "lc_h" "800"; // support helper (lower case h)
153 "uc_H" "800"; // net helper (upper case H)
154 "S" "999"; // O3 access suspended
e42487a5 155 "b" "1"; // Bot (not sure what it does tho)
d76ed9a9 156 };
fbbc275b 157
d76ed9a9 158 // and for who can change epithets for staff
fbbc275b 159 // epithets show up in /whois as another line about the person.
d76ed9a9 160 "set_epithet_level" "800";
fbbc275b 161
d76ed9a9 162 // what opserv access level do you need to set somebody else's level?
163 "modoper_level" "850";
164
165 // how often should accounts be expired?
166 "account_expire_freq" "1d";
fbbc275b 167
d76ed9a9 168 // how long until an account with access to any channel(s) expires?
fbbc275b 169 "account_expire_delay" "900d";
170
d76ed9a9 171 // how long until an account with no access to any channels expires?
fbbc275b 172 "nochan_account_expire_delay" "365d";
173
d76ed9a9 174 // If somebody keeps guessing passwords incorrectly, do we gag them?
175 "autogag_enabled" "1";
176 "autogag_duration" "30m";
177 "auth_policer" {
178 "size" "5";
179 "drain-rate" "0.05";
180 };
fbbc275b 181
d76ed9a9 182 // How to integrate with email cookies?
fbbc275b 183 // In order to use mail, mail must be enabled and configured
184 // down below in the mail section of this config file.
185 "email_enabled" "1"; // Allow account verification and password reset by email.
186 "email_required" "1"; // if above is 1, require verification to authenticate.
187 "cookie_timeout" "2d"; // how long before we expire cookies?
188 "accounts_per_email" "1"; // How many people can use the same email account.
189
190 "email_search_level" "600"; // minimum OpServ level to search based on email address (search print email *foo*)
d76ed9a9 191 "email_visible_level" "800"; // minimum OpServ level to see somebody's email address
fbbc275b 192 "titlehost_suffix" "AfterNET.Org"; // 'USET title' sets a fake hostname of name.title.titlehost on a user.
193 "set_title_level" "900"; // Access to use 'uset title'.
194 "set_fakehost_level" "1000"; //Access to set a freeform fakehost. (uset fakehost)
04009ebf 195
7637f48f 196 // A list of denied words in the fakehosts
197 "denied_fakehost_words" ("sex",
198 "fuck",
199 "asshole");
200
fbbc275b 201 // This is a hacked in feature which exports every account change to a file sync.log. Afternet uses this and
202 // a bunch of custom PHP scripts to make our websites SQL user db the same as authserv, every 5 minutes.
203 // You have to be a pretty handy person with the shell commands and programming to make use of this..
204 "sync_log" "0"; // Log account changes to a file for syncing w/ a website?
338a82b5 205
206 // Nickserv 'style' setting affects .userlist and other outputs.
207 "default_style" "n"; // can be: n = normal, c = clean, or a = advanced.
d76ed9a9 208 };
209
fbbc275b 210 /*
211 * OpServ is the bot opers use to do glines, look at info etc.
212 * Afternet uses the nickname "O3" for this as its easier to type.
213 */
d76ed9a9 214 "opserv" {
fbbc275b 215 "nick" "O3";
d76ed9a9 216 // should use of this service be limited to global opers?
fbbc275b 217 "privileged" "1";
218
d76ed9a9 219 // fullname for service
fbbc275b 220 "description" "Oper Service Bot"; // (for /whois)
221
d76ed9a9 222 // hostname for service; only used if "description" is also set
fbbc275b 223 "hostname" "X3.AfterNET.Services"; // (for /whois)
224
225 // What channel should opserv send debug output to?
226 // I don't have any idea what debug info goes here. You can configure
227 // debugging logs in the log section to go to any channel.
228 // Probably safest to set to your oper channel.
229 "debug_channel" "#TheOps"; // Bot will join this channel, also.
230 "debug_channel_modes" "+tnOS"; // Modes get set every time X3 starts up
231
d76ed9a9 232 // where to send general alerts (e.g. flood alerts)?
fbbc275b 233 "alert_channel" "#TheOps"; // Bot will join this channel, also.
234 "alert_channel_modes" "+"; // Modes get set every time X3 starts up
235
d76ed9a9 236 // who to tell about staff auths?
fbbc275b 237 "staff_auth_channel" "#OperServ"; // Bot will join this channel, also.
238 "staff_auth_channel_modes" "+tnOs"; // modes get set every time X3 starts up
239
7637f48f 240 // which channels should all services autojoin?
241 "autojoin_channels" ("#TheOps", "#OperServ");
242
d76ed9a9 243 // how many clones to allow from an untrusted host?
fbbc275b 244 // Use this carefully, users with half the # of clones will trigger this
245 // when a server pings out and they reconnect before the old connection is noticed
246 // to be dead by the server.. so set it at about twice the # you want to allow to
247 // avoid false positives.
248 "untrusted_max" "6"; // 3 connections and 3 ghosts, 7th connection causes a gline.
249
d76ed9a9 250 // how long of a g-line should be issued if the max hosts is exceeded?
fbbc275b 251 "clone_gline_duration" "2h"; // durations are smhdmy
252
253 // how long to g-line for ?block (or, by default, for trace gline)?
254 "block_gline_duration" "12h";
255
d914d1cb 256 // how long to shun for ?sblock (or, by default, for trace shun)?
257 "block_shun_duration" "12h";
258
fbbc275b 259 // When a user joins an illegal channel, O3 joins it and locks it down.
d76ed9a9 260 // how long to keep an illegal channel locked down (seconds)?
261 "purge_lock_delay" "60";
fbbc275b 262
263 // The join-flood policer code goes off all the time when a server
264 // goes down (and everyone reconnects) so i don't reccomend using it.
265 // Automatically moderate join flooded channels?
266 "join_flood_moderate" "0";
267 // channel join flood policer params?
268 "join_policer" {
269 "size" "20";
270 "drain-rate" "1";
271 };
272 // Don't moderate and warn channels unless there are more than
273 // join_flood_moderate_threshold users in the channel. the
274 // value 0 will disable the threshold.
275 "join_flood_moderate_threshold" "50";
276 // new user flood policer params
277 "new_user_policer" {
278 "size" "200";
279 "drain-rate" "3";
280 };
1c5f6697 281 // Min opserv level needed to set 'silent' glines in trace/addalert
282 // (nefarious only)
283 "silent_level" "700";
d76ed9a9 284 };
285
286 "chanserv" {
fbbc275b 287 "nick" "X3";
db4e7826 288
289 // The off_channel setting takes one of three numerical values:
290 // 0 = off
291 // 1 = use a registered channel mode, have services op themselves
292 // 2 = all of the above, and a channel setting to have ChanServ not
293 // idle in the channel
294 // NOTE: +z mode, needed for this to work, is inharently flawed and
295 // will cause desynch, so don't use it IMO -Rubin.
fbbc275b 296 "off_channel" "no";
297
298 // Infolines are sent when channel users join the channel. Users set them with USET INFO in X3.
d76ed9a9 299 // how long should a person be unseen before resending infoline?
300 "info_delay" "120";
fbbc275b 301
302 // Greetings can be configured by the channel manager(s) and sent to users who join the channel.
303 // Many people (rightly) find this annoying, so keep them short.
d76ed9a9 304 // maximum greeting length
fbbc275b 305 "max_greetlen" "120";
306
d76ed9a9 307 // maximum users in a channel userlist
308 "max_chan_users" "512";
309 // maximum bans on a channel banlist
310 "max_chan_bans" "512";
311 // maximum length of a user's infoline
fbbc275b 312 "max_userinfo_length" "400"; // for god sake lower this. 80 seems good.
313
314 // If SET DynLimit is on and there are N users in the channel, ChanServ will
315 // try to keep the limit at N+<adjust_threshold>. This makes the channel
316 // somewhat protected from clone attacks.
317 "adjust_threshold" "5";
d76ed9a9 318 // .. but ChanServ will only increment or decrement the limit this often.
fbbc275b 319 "adjust_delay" "30"; // (seconds)
320
31f23f13 321 // How often to look for expired bans?
322 "ban_timeout_freq" "2m";
323
d76ed9a9 324 // How often to look for channels that have expired?
fbbc275b 325 "chan_expire_freq" "1d";
326
d76ed9a9 327 // How long is a channel unvisited (by masters or above) before it can be expired?
328 "chan_expire_delay" "30d";
fbbc275b 329
d76ed9a9 330 // what !set options should we show when user calls "!set" with no arguments?
fbbc275b 331 "set_shows" ("DefaultTopic", "TopicMask", "Greeting", "UserGreeting", "Modes", "PubCmd", "InviteMe", "UserInfo", "EnfOps", "EnfModes", "EnfTopic", "TopicSnarf", "Setters", "CtcpReaction", "Voice", "Protect", "Toys", "DynLimit", "NoDelete");
332
d76ed9a9 333 // A list of !8ball responses
240a3274 334 "8ball" (
335 "Are you out of your MIND?",
336 "It won't happen, not a chance, definitely no.",
337 "Outlook seems bleak.",
338 "My sources say no.",
339 "You bet!",
340 "It is decidedly so.",
341 "It's hard to be sure.",
342 "Most definitely.",
343 "In your dreams...",
344 "If the prophets wish it...",
345 "Forecast hazy, try again later.",
346 "I don't know!",
d76ed9a9 347 "Absolutely!",
240a3274 348 "Never.",
349 "Yes.",
350 "No.",
351 "Maybe.");
fbbc275b 352
d76ed9a9 353 // channel(s) that support helpers must be in to be helping
354 // if this is a list, any one by itself will do
fbbc275b 355 "support_channel" ("#Operations", "#Help");
356
357 // maximum number of channels a user may have. ( FORCE can override )
358 "max_owned" "2";
359
7637f48f 360 // how long between automatic topic and userlist refreshes with TopicRefresh/Resync
361 "refresh_period" "10h";
fbbc275b 362
d76ed9a9 363 // what should !access say for various staff?
fbbc275b 364 "irc_operator_epithet" "AfterNET IRC Operator";
365 "network_helper_epithet" "AfterNET Network Helper";
366 "support_helper_epithet" "AfterNET Support Helper";
367
d76ed9a9 368 // what should a newly registered channel get as its modes?
369 "default_modes" "+nt";
fbbc275b 370
371 // minimum opserv access to set, clear or override channel nodelete setting?
d76ed9a9 372 "nodelete_level" "1";
7637f48f 373
374 // when does god mode time out?
375 "god_timeout" "30m";
d76ed9a9 376 };
377
fbbc275b 378 /* Global is a service bot that can send out network-wide messages for you. I
379 * like to set ours' nick to 'AfterNET', but some people use 'Global'
380 */
d76ed9a9 381 "global" {
382 "nick" "Global";
383 // should users get community announcements by default or not?
fbbc275b 384 // community announcements are a type of global that users may
385 // opt into (or out of, depending on this setting)
d76ed9a9 386 "announcements_default" "on";
387 };
63c95a47 388
389
390 "spamserv" {
391 // You may disable this service by removing its "nick" config item.
392 "nick" "SpamServ";
393
394 // debug channel
395 "debug_channel" "#operserv";
396
397 // url of the network rules. if you don't have network rules, remove this key.
398 "network_rules" "http://www.afternet.org/aup";
399
400 // trigger for spamserv; remove this key to disable the trigger
401 "trigger" "%";
402
403 // ban duration of a short timedban.
404 "short_ban_duration" "15m";
405
406 // ban duration of a long timedban.
407 "long_ban_duration" "1h";
408
409 // duration of a gline. SpamServ will issue it after several violations and a kill.
410 "gline_duration" "1h";
411
412 // users may add "exception_max" exceptions to the list. IRCOps can override "exception_max".
413 "exception_max" "10";
414
415 // minimum & maximum length of an exception.
416 "exception_min_len" "4";
417 "exception_max_len" "12";
418
419 // users may add "badword_max" badwords to the list. IRCOps can override badword_max".
420 "badword_max" "10";
421
422 // minimum & maximum length of an badword.
423 "badword_min_len" "4";
424 "badword_max_len" "12";
425
426 // if someone advertises a channel, which doesn't exist (channel is empty, no users),
427 // SpamServ doesn't punish the user.
428 // enable this setting, if SpamServ has to ignore advertisements of channels, which do not exist.
429 // disable this setting, if SpamServ has to punish the users whenever they advertise.
430 "adv_chan_must_exist" "1";
431
432 // remove all mirc codes from messages before checking for advertisements.
433 // if this setting is disabled and someone spams a url which
434 // contains a bold char, SpamServ doesn't punish him.
435 "strip_mirc_codes" "1";
436
437 // enable this, if SpamServ has to "follow" ChanServ, when a channel moves or merges.
438 // disable it, if it shouldn't be possible to move or merge SpamServ with /msg chanserv move|merge.
439 "allow_move_merge" "1";
440 };
d76ed9a9 441};
442
fbbc275b 443/* MODULES (optional components) *************************************************
444 * These must be explicitly compiled in (see ./configure --help)
445 * When enabled, they are configured here..
446 */
d76ed9a9 447"modules" {
fbbc275b 448 /* Helpserv is a help-queue tracker module for your #support channels, if
449 * they are busy. It issues users tickets, and tracks the next available helper.
450 */
d76ed9a9 451 "helpserv" {
452 // The description/fullname field
fbbc275b 453 "description" "Help Queue Manager"; // (for whois)
454
d76ed9a9 455 // HelpServ bots log all of their requests to this file, with
456 // details on when they were opened, closed, their contents,
457 // helper, etc. The file is written in saxdb format for easy
458 // parsing by external programs. Please note that you cannot
fbbc275b 459 // use ?set to change this value while x3 is running.
d76ed9a9 460 "reqlogfile" "helpservreq.log";
fbbc275b 461
d76ed9a9 462 // How long should a helpserv be inactive (no requests assigned)
463 // before it can be unregistered by the expire command?
464 "expiration" "60d";
465 };
fbbc275b 466 /* SockCheck reads sockcheck.conf and can do configurable scans
467 * to probe for open relays in an attempt to stop drones from using
468 * the network. DO NOT enable this unless you have permission from
469 * your ISP.. the probes will show up as attacks on everyones firewalls
470 * and you will get a lot of complaints.
471 */
d76ed9a9 472 "sockcheck" {
fbbc275b 473 // disabling this hopefully
474 "max_sockets" "0"; // 64 is a good # of concurrent clients to be checked
d76ed9a9 475 "max_read" "1024"; // don't read more than 1024 bytes from any client
fbbc275b 476 "gline_duration" "1d"; // issue G-lines lasting one hour
d76ed9a9 477 "max_cache_age" "60"; // only cache results for 60 seconds
fbbc275b 478 "address" "192.168.1.10"; // do proxy tests from this address
d76ed9a9 479 };
fbbc275b 480 /* Snoop sends connect, quit, join, and part messages for every user
481 * on the network, and helps in finding drones. Put it somewhere secure
482 * so your users privacy is honored.
483 */
d76ed9a9 484 "snoop" {
485 // Where to send snoop messages?
fbbc275b 486 "channel" "#MrSnoopy";
487 // Which bot?
488 "bot" "O3";
d76ed9a9 489 // Show new users and joins from net joins? (off by default)
490 "show_bursts" "0";
491 };
ec311f39 492 /* Track works just like Snoop except it only sends events for users
493 * who have been specified
494 */
495 "track" {
496 // What to track by default?
497 "snomask" "nick,join,part,kick,new,del,auth,chanmode,umode";
498 // Where to send snoop messages?
499 "channel" "#MrPeanuts";
500 // Which bot?
501 "bot" "O3";
502 // Show new users and joins from net joins? (off by default)
503 "show_bursts" "0";
504 };
fbbc275b 505 /* Memoserv lets users send messages to other users accounts.
506 */
d76ed9a9 507 "memoserv" {
fbbc275b 508 "bot" "MemoServ";
d76ed9a9 509 "message_expiry" "30d"; // age when messages are deleted; set
510 // to 0 to disable message expiration
511 };
512};
513
514"policers" {
515 "commands-luser" {
516 "size" "5";
517 "drain-rate" "0.5";
518 };
519};
520
521"rlimits" {
522 "data" "50M";
523 "stack" "6M";
524 "vmem" "100M";
525};
526
fbbc275b 527/* MAIL (if and how X3 sends mail ) *********************************
528 * Mainly Authserv/Nickserv send mail, See the Nickserv
529 * section for additional mail settings also.
530 */
d76ed9a9 531"mail" {
fbbc275b 532 "enable" "1";
d76ed9a9 533 "mailer" "/usr/sbin/sendmail";
fbbc275b 534 // OR Afternet uses a custom script to keep the services IP hidden:
535 // "mailer" "/home/x3user/x3/sendmail.sh";
536 "from_address" "supportrobot@afternet.org";
537 "extra_headers" ("AfterNET-Services: x3");
538 "body_prefix_first" ("Welcome to AfterNET, looks like this is your first email from us.");
539 "body_prefix" ("AfterNET Support - User and Channel registration system");
540 "body_suffix_first" ("", "AfterNET IRC Network", "http://www.afternet.org");
541 "body_suffix" ("", "AfterNET IRC Network", "http://www.afternet.org", "support@afternet.org","irc://irc.afternet.org/afternet");
d76ed9a9 542};
543
fbbc275b 544/* DBS (Databases) *************************************************
545 * let you configure what databases go in what files.
546 *
547 * This default sets up everything in one big x3.db file.
548 *
549 * If you leave this section out, each database will be in its own file,
550 * and they will be written out every half hour.
551 */
d76ed9a9 552"dbs" {
553 // This just illustrates how you can jam every database into one huge ("mondo") file.
554 "ChanServ" { "mondo_section" "ChanServ"; };
555 "gline" { "mondo_section" "gline"; };
d914d1cb 556 "shun" { "mondo_section" "shun"; };
d76ed9a9 557 "Global" { "mondo_section" "Global"; };
558 "HelpServ" { "mondo_section" "HelpServ"; };
559 "modcmd" { "mondo_section" "modcmd"; };
560 "NickServ" { "mondo_section" "NickServ"; };
561 "OpServ" { "mondo_section" "OpServ"; };
562 "sendmail" { "mondo_section" "sendmail"; };
63c95a47 563 "SpamServ" { "mondo_section" "SpamServ"; };
d76ed9a9 564
565 // These are the options if you want a database to be in its own file.
566 "mondo" {
567 // Where to put it?
ceafd592 568 "filename" "x3.db";
d76ed9a9 569 // How often should it be saved?
570 // (You can disable automatic saves by setting this to 0.)
571 "frequency" "30m";
572 };
573};
574
fbbc275b 575/* LOGS (If and how X3 logs data ) ***********************************
576 * LOGS sets up where X3 logs various kinds of info to.
577 */
d76ed9a9 578"logs" {
579 // Two kinds of items exist in this section.
580
581 // One is a facility configuration subsection. These have the
582 // name of a log facility (one of "ChanServ", "Global",
ceafd592 583 // "HelpServ", "NickServ", "OpServ", "ProxyCheck", or "x3") and
584 // the value is a subsection. The "x3" log facility is a
d76ed9a9 585 // catch-all/fall-back facility.
ceafd592 586 "x3" {
d76ed9a9 587 // The "max_age" option says how long to keep log audit entries.
fbbc275b 588 "max_age" "10h";
d76ed9a9 589 // The "max_count" option says how many log audit entries to keep.
590 "max_count" "1024";
591 // Audit (command tracking) entries are discarded if they exceed
592 // either limit: for example, if entry 500 is 10 minutes old, it
593 // will be discarded next time any audit command is logged.
594 };
595
596 // The other kind of item is a target list. The name of each is a
597 // description of facility-and-severity combinations, and the value
598 // is a string (or list of strings) that describe where matching
599 // events should be logged. As a special case, the facility * will
600 // specify how to log events regardless of their true facility, and
601 // the severity * will match all severities for a facility.
602 // Log targets use a psuedo-URI syntax: one of "file:filename",
603 // "std:[out|err|n]" where n is a valid file descriptor, or
604 // "irc:#channel" (nicknames or server masks can be used instead
605 // of channel names, but should be used with care).
606 // The severity is one of "replay", "debug", "command", "info",
607 // "override", "staff", "warning", "error", or "fatal".
608 // WARNING: If any severity except "replay" for a facility is left
609 // unspecified, it will use the default target (for example,
610 // "file:chanserv.log"). For "replay" severity, you must ALWAYS
611 // list a target to log it -- this is because it is very rarely
612 // useful.
613 "*.*" ("std:out", "file:everything.log"); // does NOT suppress any defaults
fbbc275b 614 "*.override,error,fatal" "irc:#TheOps"; // report all uses of staff commands
615 "*.staff" "irc:#MrSnoopy"; // report all uses of staff commands
d76ed9a9 616 "ChanServ.*" "file:chanserv.log"; // duplicates the default behavior
617 "ProxyCheck.*" (); // stop it from logging anything
618};