/* * Example configuration file for Services. After making the appropriate * changes to this file, place it in the Services data directory (as * specified in the "configure" script, default /home/username/services) * under the name "services.conf". * * The format of this file is fairly simple: three types of comments are supported: * - All text after a '#' on a line is ignored, as in shell scripting * - All text after '//' on a line is ignored, as in C++ * - A block of text like this one is ignored, as in C * * Outside of comments, there are three structures: blocks, keys, and values. * * A block is a named container, which contains a number of key to value pairs * - you may think of this as an array. * * A block is created like so: * foobar * { * moo = "cow" * foo = bar * } * * Keys are case insensitive. Values depend on what key - generally, information is * given in the key comment. The quoting of values (and most other syntax) is quite * flexible, however, please do not forget to quote your strings: * * "This is a parameter string with spaces in it" * * If you need to include a double quote inside a quoted string, precede it * by a backslash: * * "This string has \"double quotes\" in it" * * Time parameters can be specified either as an integer representing a * number of seconds (e.g. "3600" = 1 hour), or as an integer with a unit * specifier: "s" = seconds, "m" = minutes, "h" = hours, "d" = days. * Combinations (such as "1h30m") are not permitted. Examples (all of which * represent the same length of time, one day): * * "86400", "86400s", "1440m", "24h", "1d" * * CAUTION: * Please note that your services might _CRASH_ if you add more format- * strings (%s, %d, etc.) to custom messages than Anope needs. Use the * default messages to see how many format-strings are needed. * * In the documentation for each directive, one of the following will be * included to indicate whether an option is required: * * [REQUIRED] * Indicates a directive which must be given. Without it, Services will * not start. * * [RECOMMENDED] * Indicates a directive which may be omitted, but omitting it may cause * undesirable side effects. * * [OPTIONAL] * Indicates a directive which is optional. If not given, the feature * will typically be disabled. If this is not the case, more * information will be given in the documentation. * * [DISCOURAGED] * Indicates a directive which may cause undesirable side effects if * specified. * * [DEPRECATED] * Indicates a directive which will disappear in a future version of * Services, usually because its functionality has been either * superseded by that of other directives or incorporated into the main * program. */ /* * [REQUIRED] IRCd Config * * This section is used to set up Anope to connect to your IRC network. */ uplink { /* * This directive instructs Anope which IRCd Protocol to speak when connecting. * You MUST modify this to match the IRCd you run. * * Supported: * - inspircd11 * - ratbox * - bahamut * - charybdis * - unreal32 */ type = "inspircd11" /* * The IP or hostname of the IRC server you wish to connect Services to. * Usually, you will want to connect Services over 127.0.0.1 (aka localhost). * * NOTE: On some shell providers, this will not be an option. */ host = "localhost" /* * The port to connect to. * The IRCd *MUST* be configured to listen on this port, and to accept * server connections. * * Refer to your IRCd documentation for how this is to be done. */ port = 6667 /* * The password to send to the IRC server for authentication. * This must match the link block on your IRCd. * * Refer to your IRCd documentation for more information on link blocks. */ password = "mypassword" } /* * [REQUIRED] NickServ Config * * This section is used to set up the Nickname Registration Service pseudo-client. * Unless specified otherwise, all directives are required. */ nickserv { /* * The nickname of the NickServ client. */ nick = "NickServ" /* * The description of the NickServ client, which will be used as the GECOS (real * name) of the client. */ description = "Nickname Registration Service" /* * The filename of the NickServ database. The path is relative to the services * executable. If not given, defaults to "nick.db". */ database = "nick.db" /* * The filename of the NickServ Pre-Nick database. The path is relative to the * services executable. This directive is only required if the e-mail registration * option is enabled. */ #prenickdatabase = "prenick.db" /* * Force users to give an e-mail address when they register a nick. This directive * is recommended to be enabled, and required if the e-mail registration option is * enabled. */ forceemail = yes /* * Require an e-mail to be sent to the user before they can register their nick. */ #emailregistration = yes /* * The default options for newly registered nicks. Note that changing these options * will have no effect on nicks which are already registered. The list must be separated * by spaces. * * The options are: * - kill: Kill nick if not identified within 60 seconds * - killquick: Kill nick if not identified within 20 seconds, this one overrides the above * option and the above must be specified with this one * - secure: Enable nickname security, requiring the nick's password before any operations * can be done on it * - private: Hide the nick from NickServ's LIST command * - hideemail: Hide's the nick's e-mail address from NickServ's INFO command * - hideusermask: Hide's the nick's last or current user@host from NickServ's INFO command * - hidequit: Hide's the nick's last quit message * - memosignon: Notify user if they have a new memo when they sign into the nick * - memoreceive: Notify user if they have a new memo as soon as it's received * - autoop: User will be automatically opped in channels they enter and have access to * - msg: Services messages will be sent as PRIVMSGs instead of NOTICEs, requires UsePrivmsg * to be enabled as well * * This directive is optional, if left blank, the options will default to secure, memosignon, and * memoreceive. If you really want no defaults, use "none" by itself as the option. */ defaults="secure private hideemail hideusermask memosignon memoreceive autoop" /* * Default language that non- and newly-registered nicks will receive messages in. The number * here is the same as the number in NickServ's SET LANGUAGE help. */ defaultlanguage = 1 /* * The minimum length of time between consecutive uses of NickServ's REGISTER command. This * directive is optional, but recommended. If not set, this restriction will be disabled. */ regdelay = 30s /* * The minimum length of time between consecutive uses of NickServ's RESEND command. This * directive is optional, but recommended. If not set, this restriction will be disabled. */ resenddelay = 90s /* * The length of time before a nick registration expires. This directive is optional, but * recommended. If not set, the default is 21 days. */ expire = 21d /* * The length of time a user gets to enter the confirmation code which has been e-mailed * to them before the nick will be released for general use again. This directive is * only required if the e-mail registration option is enabled. */ #preregexpire = 1d /* * The maximum number of nicks allowed in a group. This directve is optional, but * recommended. If not set or set to 0, no limits will be applied. */ maxaliases = 16 /* * The maximum number of entries allowed on a nickname's access list. */ accessmax = 32 /* * The username (and possibly hostname) used for the fake user created when NickServ collides * a user. Should be in the user@host format. If the host is not given, the one from ServicesUser * is used. */ enforceruser = "enforcer@localhost.net" #enforceruser = "enforcer" /* * The delay before a NickServ-collided nick is released. */ releasetimeout = 1m /* * Allow the use of the IMMED option in the NickServ SET KILL command. This directive is optional. */ #allowkillimmed = yes /* * If set, the NickServ GROUP command won't allow any group change. This is recommended for * better performance and to protect against nick stealing, however users will have less * flexibility. This directive is optional. */ #nogroupchange = yes /* * Limits the use of the NickServ LIST command to IRC operators. This directive is optional. */ #listopersonly = yes /* * The maximum number of nicks to be returned for a NickServ LIST command. */ listmax = 50 /* * When a user's nick is forcibly changed to enforce a "nick kill", their new nick will start * with this value. The rest will be made up of 6 or 7 digits. */ guestnickprefix = "Guest" /* * Prevents the use of the DROP, FORBID, GETPASS, and SET PASSWORD commands by Services Admins * on other Services Admins or the Services Root(s). This directive is optional, but * recommended. */ secureadmins = yes /* * If set, any user wanting to use the privileges of Services Root, Services Admin, or Services * Operator must have been logged as an IRC Operator with the /oper command. This directive is * optional, but recommended. */ strictprivileges = yes /* * If set, Services will set the channel modes a user has access to upon identifying, assuming * they are not already set. This directive is optional. */ #modeonid = yes /* * If set, Services will only allow Services Root(s) to use the NickServ GETPASS command on * a nick. This directive is optional. */ restrictgetpass = yes /* * If set, Services will track your last nick identified when issuing nick changes. This * directive is optional. */ #nicktracking = yes /* * If set, Services will add the usermask of registering users to the access list of their * newly created account. If not set, users will always have to identify to NickServ before * being recognized, unless they manually add an address to the access list of their account. * This directive is optional. */ addaccessonreg = yes } /* * [REQUIRED] ChanServ Config * * This section is used to set up the Channel Registration Service pseudo-client. * Unless specified otherwise, all directives are required. */ chanserv { /* * The nickname of the ChanServ client. */ nick = "ChanServ" /* * The description of the ChanServ client, which will be used as the GECOS (real * name) of the client. */ description = "Channel Registration Service" /* * The filename of the ChanServ database. The path is relative to the services * executable. If not given, defaults to "chan.db". */ database = "chan.db" /* * The default options for newly registered channels. Note that changing these options * will have no effect on channels which are already registered. The list must be separated * by spaces. * * The options are: * - keeptopic: Retain topic when the channel is not in use * - opnotice: Send a notice when OP/DEOP commands are used * - peace: Disallow users from kicking or removing modes from others who are of the same * access level or superior * - private: Hide the channel from ChanServ's LIST command * - restricted: Kick/ban users who are restricted from the channel * - secure: Enable channel security, requiring the user to be identified with NickServ in * order to be considered for being on the access list of the channel * - secureops: Only allow operator status to be given if the user is on the access list * - securefounder: Only allow the real founder of the channel to drop the channel, change it's * password, or change the founder or succesor * - signkick: Use of ChanServ's KICK command will cause the user's nick to be signed to the kick. * - signkicklevel: Same as above, but the kick will not be signed if the user is at the same access * level or superior to the target * - topiclock: Disallow the topic to be changed except with ChanServ's TOPIC command * - xop: Enable use of the xOP system * * This directive is optional, if left blank, the options will default to keetopic, secure, securefounder, * and signkick. If you really want no defaults, use "none" by itself as the option. */ defaults="keeptopic peace secure securefounder signkick xop" /* * The maximum number of channels which may be registered to a single nickname. This directive is optional, * but recommended. If not set, there will be no restriction on the numbers of channels a single nickname * can have registered. */ maxregistered = 20 /* * The length of time before a channel registration expires. This directive is optional, but * recommended. If not set, the default is 14 days. */ expire = 14d /* * The default ban type for newly registered channels (and when importing old databases). * * defbantype can be: * * 0: ban in the form of *!user@host * 1: ban in the form of *!*user@host * 2: ban in the form of *!*@host * 3: ban in the form of *!*user@*.domain */ defbantype = 2 /* * The maximum number of entries on a channel's access list. */ accessmax = 1024 /* * The maximum number of entries on a channel's autokick list. */ autokickmax = 32 /* * The default reason for an autokick if none is given. */ autokickreason = "User has been banned from the channel" /* * The length of time ChanServ stays in a channel after kicking a user from a channel they are not * premitted to be in. This only occurs when the user is the only one in the channel. */ inhabit = 15s /* * Limits the use of the ChanServ LIST command to IRC operators. This directive is optional. */ #listopersonly = yes /* * The maximum number of channels to be returned for a ChanServ LIST command. */ listmax = 50 /* * If set, Services will only allow Services Root(s) to use the ChanServ GETPASS command on a * channel. This directive is optional. */ #restrictgetpass = yes /* * Allow only IRC Operators to use ChanServ. This directive is optional. */ #opersonly = yes } /* * [REQUIRED] MemoServ Config * * This section is used to set up the Memo Service pseudo-client. Unless specified otherwise, * all directives are required. */ memoserv { /* * The nickname of the MemoServ client. */ nick = "MemoServ" /* * The description of the MemoServ client, which will be used as the GECOS (real * name) of the client. */ description = "Memo Service" /* * The maximum number of memos a user is allowed to keep by default. Normal users may set the * limit anywhere between 0 and this value. Services Admins can change it to any value or * disable it. This directive is optional, but recommended. If not set, the limit is disabled * by default, and normal users can set any limit they want. */ maxmemos = 20 /* * The delay between consecutive uses of the MemoServ SEND command. This can help prevent spam * as well as denial-of-service attacks from sending large numbers of memos and filling up disk * space (and memory). The default 3-second wait means a maximum average of 150 bytes of memo * per second per user under the current IRC protocol. This directive is optional, but * recommended. */ senddelay = 3s /* * Should we notify all appropriate users of a new memo? This applies in cases where a memo is * sent to a nick which is in the group of another nick. Not that, unlike before, it is currently * more efficient to enable this. This directive is optional. */ notifyall = yes /* * Allow the use of memo receipts for the following groups: * * 1 - Opers Only * 2 - Everybody * * This directive is optional. */ #memoreceipt = 1 } /* * [OPTIONAL] BotServ Config * * This section is used to set up the Bot Service pseudo-client. The block is optional and can be * removed if you do not wish to have BotServ on your network. Unless specified otherwise, * all directives are required if you do wish to use BotServ. */ botserv { /* * The nickname of the BotServ client. */ nick = "BotServ" /* * The description of the BotServ client, which will be used as the GECOS (real * name) of the client. */ description = "Bot Service" /* * The filename of the BotServ database. The path is relative to the services * executable. If not given, defaults to "bot.db". */ database = "bot.db" /* * The default bot options for newly registered channel. Note that changing these options * will have no effect on channels which are already registered. The list must be separated * by spaces. * * The options are: * - dontkickops: Channel operators will be protected against BotServ kicks * - dontkickvoices: Voiced users will be protected against BotServ kicks * - greet: The channel's BotServ bot will greet incoming users that have set a greet * in their NickServ settings * - fantasy: Enables the use of BotServ fantasy commands in the channel * - symbiosis: Causes the BotServ bot to do all actions that would normally have been * done by ChanServ * * This directive is optional, if left blank, there will be no defaults. */ defaults="greet fantasy symbiosis" /* * The minimum number of users there must be in a channel before the bot joins it. The best * value for this setting is 1 or 2. This cannot be 0, otherwise topic retention and mode * lock and such other things won't work. */ minusers = 1 /* * The maximum number of entries a single bad words list can have. Setting it too high can * reduce performance slightly. */ badwordsmax = 32 /* * The amount of time that data for a user is valid in BotServ. If the data exceeds this time, * it is reset or deleted depending on the case. Do not set it too high, otherwise your * resources will be slightly affected. */ keepdata = 10m /* * The bots are currently not affected by any modes or bans when they try to join a channel. * But some people may want to make it act like a real bot, that is, for example, remove all * the bans affecting the bot before joining the channel, remove a ban that affects the bot * set by an user when it is in the channel, and so on. Since it consumes a bit more CPU * time, you should not enable this on larger networks. This directive is optional. */ #smartjoin = yes /* * If set, the bots will use a kick reason that does not retake the word when it is kicking. * This is especially useful if you have young people on your network. This directive is * optional. */ gentlebadwordreason = yes /* * If set, BotServ will use case sensitive checking for badwords. This directive is optional. */ #casesensitive = yes /* * Defines the prefix for fantasy commands in channels. This character will have to be prepended * to all fantasy commands. If you choose "!", for example, fantasy commands will be "!kick", * "!op", etc. This directive is optional, if left out, the default fantasy character is "!". */ #fantasycharacter = "!" } /* * [OPTIONAL] HostServ Config * * This section is used to set up the vHost Service pseudo-client. The block is optional and can be * removed if you do not wish to have HostServ on your network. Unless specified otherwise, * all directives are required if you do wish to use HostServ. */ hostserv { /* * The nickname of the HostServ client. */ nick = "HostServ" /* * The description of the HostServ client, which will be used as the GECOS (real * name) of the client. */ description = "vHost Service" /* * The filename of the HostServ database. The path is relative to the services * executable. If not given, defaults to "hosts.db". */ database = "hosts.db" /* * Specifies the nicks of NON-OPERS allowed to set or remove vHosts using HostServ. Can be re-loaded * with /msg operserv reload. You can specify more than one nick by separating each one by a space. * * This directive is optional, but you are discouraged from using it. It is recommended that you only * give opers the ability to set or remove vHosts by making them Services Opers or higher, but if you * do decide to use this directive, make sure you insert the correct nick(s) here. */ #hostsetters = "CyberBotX w00t" } /* * [REQUIRED] HelpServ Config * * This section is used to set up the Help Service pseudo-client. All directives are required. */ helpserv { /* * The nickname of the HelpServ client. */ nick = "HelpServ" /* * The description of the HelpServ client, which will be used as the GECOS (real * name) of the client. */ description = "Help Service" } /* * [REQUIRED] OperServ Config * * This section is used to set up the Operator Service pseudo-client. Unless specified otherwise, * all directives are required. */ operserv { /* * The nickname of the OperServ client. */ nick = "OperServ" /* * The description of the OperServ client, which will be used as the GECOS (real * name) of the client. */ description = "Operator Service" /* * The nickname of the Global client. */ globalnick = "Global" /* * The description of the Global client, which will be used as the GECOS (real * name) of the client. */ globaldescription = "Global Noticer" /* * The filename of the OperServ database. The path is relative to the services * executable. If not given, defaults to "oper.db". */ database = "oper.db" /* * The filename of OperServ's News database. The path is relative to the services * executable. If not given, defaults to "news.db". */ newsdatabase = "news.db" /* * The filename of OperServ's Session Exception database. The path is relative to the services * executable. If not given, defaults to "exception.db". */ exceptiondatabase = "exception.db" /* * The filename of OperServ's Autokill database. The path is relative to the services * executable. If not given, defaults to "akill.db". OperServ no longer uses this file, and * this directive is only provided for importing an old OperServ database. */ #autokilldatabase = "akill.db" /* * Specifies the Services "super-users". The super-users, or "roots" as in Unix terminology, are * the only uses who can add or delete Services Admins. * * You can specify more than one nick by separating each one by a space. * * This is commented out by default; make sure you insert the correct nicks before uncommenting it. */ #servicesroot = "CyberBotX w00t" /* * If set, Services Admins will be able to use SUPERADMIN [ON|OFF] which will temporarily grant * them extra privileges, such as being a founder on ALL channels, ability to adjust another * users' modes, etc. This directive is optional. */ #superadmin = yes /* * If set, causes Services to write a message to the log every time a new user maximum is set. * This directive is optional. */ logmaxusers = yes /* * These define the default expiration times for, respectively, AKILLs, CHANKILLs, SGLINEs, * SQLINEs, and SZLINEs. */ autokillexpiry = 30d chankillexpiry = 30d sglineexpiry = 30d sqlineexpiry = 30d szlineexpiry = 30d /* * If set, this option will make Services send an AKILL command immediately after it has been * added with AKILL ADD. This eliminates the need for killing the user after the AKILL has * been added. This directive is optional. */ #akillonadd = yes /* * If set, this option will make Services send an (SVS)KILL command immediately after SGLINE ADD. * This eliminates the need for killingthe user after the SGLINE has been added. This directive * is optional. */ #killonsgline = yes /* * If set, this option will make Services send an (SVS)KILL command immediately after SQLINE ADD. * This eliminates the need for killingthe user after the SQLINE has been added. This directive * is optional. */ #killonsqline = yes }