/* * Example configuration file for Anope. After making the appropriate * changes to this file, place it in the Anope conf directory (as * specified in the "Config" script, default /home/username/anope/conf) * under the name "anope.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 * } * * Note that nameless blocks are allowed and are often used with comments to allow * easily commenting an entire block, for example: * #foobar * { * moo = "cow" * foo = bar * } * is an entirely commented block. * * 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" * * 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, Anope 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 * Anope, 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 easily change * many values in the configuration at once. */ /* * The stats.host define is used in multiple different locations throughout the * configuration for the stats client hostname. */ define { name = "stats.host" value = "stats.example.com" } /* * [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 - https://some.misconfigured.network.com/stats.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. * * Each uplink IRCd should have a corresponding configuration to allow Anope * to link to it. * * An example configuration for InspIRCd that is compatible with the below uplink * and serverinfo configuration would look like: * * # This goes in inspircd.conf, *NOT* your Anope config! * * * * * An example configuration for UnrealIRCd that is compatible with the below uplink * and serverinfo configuration would look like: * * // This goes in unrealircd.conf, *NOT* your Anope config! * listen { * ip 127.0.0.1; * port 7000; * options { * serversonly; * }; * }; * link stats.example.com { * incoming { * mask *@127.0.0.1; * }; * password "mypassword"; * class servers; * }; * ulines { stats.example.com; }; */ uplink { /* * The IP address, hostname, or UNIX socket path of the IRC server you wish * to connect Anope to. * Usually, you will want to connect over 127.0.0.1 (aka localhost). * * NOTE: On some shell providers, this will not be an option. */ host = "127.0.0.1" /* * The protocol that Anope should use when connecting to the uplink. Can * be set to "ipv4" (the default), "ipv6", or "unix". */ protocol = "ipv4" /* * Enable if Anope should connect using SSL. * You must have an SSL module 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 = 7000 /* * 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] Server Information * * This section contains information about the services server. */ serverinfo { /* * The hostname that Anope 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 = "stats.example.com" /* * The text which should appear as the server's information in /WHOIS and similar * queries. */ description = "Anope IRC Statistics" /* * The local address that Anope will bind to before connecting to the remote * server. This may be useful for multihomed hosts. If omitted, Anope 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 = "nowhere." /* * 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 Anope process ID. The path is relative to the * data directory. */ pid = "anope.pid" /* * The filename containing the Message of the Day. The path is relative to the * config directory. */ motd = "motd.txt" } /* * [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 * - hybrid * - inspircd * - ngircd * - plexus * - ratbox * - solanum * - unrealircd */ module { name = "inspircd" } /* * [REQUIRED] Network Information * * This section contains information about the IRC network that Anope will be * connecting to. */ networkinfo { /* * This is the name of the network that Anope will be running on. */ networkname = "LocalNet" /* * Set this to the maximum allowed nick length on your network. * Be sure to set this correctly, as setting this wrong can result in * Anope being disconnected from the network. Defaults to 31. */ #nicklen = 31 /* Set this to the maximum allowed ident length on your network. * Be sure to set this correctly, as setting this wrong can result in * Anope being disconnected from the network. Defaults to 10. */ #userlen = 10 /* Set this to the maximum allowed hostname length on your network. * Be sure to set this correctly, as setting this wrong can result in * Anope being disconnected from the network. Defaults to 64. */ #hostlen = 64 /* Set this to the maximum allowed channel length on your network. * Defaults to 64. */ #chanlen = 32 /* The maximum number of list modes settable on a channel (such as b, e, I). * Comment out or set to 0 to disable. */ modelistsize = 100 /* * The characters allowed in hostnames. This is used for validating hostnames given * to services, such as BotServ bot hostnames and user vhosts. Changing this is not * recommended unless you know for sure your IRCd supports whatever characters you are * wanting to use. Telling services to set a vHost containing characters your IRCd * disallows could potentially break the IRCd and/or Anope. * * It is recommended you DON'T change this. */ vhost_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-" /* * If set to true, allows vHosts to not contain dots (.). * Newer IRCds generally do not have a problem with this, but the same warning as * vhost_chars applies. * * It is recommended you DON'T change this. */ allow_undotted_vhosts = false /* * The characters that are not allowed to be at the very beginning or very ending * of a vHost. The same warning as vhost_chars applies. * * It is recommended you DON'T change this. */ disallow_start_or_end = ".-" } /* * [REQUIRED] Anope Options * * This section contains various options which determine how Anope will operate. */ options { /* * On Linux/UNIX systems Anope can setuid and setgid to this user and group * after starting up. This is useful if Anope has to bind to privileged ports. */ #user = "anope" #group = "anope" /* * The case mapping used by services. This must be set to a valid locale name * installed on your machine. Anope uses 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" /* * Sets the timeout period for reading from the uplink. */ readtimeout = 5s /* * If set, Anope will only show /stats o to IRC Operators. This directive * is optional. */ #hidestatso = yes /* * A space-separated list of U-lined servers on your network, it is assumed that * the servers in this list are allowed to set channel modes and Anope 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 = "services.your.network" /* * How long to wait between connection retries with the uplink(s). */ retrywait = 60s } /* * [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 = "stats.log" /* Log to both stats.log and the channel #stats * * 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 = "stats.log #stats" /* * 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 (e.g. OperServ), or a server name. */ #source = "" /* * The bot used to log generic messages which have no predefined sender if there * is a channel in the target directive. */ bot = "Global" /* * The number of days to keep log files, only useful if you are logging to a file. * Set to 0 to never delete old log files. * * 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: * * 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 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, away * * 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. */ servers = "*" #channels = "~mode *" users = "connect disconnect nick" other = "*" rawio = no debug = no } /* * [REQUIRED] MySQL Database configuration. * * mysql * * This module allows other modules to use MySQL. */ module { name = "mysql" mysql { /* The name of this service. */ name = "mysql/main" database = "anope" server = "127.0.0.1" username = "anope" password = "mypassword" port = 3306 } } /* * IRC2SQL Gateway * This module collects data about users, channels and servers. It doesn't build stats * itself, however, it gives you the database, it's up to you how you use it. * * Requires a MySQL Database and MySQL version 5.5 or higher */ include { type = "file" name = "irc2sql.example.conf" }