]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - doc/reference.conf
Add lines warning people of the confusion that awaits them upon disabling +ah and...
[irc/rqf/shadowircd.git] / doc / reference.conf
index 5ff7fdc39db829d7cf1f088325e929bbbc4bae9e..7134619ba7f8eebb645523977bd6e722f16a53a2 100755 (executable)
@@ -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
  * 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
+ * Send message to all admins network-wide           -- m_adminwall.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
  * /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_adminwall.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 +126,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.
@@ -142,8 +158,11 @@ serverinfo {
        /* ssl_dh_params: DH parameters, generate with openssl dhparam -out dh.pem 1024 */
        ssl_dh_params = "etc/dh.pem";
 
-       /* ssld_count: number of ssld processes you want to start, if you have a really busy 
-        * server, using N-1 where N is the number of cpu/cpu cores you have might be useful
+       /* ssld_count: number of ssld processes you want to start, if you
+        * have a really busy server, using N-1 where N is the number of
+        * cpu/cpu cores you have might be useful. A number greater than one
+        * can also be useful in case of bugs in ssld and because ssld needs
+        * two file descriptors per SSL connection.
         */
        ssld_count = 1;
 
@@ -213,19 +232,19 @@ class "users" {
          */
         number_per_ip_global = 5;
 
-       /* cidr_bitlen:  Limits numbers of connections from a subnet size
+       /* cidr_ipv4_bitlen:  Limits numbers of connections from a subnet size
+        */
+       cidr_ipv4_bitlen = 24;
+
+       /* cidr_ipv6_bitlen:  Limits numbers of connections from a subnet size
         * the following example makes the subnet /64 this is useful
         * for IPv6 connections in particular
-        * Also note that the way charybdis is written if you have
-        * compiled support for IPv6, IPv4 cidr bitlens need to be modified
-        * Basically to get the approriate length add 96 to the IPv4 length
-        * For example for a /24 do 96+24 = 120
-        *
         */
-       cidr_bitlen = 64;
+       cidr_ipv6_bitlen = 64;
 
        /* number_per_cidr:  Number of connections to allow from a subnet of the 
-        * size given in cidr_bitlen.  4 seems to be a good default to me.
+        * size given in cidr_ipv4_bitlen/cidr_ipv6_bitlen.
+        * 4 seems to be a good default to me.
         */
        number_per_cidr = 4;
 
@@ -319,6 +338,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
@@ -374,7 +404,7 @@ privset "local_op" {
         *
         * oper:local_kill:      allows local users to be /KILL'd
         * oper:global_kill:     allows local and remote users to be /KILL'd
-        * oper:remote:          allows remote SQUIT and CONNECT
+        * oper:routing:         allows remote SQUIT and CONNECT
         * oper:kline:           allows KLINE and DLINE
         * oper:unkline:         allows UNKLINE and UNDLINE
         * snomask:nick_changes: allows oper to see nickchanges via snomask +n
@@ -401,7 +431,7 @@ privset "local_op" {
 privset "server_bot" {
        /* extends: a privset to inherit in this privset */
        extends = "local_op";
-       privs = oper:global_kill, oper:kline, oper:remoteban, snomask:nick_changes;
+       privs = oper:kline, oper:remoteban, snomask:nick_changes;
 };
 
 privset "global_op" {
@@ -438,6 +468,12 @@ operator "god" {
         */
        #rsa_public_key_file = "/usr/local/ircd/etc/oper.pub";
 
+       /* fingerprint: if specified, the oper's client certificate
+        * fingerprint will be checked against the specified fingerprint
+        * below.
+        */
+       #fingerprint = "c77106576abf7f9f90cca0f63874a60f2e40a64b";
+
        /* umodes: the specific umodes this oper gets when they oper.
         * If this is specified an oper will not be given oper_umodes
         * These are described above oper_only_umodes in general {};
@@ -650,6 +686,31 @@ 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";
+
+       /* 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;
+
+       /* owner: Enable/disable channel mode +a, which adds owner,
+        * a channel status above op that has op powers (kick, ban, mode, etc.)
+        * owners can only be kicked/deownered by other owners, and may kick
+        * or deop ops and halfops. 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_owner = yes;
+
        /* invex: Enable/disable channel mode +I, a n!u@h list of masks
         * that can join a +i channel without an invite.
         */
@@ -733,6 +794,34 @@ channel {
         * ratbox-services does.
         */
        kick_on_split_riding = no;
+
+       /* only ascii channels: disable local users joining channels
+        * containing characters outside the range 33-126 (non-printable
+        * 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;
 };
 
 
@@ -762,7 +851,7 @@ serverhide {
 
 /* These are the blacklist settings.
  * You can have multiple combinations of host and rejection reasons.
- * They are used in pairs of one host/rejection reason, or multiple hosts/rejection reason.
+ * They are used in pairs of one host/rejection reason.
  *
  * These settings should be adequate for most networks, and are (presently)
  * required for use on AthemeNet.
@@ -822,6 +911,14 @@ alias "MemoServ" {
        target = "MemoServ";
 };
 
+alias "HostServ" {
+       target = "HostServ";
+};
+
+alias "BotServ" {
+       target = "BotServ";
+};
+
 alias "NS" {
        target = "NickServ";
 };
@@ -838,6 +935,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.
  */
@@ -864,10 +969,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".
@@ -1057,6 +1162,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.
         */
@@ -1123,6 +1234,9 @@ 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.
         */
         
        /* oper only umodes: usermodes only opers may set */