summaryrefslogtreecommitdiff
path: root/data/modules.example.conf
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2011-07-14 02:31:12 -0400
committerAdam <Adam@anope.org>2011-07-14 02:31:12 -0400
commitf858164deed48f2dcacd5ffc06a55398a54da7e8 (patch)
tree89c3cf36bd8e94942370135218d67d6d17ee222e /data/modules.example.conf
parent924f6849fee4598a1a3a7f1a98d96b79e5ffd3b4 (diff)
Rewrote how commands are handled within Anope.
This allows naming commands and having spaces within command names.
Diffstat (limited to 'data/modules.example.conf')
-rw-r--r--data/modules.example.conf528
1 files changed, 528 insertions, 0 deletions
diff --git a/data/modules.example.conf b/data/modules.example.conf
new file mode 100644
index 000000000..51f9f32f9
--- /dev/null
+++ b/data/modules.example.conf
@@ -0,0 +1,528 @@
+
+/*
+ * [OPTIONAL] Non-Core Modules
+ *
+ * The following blocks are used to load all non-core modules, including 3rd-party modules.
+ * Modules can be prevented from loading by commenting out the line, other modules can be added by
+ * adding a module block. These modules will be loaded prior to Services connecting to your network.
+ */
+
+/*
+ * cs_appendtopic
+ *
+ * Adds the APPENDTOPIC command to ChanServ, which allows users to easially append text to
+ * the end of existing channel topics.
+ */
+module { name = "cs_appendtopic" }
+command { service = "ChanServ"; name = "APPENDTOPIC"; command = "chanserv/appendtopic"; }
+
+/*
+ * cs_enforce
+ *
+ * Adds the ENFORCE commad to ChanServ, which allows enforcing various channel settings like
+ * SECUREOPS and RESTRICTED.
+ */
+module { name = "cs_enforce" }
+command { service = "ChanServ"; name = "ENFORCE"; command = "chanserv/enforce"; }
+
+/*
+ * cs_entrymsg
+ *
+ * Allows you to set entry messages on your channel, which are shown to anyone
+ * who joins.
+ */
+module { name = "cs_entrymsg" }
+command { service = "ChanServ"; name = "ENTRYMSG"; command = "chanserv/entrymsg"; }
+cs_entrymsg
+{
+ /* The maximum number of entrymsgs allowed per channel. If not set, defaults to 5. */
+ maxentries = 5
+}
+
+/*
+ * cs_set_misc
+ *
+ * Allows you to create misc /chanserv set commands, and have the data
+ * show up in /chanserv info
+ */
+module { name = "cs_set_misc" }
+cs_set_misc
+{
+ /* The name of the command */
+ name = "OINFO"
+ /* A short description of the command */
+ desc = "Associate oper only information to this channel"
+ /* Set to yes if only opers and privileged users can set it and see it */
+ privileged = yes
+}
+cs_set_misc
+{
+ name = "URL"
+ desc = "Associate a URL with the channel"
+}
+cs_set_misc
+{
+ name = "EMAIL"
+ desc = "Associate an EMail with the channel"
+}
+
+/*
+ * db_plain
+ *
+ * This is the default flatfile database format. You must have at least one database
+ * module loaded or Anope will not save databases!
+ */
+module { name = "db_plain" }
+db_plain
+{
+ /*
+ * The database db_plain should use
+ */
+ database = "anope.db"
+}
+
+/*
+ * db_mysql and db_mysql_live
+ *
+ * Enables (live) MySQL support.
+ *
+ * The db_mysql_live module is an extension to db_mysql, and should only be used if
+ * db_mysql is being used. This module pulls data in real time from SQL as it is
+ * requested by the core as a result of someone executing commands.
+ *
+ * This effectively allows you to edit your database and have it be immediately
+ * reflected back in Anope.
+ *
+ * For information on how to make db_mysql_live use asynchronous queries see
+ * m_async_commands.
+ *
+ * At this time db_mysql_live only supports pulling data in real time from the three
+ * main tables: anope_cs_info, anope_ns_alias, and anope_ns_core.
+ */
+#module { name = "db_mysql" }
+#module { name = "db_mysql_live" }
+
+/*
+ * hs_request
+ *
+ * Allows users to request vhosts which opers may then view, accept or deny
+ */
+module { name = "hs_request" }
+command { service = "HostServ"; name = "REQUEST"; command = "hostserv/request"; }
+command { service = "HostServ"; name = "ACTIVATE"; command = "hostserv/active"; }
+command { service = "HostServ"; name = "REJECT"; command = "hostserv/reject"; }
+command { service = "HostServ"; name = "WAITING"; command = "hostserv/waiting"; }
+hs_request
+{
+ /*
+ * If set, Services will send a memo to the user requesting a vHost when it's been
+ * approved or rejected.
+ */
+ #memouser = yes
+
+ /*
+ * If set, Services will send a memo to all Services staff when a new vHost is requested.
+ */
+ #memooper = yes
+}
+
+/*
+ * m_async_commands
+ *
+ * Threads for each command executed by users. You should
+ * only load this if you are using a module designed to work with this.
+ *
+ * If this is loaded with db_mysql_live then Anope will support
+ * processing multiple commands at once which will negate the "lag"
+ * issues caused from the overhead of SQL queries by db_mysql_live.
+ *
+ * Note that this module is currently EXPERIMENTAL and you should report
+ * any bugs you find.
+ */
+#module { name = "m_async_commands" }
+
+/* m_dnsbl
+ *
+ * Allows configurable DNS blacklists to check connecting users against. If a user
+ * is found on the blacklist they will be immediately banned. This is a crucial module
+ * to prevent bot attacks.
+ */
+module { name = "m_dnsbl" }
+m_dnsbl
+{
+ /*
+ * If set, Services will check clients against the DNSBLs when services connect to its uplink.
+ * This is not recommended, and on large networks will open a very large amount of DNS queries.
+ * Whilst services are not drastically affected by this, your nameserver/DNSBL might care.
+ */
+ check_on_connect = no
+
+ /*
+ * If set, Services will check clients when coming back from a netsplit. This can cause a large number
+ * of DNS queries open at once. Whilst services are not drastically affected by this, your nameserver/DNSBL
+ * might care.
+ */
+ check_on_netburst = no
+
+ /*
+ * If set, OperServ will add clients found in the DNSBL to the akill list. Without it, OperServ simply sends
+ * a timed G/K-line to the IRCd and forgets about it. Can be useful if your akill list is being fill up by bots.
+ */
+ add_to_akill = yes
+}
+blacklist
+{
+ /* Name of the blacklist */
+ name = "rbl.efnetrbl.org"
+
+ /* How long to set the ban for */
+ time = 4h
+
+ /* Reason for akill.
+ * %n is the nick of the user
+ * %u is the ident/username of the user
+ * %g is the realname of the user
+ * %h is the hostname of the user
+ * %i is the IP of the user
+ * %r is the reason (configured below). Will be nothing if not configured.
+ * %N is the network name set in networkinfo:networkname
+ */
+ reason = "You are listed in the efnet RBL, visit http://rbl.efnetrbl.org/?i=%i for info"
+
+ /* Replies to ban and their reason. If this is totally ommited all replies get banned */
+ 1 = "Open Proxy"
+ /* Don't ban for result 2 or 3 */
+ #2 = "spamtrap666"
+ #3 = "spamtrap50"
+ 4 = "TOR"
+ 5 = "Drones / Flooding"
+}
+blacklist
+{
+ name = "dnsbl.dronebl.org"
+ time = 4h
+ reason = "You have a host listed in the DroneBL. For more information, visit http://dronebl.org/lookup_branded.do?ip=%i&network=%N"
+}
+
+/* m_helpchan
+ *
+ * Gives users who are op in the specified help channel usermode +h (helpop).
+ */
+#module { name = "m_helpchan" }
+m_helpchan
+{
+ helpchannel = "#help"
+}
+
+/*
+ * m_ldap
+ *
+ * This module allows other modules to use LDAP. By itself, this module does nothing useful.
+ */
+#module { name = "m_ldap" }
+ldap
+{
+ server = "ldap://127.0.0.1"
+ port = 389
+ admin_binddn = "cn=Manager,dc=anope,dc=org"
+ admin_password = "secret"
+}
+
+/*
+ * m_ldap_authentication
+ *
+ * This module allows many commands such as IDENTIFY, RELEASE, RECOVER, GHOST, etc. use
+ * LDAP to authenticate users. Requires m_ldap.
+*/
+#module { name = "m_ldap_authentication" }
+m_ldap_authentication
+{
+ /*
+ * The distinguished name we should bind to when a user tries to identify.
+ */
+ binddn = "ou=users,dc=anope,dc=org"
+
+ /*
+ * The object class used by LDAP to store user account information.
+ * Used for adding new users to LDAP if disable_ns_register is false
+ */
+ object_class = "anopeUser"
+
+ /*
+ * The attribute value used for account names.
+ */
+ username_attribute = "uid"
+
+ /*
+ * The attribute value used for email addresses.
+ * This directive is optional.
+ */
+ email_attribute = "email"
+
+ /*
+ * The attribute value used for passwords.
+ * Used when registering new accounts in LDAP.
+ */
+ password_attribute = "userPassword"
+
+ /*
+ * Enable to have this module disable /nickserv register.
+ */
+ disable_ns_register = false
+
+ /*
+ * The reason to give the users who try to /ns register if
+ * disable_ns_register is enabled.
+ */
+ #disable_reason = "To register on this network visit http://some.misconfigured.site/register"
+}
+
+/*
+ * m_ldap_oper
+ *
+ * This module dynamically ties users to Anope opertypes when they identify
+ * via LDAP group membership. Requires m_ldap.
+ *
+ * Note that this doesn't give the user privileges on the IRCd, only in Services.
+ */
+#module { name = "m_ldap_oper" }
+m_ldap_oper
+{
+ /*
+ * An optional binddn to use when searching for groups.
+ * %a is replaced with the account name of the user.
+ */
+ #binddn = "cn=Manager,dc=anope,dc=org"
+
+ /*
+ * An optional password to bind with.
+ */
+ #password = "secret"
+
+ /*
+ * The base DN where the groups are.
+ */
+ basedn = "ou=groups,dc=anope,dc=org"
+
+ /*
+ * The filter to use when searching for users.
+ * %a is replaced with the account name of the user.
+ */
+ filter = "(member=uid=%a,ou=users,dc=anope,dc=org)"
+
+ /*
+ * The attribute of the group that is the name of the opertype.
+ * The cn attribute should match a known opertype in the config.
+ */
+ opertype_attribute = "cn"
+}
+
+/*
+ * m_mysql
+ *
+ * This module allows other modules (db_mysql/db_mysql_live) to use MySQL.
+ * Be sure you have imported the table schema with mydbgen before
+ * trying to use MySQL
+ */
+#module { name = "m_mysql" }
+mysql
+{
+ database = "anope"
+ server = "127.0.0.1"
+ username = "anope"
+ password = "mypassword"
+ port = 3306
+}
+
+/*
+ * m_ssl
+ *
+ * This module uses SSL to connect to the uplink server(s)
+ */
+module { name = "m_ssl" }
+
+/*
+ * m_statusupdate
+ *
+ * This module automatically updates users status on channels when the
+ * channel's access list is modified.
+ */
+module { name = "m_statusupdate" }
+
+/*
+ * m_xmlrpc
+ *
+ * Allows remote applications (websites) to execute queries in real time to retrieve data from Anope.
+ * By itself this module does nothing, but allows other modules (m_xmlrpc_main) to receive and send XMLRPC queries.
+ */
+#module { name = "m_xmlrpc" }
+m_xmlrpc
+{
+ /* IP to listen on */
+ bindip = "127.0.0.1"
+ /* Port to listen on */
+ port = 26673
+ /* Enable for IPv6 */
+ ipv6 = no
+ /* If enabled, requires m_ssl to be loaded */
+ ssl = no
+ /* IPs allowed to connect (separate with spaces), this should be secured. We also recommend you firewall this
+ * with an outside program to increase security.
+ */
+ allowed = "127.0.0.0/24"
+}
+
+/*
+ * m_xmlrpc_main
+ *
+ * Adds the main XMLRPC core functions.
+ * Requires m_xmlrpc.
+ */
+#module { name = "m_xmlrpc_main" }
+
+/*
+ * ns_maxemail
+ *
+ * Limits how many times the same email address may be used in Anope
+ * to register accounts.
+ */
+module { name = "ns_maxemail" }
+ns_maxemail
+{
+ /*
+ * The limit to how many registered nicks can use the same e-mail address. If set to 0 or left
+ * commented, there will be no limit enforced when registering new accounts or using
+ * /msg NickServ SET EMAIL.
+ */
+ #maxemails = 1
+}
+
+/*
+ * ns_set_misc
+ *
+ * Allows you to create misc /nickserv set commands, and have the data
+ * show up in /nickserv info
+ */
+module { name = "ns_set_misc" }
+ns_set_misc
+{
+ name = "OINFO"
+ desc = "Associate oper only information to this nick"
+ privileged = yes
+}
+ns_set_misc
+{
+ name = "URL"
+ desc = "Associate a URL with the nick"
+}
+ns_set_misc
+{
+ name = "ICQ"
+ desc = "Associate an ICQ number with the nick"
+}
+
+/*
+ * os_defcon
+ *
+ * Allows you to set services in defcon mode, which can be used to restrict services access
+ * during bot attacks.
+ */
+#module { name = "os_defcon" }
+command { service = "OperServ"; name = "DEFCON"; command = "operserv/defcon"; }
+defcon
+{
+ /*
+ * Default DefCon level (1-5) to use when starting Services up. Level 5 constitutes normal operation
+ * while level 1 constitutes the most restrictive operation. If this setting is left out or set to
+ * 0, DefCon will be disabled and the rest of this block will be ignored.
+ */
+ #defaultlevel = 5
+
+ /*
+ * The following 4 directives define what operations will take place when DefCon is set to levels
+ * 1 through 4. Each level is a list that must be separated by spaces.
+ *
+ * The following operations can be defined at each level:
+ * - nonewchannels: Disables registering new channels
+ * - nonewnicks: Disables registering new nicks
+ * - nomlockchanges: Disables changing MLOCK on registered channels
+ * - forcechanmodes: Forces all channels to have the modes given in the later chanmodes directive
+ * - reducedsessions: Reduces the session limit to the value given in the later sessionlimit directive
+ * - nonewclients: KILL any new clients trying to connect
+ * - operonly: Services will ignore all non-IRCops
+ * - silentoperonly: Services will silently ignore all non-IRCops
+ * - akillnewclients: AKILL any new clients trying to connect
+ * - nonewmemos: No new memos will be sent to block MemoServ attacks
+ */
+ level4 = "nonewchannels nonewnicks nomlockchanges reducedsessions"
+ level3 = "nonewchannels nonewnicks nomlockchanges forcechanmodes reducedsessions"
+ level2 = "nonewchannels nonewnicks nomlockchanges forcechanmodes reducedsessions silentoperonly"
+ level1 = "nonewchannels nonewnicks nomlockchanges forcechanmodes reducedsessions silentoperonly akillnewclients"
+
+ /*
+ * New session limit to use when a DefCon level is using "reduced" session limiting.
+ */
+ #sessionlimit = 2
+
+ /*
+ * Length of time to add an AKILL for when DefCon is preventing new clients from connecting to the
+ * network.
+ */
+ #akillexpire = 5m
+
+ /*
+ * The channel modes to set on all channels when the DefCon channel mode system is in use.
+ *
+ * Note 1: Choose these modes carefully, because when DefCon switches to a level which does NOT have
+ * the mode setting selected, Services will set the reverse on all channels, e.g. if this setting
+ * is +RN when DefCon is used, all channels will be set to +RN, when DefCon is removed, all
+ * channels will be set to -RN. You don't want to set this to +k for example, because when DefCon
+ * is removed all channels with -k.
+ *
+ * Note 2: MLOCKed modes will not be lost.
+ */
+ #chanmodes = "+R"
+
+ /*
+ * This value can be used to automatically return the network to DefCon level 5 after the specified
+ * time period, just in case any IRC Operator forgets to remove a DefCon setting.
+ *
+ * This directive is optional.
+ */
+ #timeout = 15m
+
+ /*
+ * If set, Services will send a global message on DefCon level changes.
+ *
+ * This directive is optional.
+ */
+ #globalondefcon = yes
+
+ /*
+ * If set, Services will send the global message defined in the message directive on DefCon level
+ * changes.
+ *
+ * This directive is optional.
+ */
+ #globalondefconmore = yes
+
+ /*
+ * Defines the message that will be sent on DefCon level changes when globalondefconmore is set.
+ *
+ * This directive is required only when globalondefconmore is set.
+ */
+ #message = "Put your message to send your users here. Dont forget to uncomment globalondefconmore"
+
+ /*
+ * Defines the message that will be sent when DefCon is returned to level 5. This directive is optional,
+ * and will also override globalondefcon and globalondefconmore when set.
+ */
+ #offmessage = "Services are now back to normal, sorry for any inconvenience"
+
+ /*
+ * Defines the reason to use when clients are KILLed or AKILLed from the network while the proper
+ * DefCon operation is in effect.
+ */
+ #akillreason = "This network is currently not accepting connections, please try again later"
+}
+