1 // services configuration file (example)
2 /* It allows two kinds of comments. Whitespaces between tokens are
3 * ignored. All strings (even if they're just numbers) MUST be
4 * enclosed in double quotes. There must be a semicolon after every
8 // The "uplinks" section describes what servers we can possibly link
9 // to. Each subsection describes one server.
12 // IP address and port the server listens on
15 // What password should we send when we connect?
16 "password" "passwordtoconnect";
17 // What password should we require our peer to send?
18 // (If it is blank, we do not require a specific password.)
19 "their_password" "passwordtorequire";
21 // How many times should we try to connect before giving up?
23 // What IP should we bind to?
24 // If you do not specify bind_address, the default is used.
25 // "bind_address" "192.168.0.10"; // use this ip to link
28 /* unused-uplink is just an example to show you how you can
29 * define more than one uplink (and how you can disable one or
34 "password" "passwordtoconnect";
35 "their_password" "passwordtorequire";
36 // If "enabled" is 0, we will not try to use this uplink.
42 // The "services" section configures the services that make up srvx.
46 // If you want to by have *@* as the default hostmask, set
47 // default_hostmask. This is discouraged for security reasons.
48 // "default_hostmask" "1";
49 // do we warn users when someone new auths to their account?
50 "warn_clone_auth" "1";
51 // what is the default maxlogins value?
52 "default_maxlogins" "2";
53 // what is the absolute maxlogins value?
54 "hard_maxlogins" "10";
55 // This names a file that contains easily guessed passwords.
56 // It always contains "password", "<password>" and the user's
58 "dict_file" "/usr/share/dict/words";
59 // Minimum number of various types of characters permitted in
61 "password_min_length" "4";
62 "password_min_digits" "1";
63 "password_min_upper" "0";
64 "password_min_lower" "0";
65 // What should valid account and nicks look like?
66 // If valid_nick_regex is omitted, valid_account_regex is used
67 // for both nicks and accounts.
68 // These look funny because "[][-]" is the only way to write the
69 // character class containing the characters ']', '[' and '-'.
70 "valid_account_regex" "^[][_a-z^`'{}|-][][_a-z0-9^`'{}|-]*$";
71 "valid_nick_regex" "^[-_a-z][-_a-z0-9]*$";
73 // Should nick ownership be disabled?
75 // One account may only own this many nicks.
76 "nicks_per_account" "4";
77 // Send a warning when someone uses a registered nick?
78 "warn_nick_owned" "0";
79 // What to do when someone uses the NickServ "reclaim" command?
80 // This can be one of "none", "warn", "svsnick", or "kill", but
81 // stock ircu does not support svsnick -- you need Bahamut or a
82 // patch for ircu. no, don't ask srvx developers for the patch.
83 "reclaim_action" "none";
84 // What (else) to do when someone uses a registered nick?
85 // This can be anything "reclaim_action" can be, but it makes
86 // more sense to use the "warn_nick_owned" instead of "warn".
87 "auto_reclaim_action" "none";
88 // How long to wait before doing the auto_reclaim_action?
89 // This is ignored if "auto_reclaim_action" is "none".
90 "auto_reclaim_delay" "0";
92 // access control for who can change account flags
95 "lc_h" "800"; // specifically lower case h
96 "uc_H" "800"; // .. and upper case H
100 // and for who can change epithets for staff
101 "set_epithet_level" "800";
102 // what opserv access level do you need to set somebody else's level?
103 "modoper_level" "850";
105 // how often should accounts be expired?
106 "account_expire_freq" "1d";
107 // how long until an account with access to any channel(s) expires?
108 "account_expire_delay" "35d";
109 // how long until an account with no access to any channels expires?
110 "nochan_account_expire_delay" "14d";
111 /* "require_qualified" has been removed. It is now
112 * integrated into the modcmd command authorization
113 * and dispatch mechanism. "/msg OpServ help modcmd"
116 // If somebody keeps guessing passwords incorrectly, do we gag them?
117 "autogag_enabled" "1";
118 "autogag_duration" "30m";
123 // How to integrate with email cookies?
124 "email_enabled" "0"; // if set, /mail/enable MUST be set too
125 "email_required" "0"; // ignored unless email_enabled is non-zero
126 "cookie_timeout" "1d"; // how long before we expire cookies?
127 "accounts_per_email" "1"; // you may want to increase this; or not
128 "email_search_level" "600"; // minimum OpServ level to search based on email address
129 "email_visible_level" "800"; // minimum OpServ level to see somebody's email address
131 "set_title_level" "900"; // minimum OpServ level to set a title on an account
132 "set_fakehost_level" "1000"; // minimum OpServ level to set a freeform fakehost on an account
133 "titlehost_suffix" "example.net"; // suffix to use with automatically generated fakehosts
138 // what channel should opserv send debug output to?
139 "debug_channel" "#opserv";
140 "debug_channel_modes" "+tinms";
141 // where to send general alerts (e.g. flood alerts)?
142 "alert_channel" "#ircops";
143 "alert_channel_modes" "+tns";
144 // who to tell about staff auths?
145 "staff_auth_channel" "#opserv";
146 "staff_auth_channel_modes" "+tinms";
147 // how many clones to allow from an untrusted host?
149 // how long of a g-line should be issued if the max hosts is exceeded?
150 "clone_gline_duration" "1h";
151 // how long to g-line for ?block (or, by default, for ?trace gline)?
152 "block_gline_duration" "1h";
153 // how long to keep an illegal channel locked down (seconds)?
154 "purge_lock_delay" "60";
155 // channel join flood policer params?
160 // automatically moderate join flooded channels?
161 "join_flood_moderate" "1";
162 // Don't moderate and warn channels unless there are more than
163 // join_flood_moderate_threshold users in the channel. the
164 // value 0 will disable the threshold.
165 "join_flood_moderate_threshold" "50";
166 // new user flood policer params
171 // character to make OpServ pay attention to you
176 // You may disable a service by removing its "nick" config item.
177 // That means: SERVICES WILL ONLY WORK IF YOU DEFINE THEIR NICK.
178 // (This is changed relative srvx-1.0.x, which would use default
179 // unless you specified ".disabled".)
181 // how long should a person be unseen before resending infoline?
183 // maximum greeting length
184 "max_greetlen" "120";
185 // maximum users in a channel userlist
186 "max_chan_users" "512";
187 // maximum bans on a channel banlist
188 "max_chan_bans" "512";
189 // If DynLimit is on and there are N users in the channel, ChanServ will
190 // try to keep the limit at N+<adjust_threshold>.
191 "adjust_threshold" "15";
192 // .. but ChanServ will only increment or decrement the limit this often.
194 // How often to look for channels that have expired?
195 "chan_expire_freq" "3d";
196 // How long is a channel unvisited (by masters or above) before it can be expired?
197 "chan_expire_delay" "30d";
198 // character to make ChanServ pay attention to you
200 // what !set options should we show when user calls "!set" with no arguments?
201 "set_shows" ("DefaultTopic", "TopicMask", "Greeting", "UserGreeting", "Modes", "PubCmd", "StrictOp", "AutoOp", "EnfModes", "EnfTopic", "Protect", "Toys", "Setters", "TopicRefresh", "CtcpUsers", "CtcpReaction", "Mod", "Game",
202 "Voice", "UserInfo", "DynLimit", "TopicSnarf", "NoDelete");
204 // A list of !8ball responses
205 "8ball" ("Not a chance.",
208 "Could be, could be.");
209 // channel(s) that support helpers must be in to be helping
210 // if this is a list, any one by itself will do
211 "support_channel" ("#support", "#registration");
212 // maximum number of channels owned by one account before FORCE is required
214 // how long between automatic topic refreshes with TopicRefresh 0
215 "refresh_period" "3h";
216 // what should !access say for various staff?
217 "irc_operator_epithet" "a megalomaniacal power hungry tyrant";
218 "network_helper_epithet" "a wannabe tyrant";
219 "support_helper_epithet" "a wannabe tyrant";
220 // what should a newly registered channel get as its modes?
221 "default_modes" "+nt";
222 // minimum opserv access to set, clear or override nodelete setting?
223 "nodelete_level" "1";
228 // should users get community announcements by default or not?
229 "announcements_default" "on";
233 // The modules section gives configuration information to optional modules.
236 // The description/fullname field
237 "description" "Help Queue Manager";
238 // HelpServ bots log all of their requests to this file, with
239 // details on when they were opened, closed, their contents,
240 // helper, etc. The file is written in saxdb format for easy
241 // parsing by external programs. Please note that you cannot
242 // use ?set to change this value while srvx is running.
243 "reqlogfile" "helpservreq.log";
244 // How long should a helpserv be inactive (no requests assigned)
245 // before it can be unregistered by the expire command?
249 "max_sockets" "64"; // allow 64 concurrent clients to be checked
250 "max_read" "1024"; // don't read more than 1024 bytes from any client
251 "gline_duration" "1h"; // issue G-lines lasting one hour
252 "max_cache_age" "60"; // only cache results for 60 seconds
253 // "address" "192.168.0.10"; // do proxy tests from this address
256 // Where to send snoop messages?
257 "channel" "#wherever";
260 // Show new users and joins from net joins? (off by default)
265 "message_expiry" "30d"; // age when messages are deleted; set
266 // to 0 to disable message expiration
284 "hostname" "localhost.domain";
285 "description" "Network Services";
286 "network" "GenericNET";
287 "hidden_host" "users.Generic.NET"; // set this if you enabled ircd/Undernet's +x mode
288 /* hidden_host should match the F:HIDDEN_HOST: line in your ircu's ircd.conf;
289 * srvx does not set the host suffix for users, but must know it when making
290 * things like bans, where it should not show the user's real hostname. */
291 "numeric" "10"; // hint: If you get collisions on link, CHANGE THIS.
292 "max_users" "256"; // You can save a little memory by setting this to a lower value.
293 "force_n2k" "1"; // Use extended (5-digit) numnick for self, even if 3 are possible.
296 "max_cycles" "30"; // max uplink cycles before giving up
297 // Admin information is traditionally: location, location, email
298 "admin" ("IRC Network", "Gotham City, GO", "Mr Commissioner <james.gordon@police.gov>");
301 // controlling how services (mostly NickServ) send mail
303 // These options are the defaults.
305 "mailer" "/usr/sbin/sendmail";
306 "from_address" "admin@poorly.configured.server";
308 "extra_headers" ("X-Ereet-Services: srvx r reet");
309 "body_prefix_first" ("Welcome to our network. This prefix is used whenever srvx thinks this may be the first time we send email to your address.");
310 "body_prefix" ("This goes before the mail text.", "Each string here is treated as a separate \"paragraph\" for line wrapping.");
311 "body_suffix_first" ("We care a lot about spam. If you did not request this email, bitch and moan loudly at our opers, and tell our ISP to gank our connection.");
312 "body_suffix" ("PLEASE DO NOT BE ALARMED. CALMLY BOARD THE AIRCRAFT, STRAP YOUR ARMS ACROSS YOUR BODY, AND JUMP THE HELL OUT OF THE PLANE.", "Yaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatta!");
315 // New section in srvx-1.2 to control database locations, etc.
316 // If you leave this section out, each database will be in its own file,
317 // and they will be written out every half hour.
319 // This just illustrates how you can jam every database into one huge ("mondo") file.
320 "ChanServ" { "mondo_section" "ChanServ"; };
321 "gline" { "mondo_section" "gline"; };
322 "Global" { "mondo_section" "Global"; };
323 "HelpServ" { "mondo_section" "HelpServ"; };
324 "modcmd" { "mondo_section" "modcmd"; };
325 "NickServ" { "mondo_section" "NickServ"; };
326 "OpServ" { "mondo_section" "OpServ"; };
327 "sendmail" { "mondo_section" "sendmail"; };
329 // These are the options if you want a database to be in its own file.
332 "filename" "srvx.db";
333 // How often should it be saved?
334 // (You can disable automatic saves by setting this to 0.)
339 // New section in srvx-1.2 to control log destinations.
340 // If you leave this section out, each service (technically, each log
341 // facility) will be in its own file, just like before.
343 // Two kinds of items exist in this section.
345 // One is a facility configuration subsection. These have the
346 // name of a log facility (one of "ChanServ", "Global",
347 // "HelpServ", "NickServ", "OpServ", "ProxyCheck", or "srvx") and
348 // the value is a subsection. The "srvx" log facility is a
349 // catch-all/fall-back facility.
351 // The "max_age" option says how long to keep log audit entries.
353 // The "max_count" option says how many log audit entries to keep.
355 // Audit (command tracking) entries are discarded if they exceed
356 // either limit: for example, if entry 500 is 10 minutes old, it
357 // will be discarded next time any audit command is logged.
360 // The other kind of item is a target list. The name of each is a
361 // description of facility-and-severity combinations, and the value
362 // is a string (or list of strings) that describe where matching
363 // events should be logged. As a special case, the facility * will
364 // specify how to log events regardless of their true facility, and
365 // the severity * will match all severities for a facility.
366 // Log targets use a psuedo-URI syntax: one of "file:filename",
367 // "std:[out|err|n]" where n is a valid file descriptor, or
368 // "irc:#channel" (nicknames or server masks can be used instead
369 // of channel names, but should be used with care).
370 // The severity is one of "replay", "debug", "command", "info",
371 // "override", "staff", "warning", "error", or "fatal".
372 // WARNING: If any severity except "replay" for a facility is left
373 // unspecified, it will use the default target (for example,
374 // "file:chanserv.log"). For "replay" severity, you must ALWAYS
375 // list a target to log it -- this is because it is very rarely
377 "*.*" ("std:out", "file:everything.log"); // does NOT suppress any defaults
378 "*.override,staff" "irc:#big-brother"; // report all uses of staff commands
379 "ChanServ.*" "file:chanserv.log"; // duplicates the default behavior
380 "ProxyCheck.*" (); // stop it from logging anything