-// services configuration file (example)
-/* It allows two kinds of comments. Whitespaces between tokens are
- * ignored. All strings (even if they're just numbers) MUST be
- * enclosed in double quotes. There must be a semicolon after every
- * key/value pair.
+/* *****************************************************************
+ * X3 Services Example Configuration file.
+ *
+ * Copy it to your x3 runtime dir, and edit to taste.
+ *
+ * This file allows two kinds of comments. Whitespaces between
+ * tokens are ignored. All strings (even if they're just numbers)
+ * MUST be enclosed in double quotes. There must be a semicolon
+ * after every * key/value pair.
*/
-// The "uplinks" section describes what servers we can possibly link
-// to. Each subsection describes one server.
+/* UPLINKS (servers we connect to) *********************************
+ * Each subsection describes one server. X3 will try to connect to
+ * each in turn maxtries times, and then will quit.
+ */
"uplinks" {
- "private-network" {
+ // This first entry connects to an ircd on teh same server an X3..
+ "Hub" { // This can be any string, just used here for your conveniance
+ "address" "127.0.0.1"; // The IP address of the server
+ "port" "8888"; // What TCP port to connect to
+ "password" "laoo,rpe"; // Both of these passwords must match
+ "their_password" "laoo,rpe"; // the one in the ircd C line for X3.
+ "enabled" "1"; // Set to 0 to disable connecting to this server
+ "max_tries" "10"; // How many times to attemt reconnect before quitting
+ "bind_address" "127.0.0.1"; // LOCAL IP address we want to connect FROM
+ };
+ // This next one connects to an ircd on another server
+ "Hub-west" {
// IP address and port the server listens on
- "address" "10.0.0.3";
- "port" "6660";
- // What password should we send when we connect?
- "password" "passwordtoconnect";
- // What password should we require our peer to send?
- // (If it is blank, we do not require a specific password.)
- "their_password" "passwordtorequire";
- "enabled" "1";
- // How many times should we try to connect before giving up?
- "max_tries" "3";
- // What IP should we bind to?
- // If you do not specify bind_address, the default is used.
- // "bind_address" "192.168.0.10"; // use this ip to link
+ "address" "192.168.234.123"; // IP of remote server
+ "port" "8888";
+ "password" "ekrpat"; // C line passwords
+ "their_password" "ekrpat"; // Set same as above
+ "enabled" "0"; // Set this to 1 to use this server..
+ "max_tries" "1";
+ "bind_address" "192.168.1.10";
};
+};
- /* unused-uplink is just an example to show you how you can
- * define more than one uplink (and how you can disable one or
- * more of them.) */
- "unused-uplink" {
- "address" "10.0.0.4";
- "port" "6660";
- "password" "passwordtoconnect";
- "their_password" "passwordtorequire";
- // If "enabled" is 0, we will not try to use this uplink.
- "enabled" "0";
- "max_tries" "3";
- };
+/* SERVER (Details about our existance) **********************************
+ */
+"server" {
+ "hostname" "X3.AfterNET.Services"; // The servers name. (Use this in the ircd's C line)
+ "description" "AfterNET Network Services"; // Shows up in /links.
+ "network" "AfterNET";
+ "hidden_host" "Users.AfterNET.Org"; // set this if you enabled Nefarious' +x mode
+ /* hidden_host should match the F:HIDDEN_HOST: line in your ircu's ircd.conf;
+ * x3 does not set the host suffix for users, but must know it when making
+ * things like bans, where it should not show the user's real hostname. */
+ "numeric" "51"; // hint: If you get collisions on link, CHANGE THIS.
+ "type" "4"; // Only change this to 5 if you are using Nefarious 0.5.0 off SVN
+ "max_users" "256"; // You can save a little memory by setting this to a lower value.
+ "force_n2k" "1"; // Use extended (5-digit) numnick for self, even if 3 are possible.
+ "ping_freq" "60";
+ "ping_timeout" "90";
+ "max_cycles" "30"; // max uplink cycles before giving up
+ // Admin information is traditionally: location, location, email
+ // This shows up on a /admin x3.afternet.services command.
+ "admin" (
+ "AfterNET IRC Network",
+ "www.afternet.org",
+ "Support Staff <support@afternet.org>"
+ );
+ /* extended_accounts -
+ * enable this for nefarious 0.4.x and higher. Sends 'AC R nick account'instead of
+ * 'AC nick account' and allows for renames etc. */
+ "extended_accounts" "1";
+ /* the following two settings are for ircu's HEAD_IN_SAND features, and are equivelent to
+ * the F: lines in ircu's ircd.conf. both can be disabled by commenting them out. */
+ //"his_servername" "*.AfterNET.org"; // hidden server name, shown in remote /whois requests
+ //"his_servercomment" "AfterNET IRC Network";
};
-// The "services" section configures the services that make up X3.
+/* SERVICES (Bot nicknames) *******************************************
+ * Each section describes one service nickname and the details of that
+ * bot's features
+ * You may disable a service by commenting out its "nick" config item.
+ */
"services" {
+ /* Nickserv is the bot you register with and auth to.
+ * Afternet uses the name "Authserv" without the nickname reservation
+ * features enabled. Some nets call it Nickserv and configure it to
+ * reserve nicks.
+ */
"nickserv" {
- "nick" "NickServ";
- // What user modes do you want this service to have? Please keep in
- // mind which ircd software you are using here, and that all of the
- // services need to be at least +o.
- // "modes" "+iok";
- // If you want to by have *@* as the default hostmask for all
- // new accounts, set default_hostmask. This is discouraged
- // for security reasons.
- // "default_hostmask" "1";
+ "nick" "AuthServ"; // The bots nick on IRC
+
+ // If you want to have *@* as the default hostmask, set
+ // default_hostmask. I highly reccomend this, and its required
+ // for login-on-connect to work.
+ "default_hostmask" "1";
+
// do we warn users when someone new auths to their account?
- "warn_clone_auth" "1";
- // what is the default maxlogins value?
- "default_maxlogins" "2";
- // what is the absolute maxlogins value?
+ "warn_clone_auth" "1"; // -X3- warning: foobar has authed to your account
+
+ // default max number of logins allowed on new accounts. Users can set it
+ // to something different using authserv commands.
+ "default_maxlogins" "3";
+
+ // hard_maxlogins is the ammount the user cant override.
"hard_maxlogins" "10";
+
// This names a file that contains easily guessed passwords.
// It always contains "password", "<password>" and the user's
// account name.
- "dict_file" "/usr/share/dict/words";
+ // uncomment if you have a dict file.
+ //"dict_file" "/usr/share/dict/words";
+
// Minimum number of various types of characters permitted in
- // a password.
+ // a password. Authserv will enforce these.
"password_min_length" "4";
- "password_min_digits" "1";
+ "password_min_digits" "0";
"password_min_upper" "0";
"password_min_lower" "0";
+
// What should valid account and nicks look like?
// If valid_nick_regex is omitted, valid_account_regex is used
// for both nicks and accounts.
- // These look funny because "[][-]" is the only way to write the
- // character class containing the characters ']', '[' and '-'.
- "valid_account_regex" "^[][_a-z^`'{}|-][][_a-z0-9^`'{}|-]*$";
+ // Be very carefull changing these. This default is
+ // basically limited to letters, numbers, dash and underscore.
+ "valid_account_regex" "^[-_a-z0-9A-Z]{2,15}$";
"valid_nick_regex" "^[-_a-z][-_a-z0-9]*$";
- // Should nick ownership be disabled?
- "disable_nicks" "0";
- // One account may only own this many nicks.
- "nicks_per_account" "4";
- // Send a warning when someone uses a registered nick?
- "warn_nick_owned" "0";
- // What to do when someone uses the NickServ "reclaim" command?
- // This can be one of "none", "warn", "svsnick", or "kill", but
- // stock ircu does not support svsnick -- you need Bahamut or a
- // patch for ircu. no, don't ask X3 developers for the patch.
- "reclaim_action" "none";
- // What (else) to do when someone uses a registered nick?
- // This can be anything "reclaim_action" can be, but it makes
- // more sense to use the "warn_nick_owned" instead of "warn".
- "auto_reclaim_action" "none";
- // How long to wait before doing the auto_reclaim_action?
- // This is ignored if "auto_reclaim_action" is "none".
- "auto_reclaim_delay" "0";
+ // "Nickserv" networks, set this to 0. "Authserv" networks,
+ // set it to 1.
+ "disable_nicks" "1";
+ // One account may only own this many nicks.
+ "nicks_per_account" "4";
+
+ // Send a warning when someone uses a registered nick?
+ "warn_nick_owned" "0";
+
+ // What to do when someone uses the NickServ "reclaim" command?
+ // This can be one of "none", "warn", "svsnick", or "kill", but
+ // stock ircu does not support svsnick -- you need Bahamut or
+ // nefarious.
+ "reclaim_action" "none";
+
+ // What (else) to do when someone uses a registered nick?
+ // This can be anything "reclaim_action" can be, but it makes
+ // more sense to use the "warn_nick_owned" instead of "warn".
+ "auto_reclaim_action" "none";
+
+ // How long to wait before doing the auto_reclaim_action?
+ // This is ignored if "auto_reclaim_action" is "none".
+ "auto_reclaim_delay" "0";
// access control for who can change account flags
+ // See /msg authserv help account flags
"flag_levels" {
- "g" "800";
- "lc_h" "800"; // specifically lower case h
- "uc_H" "800"; // .. and upper case H
- "S" "999";
- "b" "1";
+ "g" "800"; // God mode
+ "lc_h" "800"; // support helper (lower case h)
+ "uc_H" "800"; // net helper (upper case H)
+ "S" "999"; // O3 access suspended
+ "b" "1"; // Bot (not sure what it does tho)
};
+
// and for who can change epithets for staff
+ // epithets show up in /whois as another line about the person.
"set_epithet_level" "800";
+
// what opserv access level do you need to set somebody else's level?
"modoper_level" "850";
// how often should accounts be expired?
"account_expire_freq" "1d";
+
// how long until an account with access to any channel(s) expires?
- "account_expire_delay" "35d";
+ "account_expire_delay" "900d";
+
// how long until an account with no access to any channels expires?
- "nochan_account_expire_delay" "14d";
- /* "require_qualified" has been removed. It is now
- * integrated into the modcmd command authorization
- * and dispatch mechanism. "/msg OpServ help modcmd"
- * for details.
- */
+ "nochan_account_expire_delay" "365d";
+
// If somebody keeps guessing passwords incorrectly, do we gag them?
"autogag_enabled" "1";
"autogag_duration" "30m";
"size" "5";
"drain-rate" "0.05";
};
+
// How to integrate with email cookies?
- "email_enabled" "0"; // if set, /mail/enable MUST be set too
- "email_required" "0"; // ignored unless email_enabled is non-zero
- "cookie_timeout" "1d"; // how long before we expire cookies?
- "accounts_per_email" "1"; // you may want to increase this; or not
- "email_search_level" "600"; // minimum OpServ level to search based on email address
+ // In order to use mail, mail must be enabled and configured
+ // down below in the mail section of this config file.
+ "email_enabled" "1"; // Allow account verification and password reset by email.
+ "email_required" "1"; // if above is 1, require verification to authenticate.
+ "cookie_timeout" "2d"; // how long before we expire cookies?
+ "accounts_per_email" "1"; // How many people can use the same email account.
+
+ "email_search_level" "600"; // minimum OpServ level to search based on email address (search print email *foo*)
"email_visible_level" "800"; // minimum OpServ level to see somebody's email address
- "sync_log" "1"; // Output password and email changes, plus registration to sync.log
- "set_title_level" "900"; // min opserv level to set a title on an account
- "set_fakehost_level" "1000"; //min opserv level to set a freeform fakehost
- "titlehost_suffix" "AfterNET.Org"; // suffix to use with automatically generated fakehosts
+ "titlehost_suffix" "AfterNET.Org"; // 'USET title' sets a fake hostname of name.title.titlehost on a user.
+ "set_title_level" "900"; // Access to use 'uset title'.
+ "set_fakehost_level" "1000"; //Access to set a freeform fakehost. (uset fakehost)
+
+ // A list of denied words in the fakehosts
+ "denied_fakehost_words" ("sex",
+ "fuck",
+ "asshole");
+ // This is a hacked in feature which exports every account change to a file sync.log. Afternet uses this and
+ // a bunch of custom PHP scripts to make our websites SQL user db the same as authserv, every 5 minutes.
+ // You have to be a pretty handy person with the shell commands and programming to make use of this..
+ "sync_log" "0"; // Log account changes to a file for syncing w/ a website?
+
+ // Nickserv 'style' setting affects .userlist and other outputs.
+ "default_style" "n"; // can be: n = normal, c = clean, or a = advanced.
};
+ /*
+ * OpServ is the bot opers use to do glines, look at info etc.
+ * Afternet uses the nickname "O3" for this as its easier to type.
+ */
"opserv" {
- "nick" "OpServ";
- // What user modes do you want this service to have? Please keep in
- // mind which ircd software you are using here, and that all of the
- // services need to be at least +o.
- // "modes" "+iok";
+ "nick" "O3";
// should use of this service be limited to global opers?
- "privileged" "1";
+ "privileged" "1";
+
// fullname for service
- "description" "Oper Service Bot";
+ "description" "Oper Service Bot"; // (for /whois)
+
// hostname for service; only used if "description" is also set
- "hostname" "dances-all-night-with.x3.net";
- // what channel should opserv send debug output to?
- "debug_channel" "#opserv";
- "debug_channel_modes" "+tinms";
+ "hostname" "X3.AfterNET.Services"; // (for /whois)
+
+ // What channel should opserv send debug output to?
+ // I don't have any idea what debug info goes here. You can configure
+ // debugging logs in the log section to go to any channel.
+ // Probably safest to set to your oper channel.
+ "debug_channel" "#TheOps"; // Bot will join this channel, also.
+ "debug_channel_modes" "+tnOS"; // Modes get set every time X3 starts up
+
// where to send general alerts (e.g. flood alerts)?
- "alert_channel" "#ircops";
- "alert_channel_modes" "+tns";
+ "alert_channel" "#TheOps"; // Bot will join this channel, also.
+ "alert_channel_modes" "+"; // Modes get set every time X3 starts up
+
// who to tell about staff auths?
- "staff_auth_channel" "#opserv";
- "staff_auth_channel_modes" "+tinms";
+ "staff_auth_channel" "#OperServ"; // Bot will join this channel, also.
+ "staff_auth_channel_modes" "+tnOs"; // modes get set every time X3 starts up
+
+ // which channels should all services autojoin?
+ "autojoin_channels" ("#TheOps", "#OperServ");
+
// how many clones to allow from an untrusted host?
- "untrusted_max" "4";
+ // Use this carefully, users with half the # of clones will trigger this
+ // when a server pings out and they reconnect before the old connection is noticed
+ // to be dead by the server.. so set it at about twice the # you want to allow to
+ // avoid false positives.
+ "untrusted_max" "6"; // 3 connections and 3 ghosts, 7th connection causes a gline.
+
// how long of a g-line should be issued if the max hosts is exceeded?
- "clone_gline_duration" "1h";
- // how long to g-line for ?block (or, by default, for ?trace gline)?
- "block_gline_duration" "1h";
+ "clone_gline_duration" "2h"; // durations are smhdmy
+
+ // how long to g-line for ?block (or, by default, for trace gline)?
+ "block_gline_duration" "12h";
+
+ // how long to shun for ?sblock (or, by default, for trace shun)?
+ "block_shun_duration" "12h";
+
+ // When a user joins an illegal channel, O3 joins it and locks it down.
// how long to keep an illegal channel locked down (seconds)?
"purge_lock_delay" "60";
- // channel join flood policer params?
- "join_policer" {
- "size" "20";
- "drain-rate" "1";
- };
- // automatically moderate join flooded channels?
- "join_flood_moderate" "1";
- // Don't moderate and warn channels unless there are more than
- // join_flood_moderate_threshold users in the channel. the
- // value 0 will disable the threshold.
- "join_flood_moderate_threshold" "50";
- // new user flood policer params
- "new_user_policer" {
- "size" "200";
- "drain-rate" "3";
- };
+
+ // The join-flood policer code goes off all the time when a server
+ // goes down (and everyone reconnects) so i don't reccomend using it.
+ // Automatically moderate join flooded channels?
+ "join_flood_moderate" "0";
+ // channel join flood policer params?
+ "join_policer" {
+ "size" "20";
+ "drain-rate" "1";
+ };
+ // Don't moderate and warn channels unless there are more than
+ // join_flood_moderate_threshold users in the channel. the
+ // value 0 will disable the threshold.
+ "join_flood_moderate_threshold" "50";
+ // new user flood policer params
+ "new_user_policer" {
+ "size" "200";
+ "drain-rate" "3";
+ };
+ // Min opserv level needed to set 'silent' glines in trace/addalert
+ // (nefarious only)
+ "silent_level" "700";
};
"chanserv" {
- // You may disable a service by removing its "nick" config item.
- // That means: SERVICES WILL ONLY WORK IF YOU DEFINE THEIR NICK.
- "nick" "ChanServ";
- // What user modes do you want this service to have? Please keep in
- // mind which ircd software you are using here, and that all of the
- // services need to be at least +o.
- // "modes" "+iok";
- // Does your ircd have off-channel services support? Does it have
- // a registered channel mode? Does it support services opping themselves?
- // Bahamut has these things; ircu2.10.11 does not.
- // This setting takes three numerical values:
- // 0 = off
- // 1 = use a registered channel mode, have services op themselves
- // 2 = all of the above, and a channel setting to have ChanServ not
- // idle in the channel
- "off_channel" "0";
+ "nick" "X3";
+
+ // The off_channel setting takes one of three numerical values:
+ // 0 = off
+ // 1 = use a registered channel mode, have services op themselves
+ // 2 = all of the above, and a channel setting to have ChanServ not
+ // idle in the channel
+ // NOTE: +z mode, needed for this to work, is inharently flawed and
+ // will cause desynch, so don't use it IMO -Rubin.
+ "off_channel" "no";
+
+ // Infolines are sent when channel users join the channel. Users set them with USET INFO in X3.
// how long should a person be unseen before resending infoline?
"info_delay" "120";
+
+ // Greetings can be configured by the channel manager(s) and sent to users who join the channel.
+ // Many people (rightly) find this annoying, so keep them short.
// maximum greeting length
- "max_greetlen" "200";
+ "max_greetlen" "120";
+
// maximum users in a channel userlist
"max_chan_users" "512";
// maximum bans on a channel banlist
"max_chan_bans" "512";
// maximum length of a user's infoline
- "max_userinfo_length" "400";
- // If DynLimit is on and there are N users in the channel, ChanServ will
- // try to keep the limit at N+<adjust_threshold>.
- "adjust_threshold" "15";
+ "max_userinfo_length" "400"; // for god sake lower this. 80 seems good.
+
+ // If SET DynLimit is on and there are N users in the channel, ChanServ will
+ // try to keep the limit at N+<adjust_threshold>. This makes the channel
+ // somewhat protected from clone attacks.
+ "adjust_threshold" "5";
// .. but ChanServ will only increment or decrement the limit this often.
- "adjust_delay" "30";
+ "adjust_delay" "30"; // (seconds)
+
+ // How often to look for expired bans?
+ "ban_timeout_freq" "2m";
+
// How often to look for channels that have expired?
- "chan_expire_freq" "3d";
+ "chan_expire_freq" "1d";
+
// How long is a channel unvisited (by masters or above) before it can be expired?
"chan_expire_delay" "30d";
+
// what !set options should we show when user calls "!set" with no arguments?
- "set_shows" ("DefaultTopic", "TopicMask", "Greeting", "UserGreeting", "Modes", "PubCmd", "InviteMe", "StrictOp", "AutoOp", "EnfModes", "EnfTopic", "TopicSnarf", "UserInfo", "GiveVoice", "GiveOps", "EnfOps", "Setters", "CtcpUser", "CtcpReaction", "Protect", "Toys", "DynLimit", "NoDelete");
-
+ "set_shows" ("DefaultTopic", "TopicMask", "Greeting", "UserGreeting", "Modes", "PubCmd", "InviteMe", "UserInfo", "EnfOps", "EnfModes", "EnfTopic", "TopicSnarf", "Setters", "CtcpReaction", "Voice", "Protect", "Toys", "DynLimit", "NoDelete");
+
// A list of !8ball responses
- "8ball" ("Not a chance.",
- "In your dreams.",
+ "8ball" (
+ "Are you out of your MIND?",
+ "It won't happen, not a chance, definitely no.",
+ "Outlook seems bleak.",
+ "My sources say no.",
+ "You bet!",
+ "It is decidedly so.",
+ "It's hard to be sure.",
+ "Most definitely.",
+ "In your dreams...",
+ "If the prophets wish it...",
+ "Forecast hazy, try again later.",
+ "I don't know!",
"Absolutely!",
- "Could be, could be.");
+ "Never.",
+ "Yes.",
+ "No.",
+ "Maybe.");
+
// channel(s) that support helpers must be in to be helping
// if this is a list, any one by itself will do
- "support_channel" ("#support", "#registration");
- // maximum number of channels owned by one account before FORCE is required
- "max_owned" "5";
- // how long between automatic topic refreshes with TopicRefresh 0
- "refresh_period" "3h";
+ "support_channel" ("#Operations", "#Help");
+
+ // maximum number of channels a user may have. ( FORCE can override )
+ "max_owned" "2";
+
+ // how long between automatic topic and userlist refreshes with TopicRefresh/Resync
+ "refresh_period" "10h";
+
// what should !access say for various staff?
- "irc_operator_epithet" "a megalomaniacal power hungry tyrant";
- "network_helper_epithet" "a wannabe tyrant";
- "support_helper_epithet" "a wannabe tyrant";
+ "irc_operator_epithet" "AfterNET IRC Operator";
+ "network_helper_epithet" "AfterNET Network Helper";
+ "support_helper_epithet" "AfterNET Support Helper";
+
// what should a newly registered channel get as its modes?
"default_modes" "+nt";
- // minimum opserv access to set, clear or override nodelete setting?
+
+ // minimum opserv access to set, clear or override channel nodelete setting?
"nodelete_level" "1";
- // how long before a new channel owner can give ownership away?
- "giveownership_timeout" "1w";
+
+ // when does god mode time out?
+ "god_timeout" "30m";
};
+ /* Global is a service bot that can send out network-wide messages for you. I
+ * like to set ours' nick to 'AfterNET', but some people use 'Global'
+ */
"global" {
"nick" "Global";
- // What user modes do you want this service to have? Please keep in
- // mind which ircd software you are using here, and that all of the
- // services need to be at least +o.
- // "modes" "+iok";
// should users get community announcements by default or not?
+ // community announcements are a type of global that users may
+ // opt into (or out of, depending on this setting)
"announcements_default" "on";
};
+
+
+ "spamserv" {
+ // You may enable this service by removing the double slashes from the config
+ // item. To disable it again add the double slashes back.
+ // "nick" "SpamServ";
+
+ // debug channel
+ "debug_channel" "#operserv";
+
+ // url of the network rules. if you don't have network rules, remove this key.
+ "network_rules" "http://www.afternet.org/aup";
+
+ // trigger for spamserv; remove this key to disable the trigger
+ "trigger" "%";
+
+ // ban duration of a short timedban.
+ "short_ban_duration" "15m";
+
+ // ban duration of a long timedban.
+ "long_ban_duration" "1h";
+
+ // duration of a gline. SpamServ will issue it after several violations and a kill.
+ "gline_duration" "1h";
+
+ // users may add "exception_max" exceptions to the list. IRCOps can override "exception_max".
+ "exception_max" "10";
+
+ // minimum & maximum length of an exception.
+ "exception_min_len" "4";
+ "exception_max_len" "12";
+
+ // users may add "badword_max" badwords to the list. IRCOps can override badword_max".
+ "badword_max" "10";
+
+ // minimum & maximum length of an badword.
+ "badword_min_len" "4";
+ "badword_max_len" "12";
+
+ // if someone advertises a channel, which doesn't exist (channel is empty, no users),
+ // SpamServ doesn't punish the user.
+ // enable this setting, if SpamServ has to ignore advertisements of channels, which do not exist.
+ // disable this setting, if SpamServ has to punish the users whenever they advertise.
+ "adv_chan_must_exist" "1";
+
+ // remove all mirc codes from messages before checking for advertisements.
+ // if this setting is disabled and someone spams a url which
+ // contains a bold char, SpamServ doesn't punish him.
+ "strip_mirc_codes" "1";
+
+ // enable this, if SpamServ has to "follow" ChanServ, when a channel moves or merges.
+ // disable it, if it shouldn't be possible to move or merge SpamServ with /msg chanserv move|merge.
+ "allow_move_merge" "1";
+ };
};
-// The modules section gives configuration information to optional modules.
+/* MODULES (optional components) *************************************************
+ * These must be explicitly compiled in (see ./configure --help)
+ * When enabled, they are configured here..
+ */
"modules" {
+ /* Helpserv is a help-queue tracker module for your #support channels, if
+ * they are busy. It issues users tickets, and tracks the next available helper.
+ */
"helpserv" {
// The description/fullname field
- "description" "Help Queue Manager";
+ "description" "Help Queue Manager"; // (for whois)
+
// HelpServ bots log all of their requests to this file, with
// details on when they were opened, closed, their contents,
// helper, etc. The file is written in saxdb format for easy
// parsing by external programs. Please note that you cannot
- // use ?set to change this value while X3 is running.
+ // use ?set to change this value while x3 is running.
"reqlogfile" "helpservreq.log";
+
// How long should a helpserv be inactive (no requests assigned)
// before it can be unregistered by the expire command?
"expiration" "60d";
};
+ /* SockCheck reads sockcheck.conf and can do configurable scans
+ * to probe for open relays in an attempt to stop drones from using
+ * the network. DO NOT enable this unless you have permission from
+ * your ISP.. the probes will show up as attacks on everyones firewalls
+ * and you will get a lot of complaints.
+ */
"sockcheck" {
- "max_sockets" "64"; // allow 64 concurrent clients to be checked
+ // disabling this hopefully
+ "max_sockets" "0"; // 64 is a good # of concurrent clients to be checked
"max_read" "1024"; // don't read more than 1024 bytes from any client
- "gline_duration" "1h"; // issue G-lines lasting one hour
+ "gline_duration" "1d"; // issue G-lines lasting one hour
"max_cache_age" "60"; // only cache results for 60 seconds
- // "address" "192.168.0.10"; // do proxy tests from this address
+ "address" "192.168.1.10"; // do proxy tests from this address
};
+ /* Snoop sends connect, quit, join, and part messages for every user
+ * on the network, and helps in finding drones. Put it somewhere secure
+ * so your users privacy is honored.
+ */
"snoop" {
// Where to send snoop messages?
- "channel" "#wherever";
- // Which bot? If this is not set to your bots nick, X3 will Segfault...
- "bot" "OpServ";
+ "channel" "#MrSnoopy";
+ // Which bot?
+ "bot" "O3";
// Show new users and joins from net joins? (off by default)
"show_bursts" "0";
};
+ /* Track works just like Snoop except it only sends events for users
+ * who have been specified
+ */
+ "track" {
+ // What to track by default?
+ "snomask" "nick,join,part,kick,new,del,auth,chanmode,umode";
+ // Where to send snoop messages?
+ "channel" "#MrPeanuts";
+ // Which bot?
+ "bot" "O3";
+ // Show new users and joins from net joins? (off by default)
+ "show_bursts" "0";
+ };
+ /* Memoserv lets users send messages to other users accounts.
+ */
"memoserv" {
- "bot" "NickServ";
+ "bot" "MemoServ";
"message_expiry" "30d"; // age when messages are deleted; set
// to 0 to disable message expiration
+ "limit" "30" // Max amount of messages a person can get.
};
};
"vmem" "100M";
};
-"server" {
- "hostname" "localhost.domain";
- "description" "Network Services";
- "network" "GenericNET";
- "hidden_host" "users.Generic.NET"; // set this if you enabled ircd/Undernet's +x mode
- /* hidden_host should match the F:HIDDEN_HOST: line in your ircu's ircd.conf;
- * X3 does not set the host suffix for users, but must know it when making
- * things like bans, where it should not show the user's real hostname. */
- "numeric" "10"; // hint: If you get collisions on link, CHANGE THIS.
- "max_users" "256"; // You can save a little memory by setting this to a lower value.
- "force_n2k" "1"; // Use extended (5-digit) numnick for self, even if 3 are possible.
- "ping_freq" "60";
- "ping_timeout" "90";
- "max_cycles" "30"; // max uplink cycles before giving up
- // Admin information is traditionally: location, location, email
- "admin" ("IRC Network", "Gotham City, GO", "Mr Commissioner <james.gordon@police.gov>");
- /* the following two settings are for ircu's HEAD_IN_SAND features, and are equivelent to
- * the F: lines in ircu's ircd.conf. both can be disabled by commenting them out. */
- "his_servername" "*.Generic.NET"; // hidden server name, shown in remote /whois requests
- "his_servercomment" "The Generic, Boring IRC Network";
-};
-
-// controlling how services (mostly NickServ) send mail
+/* MAIL (if and how X3 sends mail ) *********************************
+ * Mainly Authserv/Nickserv send mail, See the Nickserv
+ * section for additional mail settings also.
+ */
"mail" {
- // These options are the defaults.
- "enable" "0";
+ "enable" "1";
"mailer" "/usr/sbin/sendmail";
- "from_address" "admin@poorly.configured.server";
- // These are not :>
- "extra_headers" ("X-Ereet-Services: X3 r reet");
- "body_prefix_first" ("Welcome to our network. This prefix is used whenever X3 thinks this may be the first time we send email to your address.");
- "body_prefix" ("This goes before the mail text.", "Each string here is treated as a separate \"paragraph\" for line wrapping.");
- "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.");
- "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!");
+ // OR Afternet uses a custom script to keep the services IP hidden:
+ // "mailer" "/home/x3user/x3/sendmail.sh";
+ "from_address" "supportrobot@afternet.org";
+ "extra_headers" ("AfterNET-Services: x3");
+ "body_prefix_first" ("Welcome to AfterNET, looks like this is your first email from us.");
+ "body_prefix" ("AfterNET Support - User and Channel registration system");
+ "body_suffix_first" ("", "AfterNET IRC Network", "http://www.afternet.org");
+ "body_suffix" ("", "AfterNET IRC Network", "http://www.afternet.org", "support@afternet.org","irc://irc.afternet.org/afternet");
};
-// If you leave this section out, each database will be in its own file,
-// and they will be written out every half hour.
+/* DBS (Databases) *************************************************
+ * let you configure what databases go in what files.
+ *
+ * This default sets up everything in one big x3.db file.
+ *
+ * If you leave this section out, each database will be in its own file,
+ * and they will be written out every half hour.
+ */
"dbs" {
// This just illustrates how you can jam every database into one huge ("mondo") file.
"ChanServ" { "mondo_section" "ChanServ"; };
"gline" { "mondo_section" "gline"; };
+ "shun" { "mondo_section" "shun"; };
"Global" { "mondo_section" "Global"; };
"HelpServ" { "mondo_section" "HelpServ"; };
"modcmd" { "mondo_section" "modcmd"; };
"NickServ" { "mondo_section" "NickServ"; };
"OpServ" { "mondo_section" "OpServ"; };
"sendmail" { "mondo_section" "sendmail"; };
+ "SpamServ" { "mondo_section" "SpamServ"; };
// These are the options if you want a database to be in its own file.
"mondo" {
};
};
-// If you leave this section out, each service (technically, each log
-// facility) will be in its own file, just like before.
+/* LOGS (If and how X3 logs data ) ***********************************
+ * LOGS sets up where X3 logs various kinds of info to.
+ */
"logs" {
// Two kinds of items exist in this section.
// catch-all/fall-back facility.
"x3" {
// The "max_age" option says how long to keep log audit entries.
- "max_age" "10m";
+ "max_age" "10h";
// The "max_count" option says how many log audit entries to keep.
"max_count" "1024";
// Audit (command tracking) entries are discarded if they exceed
// list a target to log it -- this is because it is very rarely
// useful.
"*.*" ("std:out", "file:everything.log"); // does NOT suppress any defaults
- "*.override,staff" "irc:#big-brother"; // report all uses of staff commands
+ "*.override,error,fatal" "irc:#TheOps"; // report all uses of staff commands
+ "*.staff" "irc:#MrSnoopy"; // report all uses of staff commands
"ChanServ.*" "file:chanserv.log"; // duplicates the default behavior
"ProxyCheck.*" (); // stop it from logging anything
};