/* This is an example configuration for Atheme. * * All statements end in semi-colons (';'). * Shell style, C style, and C++ style comments may be used. * * Items marked with "(*)" are reconfigurable at runtime via REHASH. */ /* Protocol module. * * Please select a protocol module. Different servers use different protocols. * Below is a listing of ircd's known to work with the various protocol modules * available. * * Asuka 1.2.1 or later modules/protocol/asuka * Bahamut 1.8.x modules/protocol/bahamut * Beware IRCd (bircd) modules/protocol/bircd * Charybdis IRCd modules/protocol/charybdis * dancer-ircd/hyperion modules/protocol/hyperion * DreamForge 4.6.7 or later modules/protocol/dreamforge * Hybrid 7.1.2 and later modules/protocol/hybrid * ircd-ratbox 2.0 and later modules/protocol/ratbox * IRCNet ircd (ircd 2.11) modules/protocol/ircnet * ircu 2.10.11.07 or later modules/protocol/undernet * IRCXPRO 1.2/OfficeIRC modules/protocol/officeirc * InspIRCd 1.1b1 or later modules/protocol/inspircd11 * Nefarious IRCu 0.4.0 or later modules/protocol/nefarious * PleXusIRCd 3.x modules/protocol/plexus * PTlink IRCd modules/protocol/ptlink * ShadowIRCd 3.3/3.6 family modules/protocol/shadowircd * sorircd 1.3.1 or later modules/protocol/sorcery * UltimateIRCd 3.0 or later modules/protocol/ultimate3 * UnrealIRCd 3.1/3.2 modules/protocol/unreal * * If your IRCd vendor has supplied a module file, build it and load it here * instead of one above. */ #loadmodule "modules/protocol/charybdis"; /* Database backend module. * * Please select a database backend module. Different backends allow for * different ways in which the services data can be manipulated. YOU MAY * ONLY HAVE ONE OF THESE BACKENDS LOADED. * * The following backends are available: * * Atheme 0.1 flatfile database format modules/backend/flatfile * * Most networks will want flatfile. The PostgreSQL backend requires * PostgreSQL to be installed on the machine. * * As of Atheme 2.2, the PostgreSQL backend is no longer supported. */ loadmodule "modules/backend/flatfile"; /* Crypto module. * * If you would like encryption for your services passwords, please * select a module here. Note that upon starting with a crypto module * YOUR PASSWORDS ARE IMMEDIATELY AND IRREVERSIBLY CONVERTED. Make at * least TWO backups of your database before experimenting with this. * If you have several thousand accounts, this conversion may take * appreciable time. * * The following crypto modules are available: * * POSIX-style crypt(3) modules/crypto/posix * IRCServices (also Anope etc) compatibility modules/crypto/ircservices * SorceryNet services compatibility modules/crypto/sorservices * * The ircservices and sorservices modules are only recommended for use with * a database converted from other services with password encryption. */ #loadmodule "modules/crypto/posix"; /* NickServ modules. * * Here you can disable or enable certain features of NickServ, by * defining which modules are loaded. You can even disable NickServ * entirely. Please note however, that an authentication service * (either NickServ, or UserServ) are required for proper functionality. * * Core components modules/nickserv/main * Nickname access lists modules/nickserv/access * DROP command modules/nickserv/drop * GHOST command modules/nickserv/ghost * GROUP and UNGROUP commands modules/nickserv/group * HELP command modules/nickserv/help * Nickname expiry override (HOLD command) modules/nickserv/hold * IDENTIFY command modules/nickserv/identify * INFO command modules/nickserv/info * LIST command modules/nickserv/list * LISTMAIL command modules/nickserv/listmail * LOGIN command (for no_nick_ownership) modules/nickserv/login * LOGOUT command modules/nickserv/logout * MARK command modules/nickserv/mark * FREEZE command modules/nickserv/freeze * LISTCHANS command modules/nickserv/listchans * REGISTER command modules/nickserv/register * Password reset (RESETPASS command) modules/nickserv/resetpass * Password return (RETURN command) modules/nickserv/return * Password retrieval (SENDPASS command) modules/nickserv/sendpass * SET command modules/nickserv/set * Password retrieval uses code (SETPASS cmd) modules/nickserv/setpass * Presence notifications (SUBSCRIBE command) modules/nickserv/subscribe * Nickname enforcement modules/nickserv/enforce * STATUS command modules/nickserv/status * Nickname metadata viewer (TAXONOMY command) modules/nickserv/taxonomy * VERIFY command modules/nickserv/verify * VHOST command modules/nickserv/vhost */ loadmodule "modules/nickserv/main"; #loadmodule "modules/nickserv/access"; loadmodule "modules/nickserv/drop"; loadmodule "modules/nickserv/ghost"; #loadmodule "modules/nickserv/group"; loadmodule "modules/nickserv/help"; loadmodule "modules/nickserv/hold"; loadmodule "modules/nickserv/identify"; loadmodule "modules/nickserv/info"; loadmodule "modules/nickserv/list"; loadmodule "modules/nickserv/listmail"; #loadmodule "modules/nickserv/login"; loadmodule "modules/nickserv/logout"; loadmodule "modules/nickserv/mark"; loadmodule "modules/nickserv/freeze"; loadmodule "modules/nickserv/listchans"; loadmodule "modules/nickserv/register"; loadmodule "modules/nickserv/resetpass"; loadmodule "modules/nickserv/return"; loadmodule "modules/nickserv/sendpass"; loadmodule "modules/nickserv/set"; loadmodule "modules/nickserv/setpass"; loadmodule "modules/nickserv/subscribe"; #loadmodule "modules/nickserv/enforce"; loadmodule "modules/nickserv/status"; loadmodule "modules/nickserv/taxonomy"; loadmodule "modules/nickserv/verify"; loadmodule "modules/nickserv/vhost"; /* ChanServ modules. * * Here you can disable or enable certain features of ChanServ, by * defining which modules are loaded. You can even disable ChanServ * entirely. Please note that ChanServ requires an authentication * service, either NickServ or UserServ will do. * * Core components modules/chanserv/main * AKICK command modules/chanserv/akick * BAN/UNBAN commands modules/chanserv/ban * UNBAN self only (load ban or this not both) modules/chanserv/unban_self * CLOSE command modules/chanserv/close * CLEAR command modules/chanserv/clear * CLEAR BANS command modules/chanserv/clear_bans * CLEAR USERS command modules/chanserv/clear_users * COUNT command modules/chanserv/count * DROP command modules/chanserv/drop * Forced flags changes modules/chanserv/fflags * FLAGS command modules/chanserv/flags * Forced foundership transfers modules/chanserv/ftransfer * GETKEY command modules/chanserv/getkey * HALFOP/DEHALFOP commands modules/chanserv/halfop * HELP command modules/chanserv/help * Channel expiry override (HOLD command) modules/chanserv/hold * INFO command modules/chanserv/info * INVITE command modules/chanserv/invite * KICK/KICKBAN commands modules/chanserv/kick * LIST command modules/chanserv/list * MARK command modules/chanserv/mark * OP/DEOP commands modules/chanserv/op * QUIET command (+q support) modules/chanserv/quiet * Channel takeover recovery (RECOVER command) modules/chanserv/recover * REGISTER command modules/chanserv/register * SET command modules/chanserv/set * STATUS command modules/chanserv/status * Channel metadata viewer (TAXONOMY command) modules/chanserv/taxonomy * TEMPLATE command modules/chanserv/template * TOPIC/TOPICAPPEND commands modules/chanserv/topic * VOICE/DEVOICE commands modules/chanserv/voice * WHY command modules/chanserv/why * VOP/HOP/AOP/SOP commands modules/chanserv/xop */ loadmodule "modules/chanserv/main"; loadmodule "modules/chanserv/akick"; loadmodule "modules/chanserv/ban"; #loadmodule "modules/chanserv/unban_self"; loadmodule "modules/chanserv/close"; loadmodule "modules/chanserv/clear"; loadmodule "modules/chanserv/clear_bans"; loadmodule "modules/chanserv/clear_users"; loadmodule "modules/chanserv/count"; loadmodule "modules/chanserv/drop"; #loadmodule "modules/chanserv/fflags"; loadmodule "modules/chanserv/flags"; loadmodule "modules/chanserv/ftransfer"; loadmodule "modules/chanserv/getkey"; loadmodule "modules/chanserv/halfop"; loadmodule "modules/chanserv/help"; loadmodule "modules/chanserv/hold"; loadmodule "modules/chanserv/info"; loadmodule "modules/chanserv/invite"; loadmodule "modules/chanserv/kick"; loadmodule "modules/chanserv/list"; loadmodule "modules/chanserv/mark"; loadmodule "modules/chanserv/op"; #loadmodule "modules/chanserv/quiet"; loadmodule "modules/chanserv/recover"; loadmodule "modules/chanserv/register"; loadmodule "modules/chanserv/set"; loadmodule "modules/chanserv/status"; loadmodule "modules/chanserv/taxonomy"; loadmodule "modules/chanserv/template"; loadmodule "modules/chanserv/topic"; loadmodule "modules/chanserv/voice"; loadmodule "modules/chanserv/why"; loadmodule "modules/chanserv/xop"; /* OperServ modules. * * Here you can disable or enable certain features of OperServ, by * defining which modules are loaded. * * Core components modules/operserv/main * AKILL system modules/operserv/akill * CLEARCHAN command modules/operserv/clearchan * CLONES system modules/operserv/clones * COMPARE command modules/operserv/compare * HELP command modules/operserv/help * IGNORE system modules/operserv/ignore * INJECT command modules/operserv/inject * JUPE command modules/operserv/jupe * MODE command modules/operserv/mode * MODINSPECT command modules/operserv/modinspect * MODLIST command modules/operserv/modlist * MODLOAD command modules/operserv/modload * MODRESTART command modules/operserv/modrestart * MODUNLOAD command modules/operserv/modunload * NOOP system modules/operserv/noop * Regex mass akill (RAKILL command) modules/operserv/rakill * RAW command modules/operserv/raw * REHASH command modules/operserv/rehash * RESTART command modules/operserv/restart * Display regex matching (RMATCH command) modules/operserv/rmatch * Most common realnames (RNC command) modules/operserv/rnc * RWATCH system modules/operserv/rwatch * SHUTDOWN command modules/operserv/shutdown * Non-config oper privileges (SOPER command) modules/operserv/soper * Oper privilege display (SPECS command) modules/operserv/specs * UPDATE command modules/operserv/update * UPTIME command modules/operserv/uptime */ loadmodule "modules/operserv/main"; loadmodule "modules/operserv/akill"; #loadmodule "modules/operserv/clearchan"; #loadmodule "modules/operserv/clones"; loadmodule "modules/operserv/compare"; loadmodule "modules/operserv/help"; loadmodule "modules/operserv/ignore"; loadmodule "modules/operserv/jupe"; loadmodule "modules/operserv/mode"; loadmodule "modules/operserv/modinspect"; loadmodule "modules/operserv/modlist"; loadmodule "modules/operserv/modload"; loadmodule "modules/operserv/modrestart"; loadmodule "modules/operserv/modunload"; loadmodule "modules/operserv/noop"; #loadmodule "modules/operserv/rakill"; loadmodule "modules/operserv/rehash"; loadmodule "modules/operserv/restart"; loadmodule "modules/operserv/rmatch"; loadmodule "modules/operserv/rnc"; loadmodule "modules/operserv/rwatch"; loadmodule "modules/operserv/shutdown"; #loadmodule "modules/operserv/soper"; loadmodule "modules/operserv/specs"; loadmodule "modules/operserv/update"; loadmodule "modules/operserv/uptime"; /* MemoServ modules. * * Here you can disable or enable certain features of MemoServ, by * defining which modules are loaded. You can even disable MemoServ * entirely. * * Core components modules/memoserv/main * HELP command modules/memoserv/help * SEND command modules/memoserv/send * Channel memos (SENDOPS command) modules/memoserv/sendops * LIST command modules/memoserv/list * READ command modules/memoserv/read * FORWARD command modules/memoserv/forward * DELETE command modules/memoserv/delete * IGNORE command modules/memoserv/ignore */ loadmodule "modules/memoserv/main"; loadmodule "modules/memoserv/help"; loadmodule "modules/memoserv/send"; loadmodule "modules/memoserv/sendops"; loadmodule "modules/memoserv/list"; loadmodule "modules/memoserv/read"; loadmodule "modules/memoserv/forward"; loadmodule "modules/memoserv/delete"; loadmodule "modules/memoserv/ignore"; /* Global module. * * Like the other services, the Global noticer is a module. You can * disable or enable it to your liking below. Please note that the * Global noticer is dependent on OperServ for full functionality. */ loadmodule "modules/global/main"; /* SASL agent module. * * Allows clients to authenticate to services via SASL with an appropriate * ircd. You need the core components and at least one mechanism. * * Core components modules/saslserv/main * PLAIN mechanism modules/saslserv/plain * DH-BLOWFISH mechanism modules/saslserv/dh-blowfish */ #loadmodule "modules/saslserv/main"; #loadmodule "modules/saslserv/plain"; #loadmodule "modules/saslserv/dh-blowfish"; /* requires SSL */ /* GameServ modules. * * Here you can disable or enable certain features of GameServ, by * defining which modules are loaded. You can even disable GameServ * entirely. * * Core components modules/gameserv/main * DICE/WOD commands modules/gameserv/dice * HELP commands modules/gameserv/help * NAMEGEN command modules/gameserv/namegen */ #loadmodule "modules/gameserv/main"; #loadmodule "modules/gameserv/dice"; #loadmodule "modules/gameserv/help"; #loadmodule "modules/gameserv/namegen"; /* * Various modules. * * Atheme includes an optional HTTP server that can be used for integration * with portal software and other useful things. To enable it, load this * module, and uncomment the httpd { } block towards the bottom of the config. * * HTTP Server modules/misc/httpd */ loadmodule "modules/misc/httpd"; /* XMLRPC server module. * * The XML-RPC handler requires modules/misc/httpd to be loaded as it merely * registers a path handler for XML-RPC. The path used for XML-RPC is /xmlrpc. * * XMLRPC handler for the httpd modules/xmlrpc/main * Legacy account management modules/xmlrpc/account * Legacy channel management modules/xmlrpc/channel * Legacy memo management modules/xmlrpc/memo */ loadmodule "modules/xmlrpc/main"; #loadmodule "modules/xmlrpc/account"; #loadmodule "modules/xmlrpc/channel"; #loadmodule "modules/xmlrpc/memo"; /* Other modules. * * Put any other modules you want to load on startup here. The path * is relative to PREFIX or PREFIX/lib/atheme, depending on how Atheme * was compiled. * Note: modules directly under modules/ are loaded automatically even * if not listed here. */ #loadmodule "contrib/fc_dice"; /* The serverinfo{} block defines how we * appear on the IRC network. */ serverinfo { /* name * The server name that this program uses on the IRC network. * This is the name you'll have to use in C:/N:Lines. It must be * unique on the IRC network and contain at least one dot, but does * not have to be equal to any DNS name. */ name = "services.int"; /* desc * The ``server comment'' we send to the IRC network. * If you want server hiding, prefix your desc with "(H)" */ desc = "Atheme IRC Services"; /* numeric * Some protocol drivers (Charybdis, Ratbox2, Hybrid, P10, IRCNet) * require a server id, also known as a numeric. Please consult your * ircd's documentation when providing this value. */ numeric = "00A"; /* (*)recontime * The number of seconds before we reconnect to the uplink. */ recontime = 10; /* (*)netname * The name of your network. */ netname = "misconfigured network"; /* (*)hidehostsuffix * P10 +x host hiding gives .. * If using +x on asuka/bircd/undernet, this must agree * with F:HIDDEN_HOST. */ hidehostsuffix = "users.misconfigured"; /* (*)adminname * The name of the person running this service. */ adminname = "misconfigured admin"; /* (*)adminemail * The email address of the person running this service. */ adminemail = "misconfigured@admin.tld"; /* (*)mta * The full path to your mail transfer agent. * This is used for email authorization and password retrieval. * Comment this out to disable sending email. * Warning: sending email can disclose the IP of your services * unless you take precautions (not discussed here further). */ mta = "/usr/sbin/sendmail"; /* (*)loglevel * Specify the default categories of logging information to record * in the master Atheme logfile, usually var/atheme.log. * * Options include: * debug, all - meta-keyword for all possible categories * trace - meta-keyword for a little bit of info * misc - like trace, but with some more miscillaneous info * notice - meta-keyword for notice-like information * ------------------------------------------------------------------------------ * error - critical errors * info - miscillaneous log notices * commands - all command use * admin - administrative command use * register - account and channel registrations * set - changes of account or channel settings * network - log notices related to network status * rawdata - log raw data sent and received by services * wallops - */ loglevel = { error; info; admin; network; wallops; }; /* (*)maxlogins * What is the maximum number of sessions allowed to login to one * username? This reduces potential abuse. It is only checked on login. */ maxlogins = 5; /* (*)maxusers * What are the maximum usernames that one email address can register? */ maxusers = 5; /* (*)maxnicks * If GROUP is loaded, what are the maximum nicknames that one * username can register? */ maxnicks = 5; /* (*)maxchans * What are the maximum channels that one username can register? */ maxchans = 5; /* (*)mdlimit * How many metadata entries can be added to an object? */ mdlimit = 30; /* (*)emaillimit, emailtime * The maximum number of emails allowed to be sent in * that amount of time (seconds). If this is exceeded, * wallops will be sent, at most one per minute. */ emaillimit = 10; emailtime = 300; /* (*)auth * What type of username registration authorization do you want? * If "email," Atheme will send a confirmation email to the address to * ensure it's valid. If "none," no message will be sent and the username * will be fully registered. * Valid values are: email, none. */ auth = none; /* casemapping * Specify the casemapping to use. Almost all TSora (and any that follow * the RFC correctly) ircds will use rfc1459 casemapping. Bahamut, Unreal, * and other ``Dalnet'' ircds will use ascii casemapping. * Valid values are: rfc1459, ascii. */ casemapping = rfc1459; }; /* uplink{} blocks define connections to IRC servers. * Multiple may be defined but only one will be used at a time (IRC * being a tree shaped network). */ uplink "irc.example.net" { // the server name goes above // host // The hostname to connect to. host = "127.0.0.1"; // vhost // The source IP to connect from, used on machines with multiple interfaces. #vhost = "202.119.187.31"; // password // The password used for linking. password = "linkage"; // port // The port used for linking. port = 6667; }; /* The nickserv {} block defines settings specific to the nickname/username * registration services client on the IRC network. */ nickserv { // If you want NickServ to tell people about how great it is, enable the directive // below. spam; /* no_nick_ownership * Enable this to disable nickname ownership (old userserv{}). * This changes changes "nickname" to "account" in most messages, * disables GHOST on users not logged in to the same account and * makes the spam directive ineffective. * It is suggested that the nick be set to UserServ, login.so * be loaded instead of identify.so and ghost.so not be loaded. */ #no_nick_ownership; /* (*)nick * The nickname we want NickServ to have. */ nick = "NickServ"; /* user * The username we want NickServ to have. */ user = "NickServ"; /* host * The hostname we want NickServ to have. */ host = "services.int"; /* real * The realname (gecos) information we want NickServ to have. */ real = "Nickname Services"; /* (*)expire * The number of days before inactive registrations are expired. */ expire = 30; }; /* The chanserv {} block defines settings specific to the channel * services client on the IRC network. */ chanserv { /* (*)nick * The nickname we want the client to have. */ nick = "ChanServ"; /* user * The username we want the client to have. */ user = "ChanServ"; /* host * The hostname we want the client to have. */ host = "services.int"; /* real * The GECOS of the client. */ real = "Channel Services"; /* fantasy * Do you want to enable fantasy commands? This can * use a lot of CPU up, and will only work if you have * join_chans (in general) enabled as well. */ fantasy; /* (*) ca_xop * Defines what flags the xop access levels comprise. * These should all be different and not equal to the empty set, * except that hop may be equal to vop to disable hop. * Each subsequent level should have more flags (except +VHO). * For optimal functioning of /cs forcexop, aop should not have * any of +sRf, hop should not have any of +sRfoOr and vop should * not have any of +sRfoOrhHt. * If this is not specified, the values of Atheme 0.3 are used, * which are generally less intuitive than these. * Note: changing these leaves the flags of existing channel access * entries unchanged, thus removing them of the view of /cs xop list. * Usually the channel founder can use /cs forcexop to update the * entries to the new levels. */ vop = "+VA"; hop = "+vVhHtA"; aop = "+vhoOtriA"; sop = "+vhoOtrsifA"; /* (*) changets * Change the channel TS to the registration time when someone * recreates a registered channel, ensuring that they are deopped * and all their modes are undone. When the channel was not recreated * no deops will be done (apart from the SECURE option). * This also solves the "join-mode" problem where someone recreates * a registered channel and then sets some modes before they are * deopped. * This is currently supported for charybdis, hybrid, ratbox and * bahamut. For charybdis, hybrid and ratbox it only fully works * with TS6, with TS5 bans and last-moment modes will still apply. * (That can also be used to advantage, when first enabling this.) */ #changets; /* (*) trigger * This setting allows you to change the trigger prefix for * ChanServ's in-channel command feature (disableable via chanserv::fantasy). * If no setting is provided, the default is used, which is "!". * * Other settings you could consider trying: ".", "~", "?", "`", "'". */ trigger = "!"; /* (*)expire * The number of days before inactive registrations are expired. */ expire = 30; /* (*)maxchanacs * The maximum number of entries allowed in a channel's access list * (both channel ops and akicks), 0 for unlimited. */ maxchanacs = 0; }; /* The global {} block defines settings concerning the global noticer. */ global { /* nick * Sets the nick used for sending out a global notice. */ nick = "Global"; /* user * Sets the username used for this client. */ user = "Global"; /* host * The hostname used for this client. */ host = "services.int"; /* real * The GECOS (real name) of the client. */ real = "Network Announcements"; }; /* The operserv {} block defines settings concerning the operator service. */ operserv { /* nick * The nickname we want the Operator Service to have. */ nick = "OperServ"; /* user * Sets the username used for this client. */ user = "OperServ"; /* host * The hostname used for this client. */ host = "services.int"; /* real * The GECOS (real name) of the client. */ real = "Operator Services"; }; /* If you are using a SQL database, you will need to change these settings. */ database { /* user * Username to use when connecting to the DBMS server. */ user = "atheme"; /* password * Password to use when connecting to the DBMS server. */ password = "atheme"; /* host * Host the DBMS server is running on. */ host = "localhost"; /* port (optional) * Used to change the port used for connecting to the DBMS. */ #port = 3306; /* database * The SQL database to use with Atheme. */ database = "atheme"; }; /* If you are using SASL, uncomment this */ #saslserv { # /* (*)nick # * The nickname we want SaslServ to have. # */ # nick = "SaslServ"; # # /* user # * The username we want SaslServ to have. # */ # user = "SaslServ"; # # /* host # * The hostname we want SaslServ to have. # */ # host = "services.int"; # # /* real # * The realname (gecos) information we want SaslServ to have. # */ # real = "SASL Authentication Agent"; #}; /* The httpd {} block defines configuration parameters for the * HTTP server. */ httpd { /* host * The host that the HTTP server will listen on. * Use 0.0.0.0 if you want to listen on all available hosts. */ host = "0.0.0.0"; /* www_root * The directory that contains the files that should be served by the httpd. */ www_root = "/var/www"; /* port * The port that the HTTP server will listen on. */ port = 8080; }; /* MemoServ */ memoserv { /* (*)nick * The nickname we want MemoServ to have. */ nick = "MemoServ"; /* user * The username we want MemoServ to have. */ user = "MemoServ"; /* host * The hostname we want MemoServ to have. */ host = "services.int"; /* real * The realname (gecos) information we want MemoServ to have. */ real = "Memo Services"; }; /* The gameserv {} block defines settings concerning GameServ. */ gameserv { /* nick * The nickname we want GameServ to have. */ nick = "GameServ"; /* user * Sets the username used for this client. */ user = "GameServ"; /* host * The hostname used for this client. */ host = "services.int"; /* real * The GECOS (real name) of the client. */ real = "Game Services"; }; /* * logfile{} blocks can be used to set up log files other than the master * logfile used by services, which is controlled by serverinfo::loglevel. * * The various logging categories are: * debug, all - meta-keyword for all possible categories * trace - meta-keyword for a little bit of info * misc - like trace, but with some more miscillaneous info * notice - meta-keyword for notice-like information * ------------------------------------------------------------------------------ * error - critical errors * info - miscillaneous log notices * commands - all command use * admin - administrative command use * register - account and channel registrations * set - changes of account or channel settings * network - log notices related to network status * rawdata - log raw data sent and received by services * wallops - */ /* * This block logs all account and channel registrations and drops, * and account and channel setting changes to var/account.log. */ logfile "var/account.log" { register; set; }; /* * This block logs all command use to var/commands.log. */ logfile "var/commands.log" { commands; }; /* The general {} block defines general configuration options. */ general { /* (*)chan * The channel the client joins and sends certain * messages to. * Comment to disable. */ chan = "#services"; /* (*)silent * If you want to prevent services from sending * WALLOPS/GLOBOPS about things uncomment this. * Not recommended. */ #silent; /* (*)verbose_wallops * If you want services to send you more information about * events that are occuring (in particular AKILLs), uncomment the * directive below. * * WARNING! This may result in large amounts of wallops/globops * floods. */ #verbose_wallops; /* (*)use_privmsg * If you want services to send messages via PRIVMSG instead of * NOTICE, uncomment this below. This could be useful for networks * with WEBTV users and various other improperly designed IRC clients * connecting to it, such as flash and java chat clients and IRC * clients for the physically handicapped. * * WARNING! It is against the IRC RFC to respond to PRIVMSG * automatically with another PRIVMSG, because it can cause * feedback loops between bots and services. You have been warned. * Some users may not like this feature very well, it * can be rather annoying. */ #use_privmsg; /* (*)join_chans * Should ChanServ be allowed to join registered channels? * This option is useful for the fantasy command set. * * If enabled, you can tell ChanServ to join via SET GUARD ON. * * If you use ircu-like ircd (asuka, bircd, undernet), you must * leave this enabled, and put guard in default cflags. * * For ratbox it is recommended to leave it on and put guard in * default cflags, in order that ChanServ does not have to join/part * to do certain things. On the other hand, enabling this increases * potential for bots fighting with ChanServ. * * Regardless of this option, ChanServ will temporarily join * channels which would otherwise be empty if necessary to enforce * akick/staffonly/close. */ join_chans; /* (*)leave_chans * Do we leave registered channels after everyone else has left? * Turning this off serves little purpose, except to mark "official" * network channels by keeping them open, and to preserve the * topic and +beI lists. */ leave_chans; /* secure * Do you want to require the use of /msg @? * Turning this on helps protect against spoofers, but is disabled * as most networks do not presently use it. */ #secure; /* (*)uflags * The default flags to set for usernames upon registration. * Valid values are: hold, neverop, noop, hidemail, and none. */ uflags = { none; }; /* (*)cflags * The default flags to set for channels upon registration. * Valid values are: hold, secure, verbose, verbose_ops, keeptopic, * topiclock, guard and none. */ cflags = { verbose; guard; }; /* (*)raw * Do you want to allow SRAs to use the RAW and INJECT commands? * These commands are for debugging. If you don't know how to use them * then don't enable them. They are not supported. */ #raw; /* (*)flood_msgs * Do you want services to detect floods? * Set to how many messages before a flood is triggered. * If services receives `flood_msgs' within `flood_time' the user will * trigger the flood protection. * Setting this to zero disables flood protection. */ flood_msgs = 7; /* (*)flood_time * Do you want services to detect floods? * Set to how long before the counter resets. * If services receives `flood_msgs' within `flood_time' the user will * trigger the flood protection. */ flood_time = 10; /* (*)kline_time * The default expire time for KLINE's in days. * Setting this to 0 makes all KLINE's permanent. */ kline_time = 7; /* commit_interval * The time between database writes in minutes. */ commit_interval = 5; }; /* Operator configuration * See the PRIVILEGES document for more information. * NOTE: All changes apply immediately upon rehash. You may need * to send a signal to regain control. */ /* (*) Operclasses specify groups of services operator privileges */ operclass "sra" { /* You can have multiple privs {} blocks in an oper class. * This example uses multiple privs {} blocks to organize the privileges * granted to the operclass by category. */ privs = { special:ircop; }; privs = { user:auspex; user:admin; user:sendpass; user:vhost; user:mark; user:hold; user:regnolimit; }; privs = { chan:auspex; chan:admin; chan:cmodes; chan:joinstaffonly; }; privs = { general:auspex; general:viewprivs; general:flood; general:metadata; general:admin; }; privs = { operserv:omode; operserv:akill; #operserv:massakill; operserv:jupe; operserv:noop; operserv:global; operserv:grant; }; /* needoper * Only grant privileges to IRC users in this oper class if they * are opered; other use of privilege (channel succession, XMLRPC, * etc.) is unaffected by this. */ needoper; }; /* The "ircop" operclass specifies privileges all IRCops get. * This may be empty in which case IRCops get no privs. * At least chan:cmodes, chan:joinstaffonly and general:auspex are suggested. */ operclass "ircop" { privs = { special:ircop; }; privs = { user:auspex; user:admin; user:sendpass; user:vhost; user:mark; }; privs = { chan:auspex; chan:admin; chan:cmodes; chan:joinstaffonly; }; privs = { general:auspex; general:viewprivs; general:flood; }; privs = { operserv:omode; operserv:akill; operserv:jupe; operserv:global; }; }; /* (*) Operator blocks specify accounts with certain privileges * Oper classes must be defined before they are used in operator blocks. */ operator "jilles" { operclass = "sra"; }; /* You may also specify other files for inclusion. * For example: * * include "etc/sras.conf"; */