mirror of
https://github.com/anope/anope.git
synced 2026-06-12 17:04:47 +02:00
515 lines
15 KiB
Plaintext
515 lines
15 KiB
Plaintext
/*
|
|
* 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 use defines for repeated information, which can be used to easily change many
|
|
* values in the configuration at once.
|
|
*
|
|
* To use a define called foo.bar you use ${foo.bar} in your config file. You can also use
|
|
* environment variables by prefixing their name with "env." like ${env.USER}.
|
|
*/
|
|
|
|
/*
|
|
* The services.host define is used in multiple different locations throughout the
|
|
* configuration for the server name and pseudoclient hostnames.
|
|
*/
|
|
define
|
|
{
|
|
name = "services.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!
|
|
* <link name="stats.example.com"
|
|
* ipaddr="127.0.0.1"
|
|
* port="7000"
|
|
* sendpass="mypassword"
|
|
* recvpass="mypassword">
|
|
* <uline server="stats.example.com" silent="yes">
|
|
* <bind address="127.0.0.1" port="7000" type="servers">
|
|
*
|
|
* 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 = "${services.host}"
|
|
|
|
/*
|
|
* 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:
|
|
* - 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 enabled, 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 = no
|
|
|
|
/*
|
|
* 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"
|
|
}
|