/* * 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/data) * 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. */ /* * [OPTIONAL] Defines * * You can define values to other values, which can be used to easially change * every value in the configuration. For example, use: * * define * { * name = "ChanServ" * value = "ChannelServ" * } * * To replace every occurance of ChanServ with ChannelServ in the configuration file, * and in every included configuration file (such as chanserv.example.conf). */ /* * The services.host define is used in multiple different locations throughout the * configuration for services clients hostnames. */ define { name = "ircservices.{{ external_domain }}" value = "ircservices.{{ external_domain }}" } /* * [OPTIONAL] Additional Includes * * You can include additional configuration files here. * You may also include executable files, which will be executed and * the output from it will be included into your configuration. */ /* include { type = "file" name = "some.conf" } include { type = "executable" name = "/usr/bin/wget -q -O - http://some.misconfigured.network.com/services.conf" } */ /* * [REQUIRED] IRCd Config * * This section is used to set up Anope to connect to your IRC network. * This section can be included multiple times, and Anope will attempt to * connect to each server until it finally connects. */ uplink { /* * 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 = "10.0.1.3" /* * Enable if Services should connect using IPv6. */ ipv6 = no /* * Enable if Services should connect using SSL. * You must have m_ssl loaded for this to work. */ ssl = no /* * 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 = 8067 /* * 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 = "{{ secrets['IRC']['servicespass'] }}" } /* * [REQUIRED] Server Information * * This section contains information about the Services server. */ serverinfo { /* * The hostname that Services will be seen as, it must have no conflicts with any * other server names on the rest of your IRC network. Note that it does not have * to be an existing hostname, just one that isn't on your network already. */ name = "ircservices.{{ external_domain }}" /* * The text which should appear as the server's information in /whois and similar * queries. */ description = "{{ organization['displayname'] }}/IRCServices" /* * The local address that Services will bind to before connecting to the remote * server. This may be useful for multihomed hosts. If ommited, Services will let * the Operating System choose the local address. This directive is optional. * * If you don't know what this means or don't need to use it, just leave this * directive commented out. */ #localhost = "ircservices.{{ external_domain }}" /* * What Server ID to use for this connection? * Note: This should *ONLY* be used for TS6/P10 IRCds. Refer to your IRCd documentation * to see if this is needed. */ #id = "00A" /* * The filename containing the Services process ID. The path is relative to the * services root directory. If not given, defaults to "data/services.pid". */ pid = "/var/lib/anope/runtime/services.pid" /* * The filename containing the Message of the Day. The path is relative to the * services root directory. If not given, defaults to "conf/services.motd". */ motd = "/var/lib/anope/services.motd" } /* * [REQUIRED] Protocol module * * This directive tells Anope which IRCd Protocol to speak when connecting. * You MUST modify this to match the IRCd you run. * * Supported: * - bahamut * - inspircd11 * - inspircd12 * - inspircd20 * - plexus * - ratbox * - unreal */ module { name = "inspircd20" /* * Some protocol modules can enforce mode locks server-side. This reduces the spam caused by * services immediately reversing mode changes for locked modes. * * If the protocol module you have loaded does not support this, this setting will have no effect. */ use_server_side_mlock = yes /* * Some protocol modules can enforce topic locks server-side. This reduces the spam caused by * services immediately reversing topic changes. * * If the protocol module you have loaded does not support this, this setting will have no effect. */ use_server_side_topiclock = yes } /* * [REQUIRED] Network Information * * This section contains information about the IRC network that Services will be * connecting to. */ networkinfo { /* * This is the name of the network that Services will be running on. */ networkname = "{{ organization['displayname'] }}/IRC" /* * Set this to the maximum allowed nick length on your network. * Be sure to set this correctly, as setting this wrong can result in * Services being disconnected from the network. This directive is optional, * but recommended. */ nicklen = 12 /* Set this to the maximum allowed ident length on your network. * Be sure to set this correctly, as setting this wrong can result in * Services being disconnected from the network. This directive is optional, * but recommended. */ userlen = 64 /* Set this to the maximum allowed hostname length on your network. * Be sure to set this correctly, as setting this wrong can result in * Services being disconnected from the network. This directive is optional, * but recommended. */ hostlen = 64 /* This is the maximum channel length ? * Added 11-12-2015 for testing */ chanlen = 20 /* Adding vhost definitions. */ vhost_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-" } /* * [REQUIRED] Services Options * * This section contains various options which determine how Services will operate. */ options { /* * The case mapping used by services. This must be set to a valid locale name * installed on your machine. Services use this case map to compare, with * case insensitivity, things such as nick names, channel names, etc. * * We provide two special casemaps shipped with Anope, ascii and rfc1459. * * This value should be set to what your IRCd uses, which is probably rfc1459, * however Anope has always used ascii for comparison, so the default is ascii. * * Changing this value once set is not recommended. */ casemap = "ascii" /* * The maximum length of passwords */ passlen = 32 /* * This key is used to initiate the random number generator. This number * MUST be random as you want your passcodes to be random. Don't give this * key to anyone! Keep it private! * * NOTE: If you don't uncomment this or keep the default values, any talented * programmer would be able to easily "guess" random strings used to mask * information. Be safe, and come up with a 7-digit number. * * This directive is optional, but highly recommended. */ seed = 7861233 /* * Allows Services to continue file write operations (i.e. database saving) * even if the original file cannot be backed up. Enabling this option may * allow Services to continue operation under conditions where it might * otherwise fail, such as a nearly-full disk. * * NOTE: Enabling this option can cause irrecoverable data loss under some * conditions, so make CERTAIN you know what you're doing when you enable it! * * This directive is optional, and you are discouraged against enabling it. */ #nobackupokay = yes /* * If set, Services will perform more stringent checks on passwords. If this * isn't set, Services will only disallow a password if it is the same as the * entity (nickname name) with which it is associated. When set, however, * Services will also check that the password is at least five * characters long, and in the future will probably check other things * as well. * * This directive is optional, but recommended. */ strictpasswords = yes /* * Sets the number of invalid password tries before Services removes a user * from the network. If a user enters a number of invalid passwords equal to * the given amount for any Services function or combination of functions * during a single IRC session (subject to badpasstimeout, below), Services * will issues a /KILL for the user. If not given, Services will ignore * failed password attempts (though they will be logged in any case). * * This directive is optional, but recommended. */ badpasslimit = 5 /* * Sets the time after which invalid passwords are forgotten about. If a user * does not enter any incorrect passwords in this amount of time, the incorrect * password count will reset to zero. If not given, the timeout will be * disabled, and the incorrect password count will never be reset until the user * disconnects. * * This directive is optional. */ badpasstimeout = 1h /* * Sets the delay between automatic database updates. This time is reset by * the OperServ UPDATE command. */ updatetimeout = 5m /* * Sets the delay between checks for expired nicknames and channels. The * OperServ UPDATE command will also cause a check for expiration and reset * this timer. */ expiretimeout = 30m /* * Sets the timeout period for reading from the uplink. */ readtimeout = 5s /* * Sets the interval between sending warning messages for program errors via * WALLOPS/GLOBOPS. */ warningtimeout = 4h /* * Sets the (maximum) frequency at which the timeout list is checked. This, * combined with readtimeout above, determines how accurately timed events, * such as nick kills, occur; it also determines how much CPU time Services * will use doing this. Higher values will cause less accurate timing but * less CPU usage. * * This shouldn't be set any higher than 10 seconds, and 1 second is best * if your system is powerful enough (or your network small enough) to * handle it. 0 will cause the timeout list to be checked every time * through the main loop, which will probably slow down Services too much * to be useful on most networks. * * Note that this value is not an absolute limit on the period between * checks of the timeout list; the previous may be as great as readtimeout * (above) during periods of inactivity. * * If this directive is not given, it will default to 0. See the 2nd paragraph * above for performance impacts if you do this. */ timeoutcheck = 3s /* * Sets the number of days backups of databases are kept. If you don't give it, * or if you set it to 0, Services won't backup the databases. * * NOTE: Services must run 24 hours a day for this feature to work. * * This directive is optional, but recommended. */ keepbackups = 15 /* * If set, Services will require a reason when a FORBID is added, else the * reason is optional. This directive also applies to SUSPENDed channels as * well. * * This directive is optional. */ forceforbidreason = yes /* * If set, this will allow users to let Services send PRIVMSGs to them * instead of NOTICEs. Also see the defmsg option of nickserv:defaults, * which also toggles the default communication (PRIVMSG or NOTICE) to * use for unregistered users. * * This is a feature that is against the IRC RFC and should be used ONLY * if absolutely necessary. * * This directive is optional, and not recommended. */ #useprivmsg = yes /* * If set, will force Services to only respond to PRIVMSGs addresses to * Nick@ServerName - e.g. NickServ@localhost.net. This should be used in * conjunction with IRCd aliases. This directive is optional. * * When using Bahamut, this option will NOT work if the uplink server is * configured as a services hub. The serviceshub option is not designed to * be used with Anope. */ #usestrictprivmsg = yes /* * If set, Services will only show /stats o to IRC Operators. This directive * is optional. */ #hidestatso = yes /* * Prevents users from registering their nick if they are not connected * for at least the given number of seconds. * * This directive is optional. */ #nickregdelay = 30 /* * If set, forbids the registration of nicks that contain an existing * nick with Services access. For example, if Tester is a Services Oper, * you can't register NewTester or Tester123 unless you are an IRC * Operator. * * NOTE: If you enable this, you will have to be logged in as an IRC * operator in order to register a Services Root nick when setting up * Anope for the first time. * * This directive is optional. */ #restrictopernicks = yes /* * The number of LOGON/OPER news items to display when a user logs on. * * This directive is optional, if no set it will default to 3. */ #newscount = 3 /* * A space-separated list of ulined servers on your network, it is assumed that * the servers in this list are allowed to set channel modes and Services will * not attempt to reverse their mode changes. * * WARNING: Do NOT put your normal IRC user servers in this directive. * * This directive is optional. */ #ulineservers = "stats.your.network" /* * Modes to set on service bots when they join channels, comment this out for no modes * * This directive is optional. */ botmodes = "ao" /* * How long to wait between connection retries, in seconds. */ retrywait = 60 /* * If set, Services will hide commands that users don't have the privileges to execute * from HELP output. */ hideprivilegedcommands = no /* * If set, Services do not allow ownership of nick names, only ownership of accounts. */ nonicknameownership = no /* The regex engine to use, as provided by the regex modules. * Leave commented to disable regex matching. * * Note for this to work the regex module providing the regex engine must be loaded. */ regexengine = "regex/pcre" } /* * [OPTIONAL] BotServ * * Includes botserv.example.conf, which is necessary for BotServ functionality. * * Remove this block to disable BotServ. include { type = "file" name = "botserv.conf" } */ /* TODO: This is disabled for now. */ /* * [RECOMMENDED] ChanServ * * Includes chanserv.example.conf, which is necessary for ChanServ functionality. * * Remove this block to disable ChanServ. */ include { type = "file" name = "chanserv.conf" } /* * [RECOMMENDED] Global * * Includes global.example.conf, which is necessary for Global functionality. * * Remove this block to disable Global. */ include { type = "file" name = "global.conf" } /* * [OPTIONAL] HostServ * * Includes hostserv.example.conf, which is necessary for HostServ functionality. * * Remove this block to disable HostServ. */ include { type = "file" name = "hostserv.conf" } /* * [OPTIONAL] MemoServ * * Includes memoserv.example.conf, which is necessary for MemoServ functionality. * * Remove this block to disable MemoServ. */ include { type = "file" name = "memoserv.conf" } /* * [OPTIONAL] NickServ * * Includes memoserv.example.conf, which is necessary for NickServ functionality. * * Remove this block to disable NickServ. */ include { type = "file" name = "nickserv.conf" } /* * [RECOMMENDED] OperServ * * Includes operserv.example.conf, which is necessary for OperServ functionality. * * Remove this block to disable OperServ. */ include { type = "file" name = "operserv.conf" } /* * [RECOMMENDED] Logging Configuration * * This section is used for configuring what is logged and where it is logged to. * You may have multiple log blocks if you wish. Remember to properly secure any * channels you choose to have Anope log to! */ log { /* * Target(s) to log to, which may be one of the following: * - a channel name * - a filename * - globops */ target = "anope-services.log #services" /* Log to both services.log and the channel #services * * Note that some older IRCds, such as Ratbox, require services to be in the * log channel to be able to message it. To do this, configure service:channels to * join your logging channel. */ #target = "services.log #services" /* * The source(s) to only accept log messages from. Leave commented to allow all sources. * This can be a users name, a channel name, one of our clients (eg, OperServ), or a server name. */ #source = "" /* * The number of days to keep logfiles, only useful if you are logging to a file. * Set to 0 to never delete old logfiles. * * Note that Anope must run 24 hours a day for this feature to work correctly. */ logage = 7 /* * What types of log messages should be logged by this block. There are nine general categories: * * admin - Execution of admin commands (OperServ, etc). * override - A services operator using their powers to execute a command they couldn't normally. * commands - Execution of general commands. * servers - Server actions, linking, squitting, etc. * channels - Actions in channels such as joins, parts, kicks, etc. * users - User actions such as connecting, disconnecting, changing name, etc. * other - All other messages without a category. * rawio - Logs raw input and output from services * debug - Debug messages (log files can become VERY large from this). * * These options determine what messages from the categories should be logged. Wildcards are accepted, and * you can also negate values with a ~. For example, "~operserv/akill operserv/*" would log all operserv * messages except for operserv/akill. Note that processing stops at the first matching option, which * means "* ~operserv/*" would log everything because * matches everything. * * Valid admin, override, and command options are: * pesudo-serv/commandname (eg, operserv/akill, chanserv/set) * * Valid server options are: * connect, quit, sync, squit * * Valid channel options are: * create, destroy, join, part, kick, leave, mode * * Valid user options are: * connect, disconnect, quit, nick, ident, host, mode, maxusers, oper * * Rawio and debug are simple yes/no answers, there are no types for them. * * Note that modules may add their own values to these options. */ admin = "operserv/*" override = "chanserv/* nickserv/* memoserv/set botserv/* ~botserv/set" commands = "~operserv/* *" servers = "*" #channels = "~mode *" users = "connect disconnect nick" other = "*" rawio = no debug = no } /* * A log block to globops some useful things. */ log { target = "globops" admin = "global/* operserv/mode operserv/kick operserv/akill operserv/s*line operserv/noop operserv/jupe operserv/oline operserv/set operserv/svsnick nickserv/getpass */drop" servers = "squit" users = "oper" other = "expire/* bados akill/*" } /* * [RECOMMENDED] Oper Access Config * * This section is used to set up staff access to restricted oper only commands. * You may define groups of commands and privileges, as well as who may use them. * * This block is recommended, as without it you will be unable to access most oper commands. * It replaces the old ServicesRoot directive amongst others. * * The command names below are defaults and are configured in the *serv.conf's. If you configure * additional commands with permissions, such as commands from third party modules, the permissions * must be included in the opertype block before the command can be used. * * Available privileges: * botserv/administration - Can perform certain BotServ administrative tasks * chanserv/access/modify - Can modify channel access and akick lists * chanserv/auspex - Can see any information with /chanserv info * chanserv/no-register-limit - May register an unlimited number of channels and nicknames * chanserv/set - Can modify the settings of any channel (incl. changing of the owner!) * memoserv/info - Can see any information with /memoserv info * memoserv/set-limit - Can set the limit of max stored memos on any user and channel * memoserv/no-limit - Can send memos through limits and throttles * nickserv/access - Can modify other users access list * nickserv/auspex - Can see any information with /nickserv info * nickserv/confirm - Can confirm other users nicknames * nickserv/drop - Can drop other users nicks * * Available commands: * botserv/bot/del botserv/bot/add botserv/bot/change botserv/assign/private * botserv/botlist botserv/set/private botserv/set/nobot * * chanserv/access/list chanserv/drop chanserv/getkey chanserv/invite * chanserv/list chanserv/suspend chanserv/topic chanserv/clearusers * * chanserv/saset/bantype chanserv/saset/description chanserv/saset/email * chanserv/saset/founder chanserv/saset/keeptopic chanserv/saset/restricted * chanserv/saset/peace chanserv/saset/persist chanserv/saset/private * chanserv/saset/secure chanserv/saset/securefounder chanserv/saset/secureops * chanserv/saset/signkick chanserv/saset/successor chanserv/saset/topiclock * chanserv/saset/url chanserv/saset/noexpire * * memoserv/sendall memoserv/staff * * nickserv/getpass nickserv/sendpass nickserv/getemail nickserv/suspend * nickserv/resetpass nickserv/release nickserv/list * * nickserv/saset/autoop nickserv/saset/email nickserv/saset/greet * nickserv/saset/icq nickserv/saset/kill nickserv/saset/language nickserv/saset/message * nickserv/saset/private nickserv/saset/secure nickserv/saset/url nickserv/saset/noexpire * * hostserv/set hostserv/del * * global/global * * operserv/news operserv/stats operserv/kick operserv/exception * operserv/mode operserv/session operserv/modlist operserv/ignore * operserv/chankill operserv/akill operserv/sqline operserv/snline * operserv/szline operserv/oper operserv/config operserv/umode * operserv/modload operserv/jupe operserv/set operserv/noop * operserv/quit operserv/update operserv/reload operserv/restart * operserv/shutdown operserv/svsnick operserv/oline operserv/kill * * Firstly, we define 'opertypes' which are named whatever we want ('Network Administrator', etc). * These can contain commands for oper-only strings (see above) which grants access to that specific command, * and privileges (which grant access to more general permissions for the named area). * Wildcard entries are permitted for both, e.g. 'commands = "operserv/*"' for all OperServ commands. * * Below are some default example types, but this is by no means exhaustive, * and it is recommended that you configure them to your needs. */ opertype { /* The name of this opertype */ name = "Helper" /* What commands (see above) this opertype has */ commands = "hostserv/*" } opertype { /* The name of this opertype */ name = "Services Operator" /* What opertype(s) this inherits from. Seperate with a comma. */ inherits = "Helper, Another Helper" /* What commands (see above) this opertype may use */ commands = "chanserv/list chanserv/suspend chanserv/topic memoserv/staff nickserv/list nickserv/sendpass nickserv/resetpass nickserv/suspend operserv/mode operserv/chankill operserv/szline operserv/akill operserv/session operserv/modlist operserv/sqline operserv/oper operserv/kick operserv/ignore operserv/snline" /* What privs (see above) this opertype has */ privs = "chanserv/auspex chanserv/no-register-limit memoserv/* nickserv/auspex nickserv/confirm" /* * Modes to be set on users when they identify to accounts linked to this opertype. * * This can be used to automatically oper users who identify for services operator accounts, and is * useful for setting modes such as Plexus's user mode +N. * * Note that some IRCds, such as InspIRCd, do not allow directly setting +o, and this will not work. */ #modes = "+o" } opertype { name = "Services Administrator" inherits = "Services Operator" commands = "chanserv/access/list chanserv/drop chanserv/getkey chanserv/saset/noexpire memoserv/sendall nickserv/saset/* nickserv/getemail operserv/news operserv/jupe operserv/svsnick operserv/stats operserv/oline operserv/noop operserv/forbid global/*" privs = "*" } opertype { name = "Services Root" commands = "*" privs = "*" } /* * After defining different types of operators in the above opertype section, we now define who is in these groups * through 'oper' blocks, similar to ircd access. * * The default is to comment these out (so NOBODY will have Services access). * You probably want to add yourself and a few other people at minimum. * * As with all permissions, make sure to only give trustworthy people access to Services. */ /* Include services operators from YAML */ {% for oper in secrets['IRC']['opers'] %} oper { name = "{{ oper }}" type = "Services Root" require_oper = "yes" } {% endfor %} /* * [OPTIONAL] Mail Config * * This section contains settings related to the use of e-mail from Services. * If the usemail directive is set to yes, unless specified otherwise, all other * directives are required. * * NOTE: Users can find the IP of the machine services is running on by examining * mail headers. If you do not want your IP known, you should set up a mail relay * to strip the relevant headers. */ mail { /* * If set, this option enables the mail commands in Services. You may choose * to disable it if you have no Sendmail-compatible mailer installed. Whilst * this directive (and entire block) is optional, it is required if the * nickserv:emailregistration is set to yes. */ usemail = no /* * This is the command-line that will be used to call the mailer to send an * e-mail. It must be called with all the parameters needed to make it * scan the mail input to find the mail recipient; consult your mailer * documentation. * * Postfix users must use the compatible sendmail utility provided with * it. This one usually needs no parameters on the command-line. Most * sendmail applications (or replacements of it) require the -t option * to be used. */ sendmailpath = "/usr/sbin/sendmail -t" /* * This is the e-mail address from which all the e-mails are to be sent from. * It should really exist. */ sendfrom = "services@localhost.net" /* * If set, SENDPASS and RESETPASS will be restricted to IRC operators. * This directive is optional. * * WARNING: If you choose to not enable this option, you should limit the * number of processes that the services user can have at a time (you can * create a special user for this; remember to NEVER launch Services as * root). */ restrict = yes /* * This controls the minimum amount of time a user must wait before sending * another e-mail after they have sent one. It also controls the minimum time * a user must wait before they can receive another e-mail. * * This feature prevents users from being mail bombed using Services and * it is highly recommended that it be used. * * This directive is optional, but highly recommended. */ delay = 5m /* * If set, Services will not attempt to put quotes around the TO: fields * in e-mails. * * This directive is optional, and as far as we know, it's only needed * if you are using ESMTP or QMail to send out e-mails. */ #dontquoteaddresses = yes /* * The subject and message of emails sent to users when they register accounts. */ registration_subject = "Nickname Registration for %n" registration_message = "Hi, You have requested to register the nickname %n on %N. Please type \" /msg NickServ confirm %c \" to complete registration. If you don't know why this mail was sent to you, please ignore it silently. %N administrators." /* * The subject and message of emails sent to users when they request a new password. */ reset_subject = "N/A" /* "Reset password request for %n" */ reset_message = "N/A" /* "Hi, You have requested to have the password for %n reset. To reset your password, type \"/msg NickServ CONFIRM %n %c\". If you don't know why this mail was sent to you, please ignore it silently. %N administrators." */ /* * The subject and message of emails sent to users when they request SENDPASS. */ sendpass_subject = "N/A" /* "Nickname password for %n" */ sendpass_message = "N/A" /* "Hi, You have requested to receive the password of nickname %n by e-mail. The password is %p. For security purposes, you should change it as soon as you receive this mail. If you don't know why this mail was sent to you, please ignore it silently. %N administrators." */ /* * The subject and message of emails sent to users when they request a new email address. */ emailchange_subject = "Email confirmation" emailchange_message = "Hi, You have requested to change your email address to %e. Please type \" /msg NickServ confirm %c \" to confirm this change. If you don't know why this mail was sent to you, please ignore it silently. %N administrators." /* * The subject and message of emails sent to users when they recieve a new memo. */ memo_subject = "New memo" memo_message = "Hi %n You've just received a new memo from %s. This is memo number %d. Memo text: %t" } /* * [OPTIONAL] DNS Config * * This section is used to configure DNS. * At this time DNS is only used by a few modules (m_dnsbl) * and is not required by the core to function. */ dns { /* * The nameserver to use for resolving hostnames, must be an IP or a resolver configuration file. * The below should work fine on all unix like systems. Windows users will have to find their nameservers * from ipconfig /all and put the IP here */ nameserver = "/etc/resolv.conf" #nameserver = "127.0.0.1" /* * How long to wait in seconds before a DNS query has timed out */ timeout = 5 } /* * [REQUIRED] Database configuration. * * This section is used to configure databases used by Anope. * You should at least load one database method, otherwise any data you * have will not be stored! */ /* * [DEPRECATED] db_old * * This is the old binary database format from late Anope 1.7.x, Anope 1.8.x, and * early Anope 1.9.x. This module only loads these databases, and will NOT save them. * You should only use this to upgrade old databases to a newer database format by loading * other database modules in addition to this one, which will be used when saving databases. */ #module { name = "db_old" } db_old { /* * This is the encryption type used by the databases. This must be set correctly or * your passwords will not work. Valid options are: md5, oldmd5, sha1, and plain. */ #hash = "md5" } /* * [DEPRECATED] db_plain * * This is the flatfile database format from Anope-1.9.2 to Anope-1.9.5. * To convert from this format, load both this and db_flatfile. Be sure to name db_flatfile's * target database to something else. Start Anope then shut down so the new database will be written. * Then unload this and restart Anope, loading from the new database. */ #module { name = "db_plain" } /*db_plain *{ * * The database name db_plain should use * * database = "/var/db/anope/anope.db" }*/ /* * db_flatfile * * This is the default flatfile database format. */ module { name = "db_flatfile" } db_flatfile { /* * The database name db_flatfile should use */ database = "anope.db" } /* * db_sql * * This module allows saving and loading databases using one of the SQL engines. * This module loads the databases once on startup, then incrementally updates * objects in the database as they are changed within Anope in real time. Changes * to the SQL tables not done by Anope will have no effect and will be overwritten. * */ #module { name = "db_sql" } /* * db_sql_live * * This module allows saving and loading databases using one of the SQL engines. * This module reads and writes to SQL in real time. Changes to the SQL tables * will be immediately reflected into Anope. This module should not be loaded * in conjunction with db_sql. */ #module { name = "db_sql_live" } db_sql { /* * The SQL service db_sql(_live) should use, these are configured in modules.conf. * For MySQL, this should probably be mysql/main. */ engine = "sqlite/main" /* * An optional prefix to prepended to the name of each created table. * Do not use the same prefix for other programs. */ #prefix = "anope_db_" } /* * [REQUIRED] Encryption modules. * * The encryption modules are used when dealing with passwords. This determines how * the passwords are stored in the databases, and does not add any security as * far as transmitting passwords over the network goes. * * Without any encryption modules, passwords will be stored in plain text, allowing * for passwords to be recovered later but isn't secure therefore is not recommended. * * The other encryption modules use one-way encryption, so the passwords can not * be recovered later if those are used. * * NOTE: enc_old is Anope's previous (broken) MD5 implementation, if your databases * were made using that module, continue to use it and do not use enc_md5. * * NOTE: enc_sha1 relies on how the OS stores 2+ byte data internally, and is * potentially broken when moving between 2 different OSes, such as moving from * Linux to Windows. It is recommended that you use enc_sha256 instead if you want * to use an SHA-based encryption. If you choose to do so, it is also recommended * that you first try to get everyone's passwords converted to enc_sha256 before * switching OSes by placing enc_sha256 at the beginning of the list. * * The first encryption module loaded is the primary encryption module. All new passwords are * encrypted by this module. Old passwords stored in another encryption method are * automatically re-encrypted by the primary encryption module on next identify. */ #module { name = "enc_md5" } #module { name = "enc_sha1" } module { name = "enc_sha256" } /* * When using enc_none, passwords will be stored without encryption in plain * text, allowing for passwords to be recovered later. This isn't secure therefore * is not recommended. */ #module { name = "enc_none" } /* * enc_old is Anope's previous (broken) MD5 implementation, if your databases * were made using that module, load it here to allow conversion to the primary * encryption method. */ #module { name = "enc_old" } /* Extra (optional) modules */ include { type = "file" name = "modules.conf" } /* * Chanstats Modules * Requires a MySQL Database */ #include #{ # type = "file" # name = "chanstats.example.conf" #}