X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/d8a023eddd2155648c09a0e6bdc89f371adda627..ceb3eb1de9891c2d4421123e9146b12f3c9a89f1:/doc/reference.conf diff --git a/doc/reference.conf b/doc/reference.conf index b9afb80..8012db3 100755 --- a/doc/reference.conf +++ b/doc/reference.conf @@ -1,4 +1,4 @@ -/* doc/reference.conf - charybdis Example configuration file +/* doc/reference.conf - shadowircd Example configuration file * * Copyright (C) 2000-2002 Hybrid Development Team * Copyright (C) 2002-2005 ircd-ratbox development team @@ -41,8 +41,9 @@ /* Extensions: * - * Charybdis contains several extensions that are not enabled by default. - * To use them, uncomment the lines below. + * ShadowIRCd contains several extensions that are not enabled by default. + * To use them, uncomment the lines below. More information on each extension + * can be found in extensions/README * * Channel mode +-A (admin only) -- chm_adminonly.so * Channel mode +-O (oper only) -- chm_operonly.so @@ -60,9 +61,18 @@ * Server bans (+b $s:mask) -- extb_server.so * SSL bans (+b $z) -- extb_ssl.so * HURT system -- hurt.so - * Host mangling (umode +h) -- ip_cloaking.so + * New host mangling (umode +x) -- ip_cloaking.so * Find channel forwards -- m_findforwards.so * /identify support -- m_identify.so + * /mkpassword support -- m_mkpasswd.so + * WEBIRC support -- m_webirc.so + * Send message to all admins network-wide -- m_adminwall.so + * /oaccept - add to target's accept list, oper only -- m_oaccept.so + * /opme - op self in opless channels, admin only -- m_opme.so + * /ojoin - join despite restrictions, admin only -- m_ojoin.so + * /omode - force modes in channels, admin only -- m_omode.so + * /olist - see all channels in /list, oper only -- m_olist.so + * /forcejoin - force join users, admin only -- m_force.so * Opers cannot be invisible (umode +i) -- no_oper_invis.so * Far connection notices (snomask +F) -- sno_farconnect.so * Remote k/d/x line active notices -- sno_globalkline.so @@ -70,29 +80,39 @@ * /whois notifications (snomask +W) -- sno_whois.so */ #loadmodule "extensions/chm_adminonly.so"; -#loadmodule "extensions/chm_operonly.so"; +loadmodule "extensions/chm_operonly.so"; #loadmodule "extensions/chm_sslonly.so"; #loadmodule "extensions/chm_operonly_compat.so"; #loadmodule "extensions/chm_quietunreg_compat.so"; #loadmodule "extensions/chm_sslonly_compat.so"; #loadmodule "extensions/createauthonly.so"; -#loadmodule "extensions/extb_account.so"; -#loadmodule "extensions/extb_canjoin.so"; -#loadmodule "extensions/extb_channel.so"; -#loadmodule "extensions/extb_extgecos.so"; -#loadmodule "extensions/extb_oper.so"; -#loadmodule "extensions/extb_realname.so"; +loadmodule "extensions/extb_account.so"; +loadmodule "extensions/extb_canjoin.so"; +loadmodule "extensions/extb_channel.so"; +loadmodule "extensions/extb_extgecos.so"; +loadmodule "extensions/extb_oper.so"; +loadmodule "extensions/extb_realname.so"; #loadmodule "extensions/extb_server.so"; #loadmodule "extensions/extb_ssl.so"; #loadmodule "extensions/hurt.so"; -#loadmodule "extensions/ip_cloaking.so"; +loadmodule "extensions/ip_cloaking.so"; #loadmodule "extensions/m_findforwards.so"; -#loadmodule "extensions/m_identify.so"; +loadmodule "extensions/m_identify.so"; +loadmodule "extensions/m_mkpasswd.so"; +loadmodule "extensions/m_webirc.so"; +#loadmodule "extensions/m_adminwall.so"; +#loadmodule "extensions/m_oaccept.so"; +#loadmodule "extensions/m_opme.so"; +#loadmodule "extensions/m_ojoin.so"; +#loadmodule "extensions/m_omode.so"; +#loadmodule "extensions/m_olist.so"; +#loadmodule "extensions/m_force.so"; #loadmodule "extensions/no_oper_invis.so"; -#loadmodule "extensions/sno_farconnect.so"; -#loadmodule "extensions/sno_globalkline.so"; -#loadmodule "extensions/sno_globaloper.so"; +loadmodule "extensions/sno_farconnect.so"; +loadmodule "extensions/sno_globalkline.so"; +loadmodule "extensions/sno_globaloper.so"; #loadmodule "extensions/sno_whois.so"; + /* serverinfo {}: Contains information about the server. (OLD M:) */ serverinfo { @@ -110,7 +130,7 @@ serverinfo { /* description: the description of our server. '[' and ']' may not * be used here for compatibility with older servers. */ - description = "charybdis test server"; + description = "shadowircd test server"; /* network info: the name and description of the network this server * is on. Shown in the 005 reply and used with serverhiding. @@ -322,6 +342,17 @@ auth { */ spoof = "I.still.hate.packets"; + /* autojoin: Channel (or channels, comma-seperated) to join users + * in this auth block to on connect. Note that this won't join + * the user through any bans or otherwise restrictive chmodes. + */ + autojoin = "#shadowircd,#test"; + + /* autojoin_opers : Channel (or channels, comma-seperated) to join + * opers to on oper-up. + */ + autojoin_opers = "#opers,#help"; + /* Possible flags in auth: * * encrypted | password is encrypted with mkpasswd @@ -347,6 +378,24 @@ auth { class = "opers"; }; +/* Example WEBIRC authblock */ +auth { + /* user: webirc@IP.OF.YOUR.WEBIRC . the webirc@ part is required */ + user = "webirc@192.168.1.1"; + + /* password: password the webirc client sends in the WEBIRC command. + * You can use a encrypted password here (see above auth block). + */ + password = ""; + + /* spoof: This is required to keep it what it is currently if you + * want the webirc client to show the users' real host as their + * host on IRC. + */ + spoof = "webirc."; + class = "users"; +}; + auth { /* redirect: the server and port to redirect a user to. A user does * not have to obey the redirection, the ircd just suggests to them @@ -392,6 +441,9 @@ privset "local_op" { * oper:xline: allows use of /quote xline/unxline * oper:resv: allows /quote resv/unresv and cmode +LP * oper:operwall: allows the oper to send/receive operwalls + * oper:override: allows the oper to set umode +p on themself + * which grants the ability to have implicit + * operator access in all channels. * oper:spy: allows 'operspy' features to see through +s * channels etc. see /quote help operspy * oper:hidden: hides the oper from /stats p @@ -415,7 +467,7 @@ privset "global_op" { privset "admin" { extends = "global_op"; - privs = oper:admin, oper:die, oper:rehash, oper:spy; + privs = oper:admin, oper:die, oper:rehash, oper:spy, oper:override; }; /* operator {}: defines ircd operators. (OLD O:) */ @@ -456,7 +508,24 @@ operator "god" { /* snomask: specific server notice mask on oper up. * If this is specified an oper will not be given oper_snomask. */ - snomask = "+Zbfkrsuy"; + snomask = "+FZbcfkrsuy"; + + /* vhost: defines the vhost that this oper will get on oper up. + * this must be a valid hostmask. If this is specified the oper + * will not be given default_operhost. + */ + vhost = "is.an.oper"; + + /* swhois: defines an additional line that will be displayed + * whenever someone does /whois on the oper in question. + */ + swhois = "is wearing pants."; + + /* operstring: defines a custom operstring for this oper, + * which will be shown in whois instead of default_operstring + * or default_adminstring. + */ + operstring = "is a lazy IRC Operator"; /* flags: misc options for the operator. You may prefix an option * with ~ to disable it, e.g. ~encrypted. @@ -659,13 +728,50 @@ exempt { /* The channel block contains options pertaining to channels */ channel { + /* autochanmodes: Modes that will be set on a unregistered channel + * when the first user joins it. + */ + autochanmodes = "nt"; + + /* exemptchanops: Channel modes that any form of channel ops (+aoh) + * will be exempt from. Even if the mode is set, it will not apply to the + * channel ops if it is listed in this option. Valid modes are cCDTNGK. + */ + exemptchanops = "NT"; + + /* halfop: Enable/disable channel mode +h, which adds halfop, + * a channel status below op that has op powers (kick, ban, mode, etc.) + * halfops can only kick/devoice/etc people who are +v or + * do not have any channel status. Disabling this via rehash will + * cause things which are rather confusing to occur, it is highly + * recommended to restart if you wish to disable this option, though + * it may be enabled by rehash with no problems. + */ + use_halfop = yes; + + /* admin: Enable/disable channel mode +a, which adds admin, + * a channel status above op that has op powers (kick, ban, mode, etc.) + * admins can only be kicked/deadmined by other admins, and may kick + * or deop anyone. Disabling this via rehash will cause things which + * are rather confusing to occur, it is highly recommended to restart + * if you wish to disable this option, though it may be enabled + * by rehash with no problems. + */ + use_admin = yes; + /* invex: Enable/disable channel mode +I, a n!u@h list of masks - * that can join a +i channel without an invite. + * that can join a +i channel without an invite. Disabling this option + * via rehash will leave all previously set invexes hanging around, + * though they will not do anything. For this reason, you may want to + * restart to disable this option. */ use_invex = yes; /* except: Enable/disable channel mode +e, a n!u@h list of masks - * that can join a channel through a ban (+b). + * that can join a channel through a ban (+b). Disabling this option + * via rehash will leave all previously set excepts hanging around, + * though they will not do anything. For this reason, you may want to + * restart to disable this option. */ use_except = yes; @@ -680,6 +786,12 @@ channel { */ use_knock = yes; + /* local channels: &Channel - a channel that exists only on one server + * people on other servers will not be able to see or join local channels + * from another server. + */ + use_local_channels = yes; + /* knock delay: The amount of time a user must wait between issuing * the knock command. */ @@ -748,11 +860,28 @@ channel { * or non-ASCII). */ only_ascii_channels = no; + + /* cycle_host_change: Should a user be cycled in the channels + * they're in when their host changes. If set to no, this may + * cause client desyncs. + */ + cycle_host_change = yes; + + /* host_in_topic: Defines whether or not the topicsetter's + * host is shown when users request the TOPIC. If this option + * is set to no, it will only show the nick of the topicsetter. + */ + host_in_topic = yes; /* resv_forcepart: force any local users to part a channel * when a RESV is issued. */ resv_forcepart = yes; + + /* kick_no_rejoin_time: the amount of time that a user cannot + * rejoin for after being kicked out of a +J channel. + */ + kick_no_rejoin_time = 30 seconds; }; @@ -842,6 +971,14 @@ alias "MemoServ" { target = "MemoServ"; }; +alias "HostServ" { + target = "HostServ"; +}; + +alias "BotServ" { + target = "BotServ"; +}; + alias "NS" { target = "NickServ"; }; @@ -858,6 +995,14 @@ alias "MS" { target = "MemoServ"; }; +alias "HS" { + target = "HostServ"; +}; + +alias "BS" { + target = "BotServ"; +}; + /* The general block contains many of the options that were once compiled * in options in config.h. The general block is read at start time. */ @@ -884,10 +1029,10 @@ general { /* default umodes: umodes to set upon connection * If you have enabled the ip_cloaking extension, and you wish for - * incoming clients to be set +h upon connection, add +h to the umode - * string below. + * incoming clients to be cloaked upon connection, +x must be in + * the umode string below. */ - default_umodes = "+i"; + default_umodes = "+ix"; /* default operstring: defines the default oper response * in /whois queries, eg "is an IRC Operator". @@ -901,6 +1046,18 @@ general { */ default_adminstring = "is a Server Administrator"; + /* default operhost: defines the default virtual host that + * operators will receiving upon opering up. Can be overriden + * by the vhost option in individual operator blocks. This + * must be a valid hostmask. + */ + default_operhost = "staff.testnet.net"; + + /* static quit: Quit message to display for all users (not opers) + * on QUIT. + */ + #static_quit = "I like turtles!"; + /* servicestring: defines the response for opered services (+S) * in /whois queries, eg "is a Network Service". * This is updated on rehash. @@ -961,10 +1118,16 @@ general { max_nick_time = 20 seconds; max_nick_changes = 5; - /* anti spam time: the minimum time a user must be connected before + /* anti spam time: the minimum time a user must be connected before * custom quit messages are allowed. */ - anti_spam_exit_message_time = 5 minutes; + anti_spam_exit_message_time = 5 minutes; + + /* use part messages: This option controls whether users should be + * allowed to send PART messages to channels. It should probably + * be set to no if static_quit is set. + */ + use_part_messages = yes; /* ts delta: the time delta allowed between server clocks before * a warning is given, or before the link is dropped. all servers @@ -1009,7 +1172,7 @@ general { /* kline reason: make the users quit message on channels this * reason instead of the oper's reason. */ - kline_reason = "Connection closed"; + kline_reason = "K-Lined"; /* identify to services via server password * if auth{} block had no password but the user specified a @@ -1077,6 +1240,12 @@ general { * protected. */ operspy_dont_care_user_info = no; + /* secret channels in whois: display secret channels in /whois + * even if operspy was not used, as long as the oper doing the + * whois has the oper:spy priv. this will not send any kind of + * server notice. */ + secret_channels_in_whois = no; + /* caller id wait: time between notifying a +g user that somebody * is messaging them. */ @@ -1143,6 +1312,11 @@ general { * +s - servnotice - See server notices * +w - wallop - See oper and server generated WALLOPS * +z - operwall - See operwalls + * +C - noctcp - Block CTCPs to user. + * +V - noinvite - Block INVITE to user. + * +B - bot - Marks as a bot. + * +p - override - Implicit operator access in all channels. + * This is oper-only and requires the oper:override privledge. */ /* oper only umodes: usermodes only opers may set */ @@ -1209,6 +1383,11 @@ general { /* throttle_count: Number of connections within throttle_duration that it takes * for throttling to take effect */ throttle_count = 4; + + /* expire_override_time: User mode +p will be automatically unset + * this long after it is set. 0 disables this. Default is 5 minutes. + */ + expire_override_time = 5 minutes; }; modules {