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