]> jfr.im git - solanum.git/blobdiff - doc/reference.conf
modules: use lt_dlopenext() to make the config look nicer
[solanum.git] / doc / reference.conf
index c36a36ce29fb88ddf400de4065a5bb52efc38a94..50d448a3736b8ba0496f51d877fbc2f3ede3c7ad 100755 (executable)
  * Charybdis contains several extensions that are not enabled by default.
  * To use them, uncomment the lines below.
  *
- * Channel mode +-A (admin only)                     -- chm_adminonly.so
- * Channel mode +-O (oper only)                      -- chm_operonly.so
- * Channel mode +-S (ssl only)                       -- chm_sslonly.so
- * Emulates channel mode +-O (oper only) (+-iI $o)   -- chm_operonly_compat.so
- * Emulates channel mode +-R (quiet unreg) (+-q $~a) -- chm_quietunreg_compat.so
- * Emulates channel mode +-S (ssl only) (+-b $~z)    -- chm_sslonly_compat.so
- * Restrict channel creation to logged in users      -- createauthonly.so
- * Account bans (+b $a[:mask])                       -- extb_account.so
- * Banned from another channel (+b $j:mask)          -- extb_canjoin.so
- * Other-channel bans (+b $c:mask)                   -- extb_channel.so
- * Extended ban (+b $x:mask)                         -- extb_extgecos.so
- * Oper bans (+b $o)                                 -- extb_oper.so
- * Realname (gecos) bans (+b $r:mask)                -- extb_realname.so
- * Server bans (+b $s:mask)                          -- extb_server.so
- * SSL bans (+b $z)                                  -- extb_ssl.so
- * HURT system                                       -- hurt.so
- * New host mangling (umode +x)                      -- ip_cloaking_4.0.so
- * Old host mangling (umode +h)                      -- ip_cloaking.so
- * Find channel forwards                             -- m_findforwards.so
- * /identify support                                 -- m_identify.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
- * Remote oper up notices                            -- sno_globaloper.so
- * /whois notifications (snomask +W)                 -- sno_whois.so
- * Oper-override (modehacking only)                  -- override.so
- * Stop services kills                               -- no_kill_services.so
+ * Channel mode +-A (admin only)                     -- chm_adminonly
+ * Channel mode +-O (oper only)                      -- chm_operonly
+ * Channel mode +-S (ssl only)                       -- chm_sslonly
+ * Emulates channel mode +-O (oper only) (+-iI $o)   -- chm_operonly_compat
+ * Emulates channel mode +-R (quiet unreg) (+-q $~a) -- chm_quietunreg_compat
+ * Emulates channel mode +-S (ssl only) (+-b $~z)    -- chm_sslonly_compat
+ * Restrict channel creation to logged in users      -- createauthonly
+ * Account bans (+b $a[:mask])                       -- extb_account
+ * Banned from another channel (+b $j:mask)          -- extb_canjoin
+ * Other-channel bans (+b $c:mask)                   -- extb_channel
+ * Combination extbans                               -- extb_combi
+ * Extended ban (+b $x:mask)                         -- extb_extgecos
+ * Hostmask bans (for combination extbans)           -- extb_hostmask
+ * Oper bans (+b $o)                                 -- extb_oper
+ * Realname (gecos) bans (+b $r:mask)                -- extb_realname
+ * Server bans (+b $s:mask)                          -- extb_server
+ * SSL bans (+b $z)                                  -- extb_ssl
+ * HURT system                                       -- hurt
+ * New host mangling (umode +x)                      -- ip_cloaking_4.0
+ * Old host mangling (umode +h)                      -- ip_cloaking
+ * Find channel forwards                             -- m_findforwards
+ * /identify support                                 -- m_identify
+ * Opers cannot be invisible (umode +i)              -- no_oper_invis
+ * Far connection notices (snomask +F)               -- sno_farconnect
+ * Remote k/d/x line active notices                  -- sno_globalkline
+ * Remote oper up notices                            -- sno_globaloper
+ * /whois notifications (snomask +W)                 -- sno_whois
+ * Oper-override (modehacking only)                  -- override
+ * Stop services kills                               -- no_kill_services
  */
-#loadmodule "extensions/chm_adminonly.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_server.so";
-#loadmodule "extensions/extb_ssl.so";
-#loadmodule "extensions/hurt.so";
-#loadmodule "extensions/ip_cloaking_4.0.so";
-#loadmodule "extensions/ip_cloaking.so";
-#loadmodule "extensions/m_findforwards.so";
-#loadmodule "extensions/m_identify.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_whois.so";
-#loadmodule "extensions/override.so";
-#loadmodule "extensions/no_kill_services.so";
+#loadmodule "extensions/chm_adminonly";
+#loadmodule "extensions/chm_operonly";
+#loadmodule "extensions/chm_sslonly";
+#loadmodule "extensions/chm_operonly_compat";
+#loadmodule "extensions/chm_quietunreg_compat";
+#loadmodule "extensions/chm_sslonly_compat";
+#loadmodule "extensions/createauthonly";
+#loadmodule "extensions/extb_account";
+#loadmodule "extensions/extb_canjoin";
+#loadmodule "extensions/extb_channel";
+#loadmodule "extensions/extb_combi";
+#loadmodule "extensions/extb_extgecos";
+#loadmodule "extensions/extb_hostmask";
+#loadmodule "extensions/extb_oper";
+#loadmodule "extensions/extb_realname";
+#loadmodule "extensions/extb_server";
+#loadmodule "extensions/extb_ssl";
+#loadmodule "extensions/hurt";
+#loadmodule "extensions/ip_cloaking_4.0";
+#loadmodule "extensions/ip_cloaking";
+#loadmodule "extensions/m_findforwards";
+#loadmodule "extensions/m_identify";
+#loadmodule "extensions/no_oper_invis";
+#loadmodule "extensions/sno_farconnect";
+#loadmodule "extensions/sno_globalkline";
+#loadmodule "extensions/sno_globaloper";
+#loadmodule "extensions/sno_whois";
+#loadmodule "extensions/override";
+#loadmodule "extensions/no_kill_services";
 
 /* serverinfo {}:  Contains information about the server. (OLD M:) */
 serverinfo {
@@ -122,7 +126,6 @@ serverinfo {
         * is on.  Shown in the 005 reply and used with serverhiding.
         */
        network_name = "MyNet";
-       network_desc = "This is My Network";
 
        /* hub: allow this server to act as a hub and have multiple servers
         * connected to it.  
@@ -132,22 +135,25 @@ serverinfo {
        /* vhost: the IP to bind to when we connect outward to ipv4 servers.
         * This should be an ipv4 IP only.
         */
-       #vhost = "192.169.0.1";
+       #vhost = "192.0.2.6";
 
        /* vhost6: the IP to bind to when we connect outward to ipv6 servers.
         * This should be an ipv6 IP only.
         */
-       #vhost6 = "3ffe:80e8:546::2";
+       #vhost6 = "2001:db7:2::6";
        
        /* ssl_private_key: our ssl private key */
        ssl_private_key = "etc/ssl.key";
 
        /* ssl_cert: certificate for our ssl server */
-       ssl_cert = "etc/ssl.cert";
+       ssl_cert = "etc/ssl.pem";
 
        /* ssl_dh_params: DH parameters, generate with openssl dhparam -out dh.pem 1024 */
        ssl_dh_params = "etc/dh.pem";
 
+       /* ssl_cipher_list: A list of ciphers, dependent on your TLS backend */
+       #ssl_cipher_list = "EECDH+HIGH:EDH+HIGH:HIGH:!aNULL";
+
        /* 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
@@ -314,11 +320,11 @@ listen {
        /* host: set a specific IP/host the ports after the line will listen 
         * on.  This may be ipv4 or ipv6.
         */
-       host = "1.2.3.4";
+       host = "192.0.2.6";
        port = 7000, 7001;
        sslport = 9000, 9001;
 
-       host = "3ffe:1234:a:b:c::d";
+       host = "2001:db8:2::6";
        port = 7002;
        sslport = 9002;
 };
@@ -331,8 +337,8 @@ auth {
         * prepending a 0 if it starts with a colon) and can also use CIDR
         * masks.
         */
-       user = "*@172.16.0.0/12";
-       user = "*test@123D:B567:*";
+       user = "*@198.51.100.0/24";
+       user = "*test@2001:db8:1:*";
 
        /* auth_user: This allows specifying a username:password instead of
         * just a password in PASS, so that a fixed user@host is not
@@ -382,10 +388,10 @@ auth {
         * not have to obey the redirection, the ircd just suggests to them
         * an alternative server.
         */
-       redirserv = "irc.some.domain";
+       redirserv = "irc.example.net";
        redirport = 6667;
        
-       user = "*.some.domain";
+       user = "*.example.com";
 
        /* class: a class is required even though it is not used */
        class = "users";
@@ -509,12 +515,12 @@ connect "irc.uplink.com" {
        /* host: the host or IP to connect to.  If a hostname is used it
         * must match the reverse dns of the server.
         */
-       host = "192.168.0.1";
+       host = "203.0.113.3";
 
        /* vhost: the host or IP to bind to for this connection.  If this
         * is not specified, the default vhost (in serverinfo {}) is used.
         */
-       #vhost = "192.168.0.50";
+       #vhost = "192.0.2.131";
 
        /* passwords: the passwords we send (OLD C:) and accept (OLD N:).
         * The remote server will have these passwords reversed.
@@ -554,12 +560,12 @@ connect "irc.uplink.com" {
        flags = compressed, topicburst;
 };
 
-connect "ipv6.some.server" {
+connect "ipv6me.server" {
        /* Hosts that are IPv6 addresses must be in :: shortened form
         * if applicable.  Addresses starting with a colon get an extra
         * zero prepended, for example: 0::1
         */
-       host = "3ffd:dead:beef::1";
+       host = "2001:db8:3::8";
        send_password = "password";
        accept_password = "password";
        port = 6666;
@@ -575,7 +581,7 @@ connect "ssl.uplink.com" {
        /* Example of ssl server-to-server connection, ssl flag doesn't need
         * compressed flag, 'cause it uses own compression
         */
-       host = "192.168.0.1";
+       host = "203.0.113.129";
        send_password = "password";
        accept_password = "anotherpassword";
        port = 9999;
@@ -610,8 +616,8 @@ cluster {
         *    all     - share all of the above
         */
 
-       /* share klines/unklines/xlines with *.lan */
-       name = "*.lan";
+       /* share klines/unklines/xlines with *n */
+       name = "*n";
        flags = kline, unkline, xline;
 
        /* share locops with irc.ircd-ratbox.org and ircd.ircd-ratbox.org */
@@ -684,11 +690,10 @@ shared {
 
 /* exempt {}: IPs that are exempt from Dlines and rejectcache. (OLD d:) */
 exempt {
-       ip = "192.168.0.0/16";
+       ip = "192.0.2.0/24";
 
        /* these may be stacked */
        ip = "127.0.0.1";
-       ip = "10.0.0.0/8";
 };
 
 /* The channel block contains options pertaining to channels */
@@ -792,6 +797,17 @@ channel {
         * supported.
         */
        disable_local_channels = no;
+
+       /* autochanmodes: the channel modes that should be automatically set
+        * when a channel is created.
+        */
+       autochanmodes = "+nt";
+
+       /* displayed_usercount: the minimum amount of users on a channel before it
+        * is displayed in LIST.  this parameter can be overridden using ELIST parameters,
+        * such as LIST >0.
+        */
+       displayed_usercount = 3;
 };
 
 
@@ -852,24 +868,12 @@ serverhide {
  * 
  * Consult your blacklist provider for the meaning of these parameters; they
  * are usually used to denote different ban types.
- *
- * Note: AHBL (the providers of the below *.ahbl.org BLs) request that they be
- * contacted, via email, at admins@2mbit.com before using these BLs.
- * See <http://www.ahbl.org/services.php> for more information.
  */
 blacklist {
        host = "rbl.efnetrbl.org";
        type = ipv4;
        reject_reason = "${nick}, your IP (${ip}) is listed in EFnet's RBL. For assistance, see http://efnetrbl.org/?i=${ip}";
 
-#      host = "ircbl.ahbl.org";
-#      type = ipv4;
-#      reject_reason = "${nick}, your IP (${ip}) is listed in ${dnsbl-host} for having an open proxy. In order to protect ${network-name} from abuse, we are not allowing connections with open proxies to connect.";
-#
-#      host = "tor.ahbl.org";
-#      type = ipv4;
-#      reject_reason = "${nick}, your IP (${ip}) is listed as a TOR exit node. In order to protect ${network-name} from tor-based abuse, we are not allowing TOR exit nodes to connect to our network.";
-#
        /* Example of a blacklist that supports both IPv4 and IPv6 and using matches */
 #      host = "foobl.blacklist.invalid";
 #      matches = "4", "6", "127.0.0.10";
@@ -968,6 +972,14 @@ general {
         */
        servicestring = "is a Network Service";
 
+       /*
+        * Nick of the network's SASL agent. Used to check whether services are here,
+        * SASL credentials are only sent to its server. Needs to be a service.
+        *
+        * Defaults to SaslServ if unspecified.
+        */
+       sasl_service = "SaslServ";
+
        /* disable fake channels: disable local users joining fake versions
         * of channels, eg #foo^B^B.  Disables bold, mirc colour, reverse,
         * underline and hard space.  (ASCII 2, 3, 22, 31, 160 respectively).
@@ -1230,18 +1242,6 @@ general {
         * provided they have umode +s set */
        oper_snomask = "+s";
 
-       /* use egd: if your system does not have *random devices yet you
-        * want to use OpenSSL and encrypted links, enable this.  Beware -
-        * EGD is *very* CPU intensive when gathering data for its pool
-        */
-       #use_egd = yes;
-
-       /* egdpool path: path to EGD pool. Not necessary for OpenSSL >= 0.9.7
-        * which automatically finds the path.
-        */
-       #egdpool_path = "/var/run/egd-pool";
-
-
        /* compression level: level of compression for compressed links between
         * servers.  
         *
@@ -1312,6 +1312,12 @@ general {
         * counts.
         */
        away_interval = 30;
+
+       /* certfp_method: the method that should be used for computing certificate fingerprints.
+        * Acceptable options are sha1, sha256 and sha512.  Networks running versions of charybdis
+        * prior to charybdis 3.5 MUST use sha1 for certfp_method.
+        */
+       certfp_method = sha1;
 };
 
 modules {
@@ -1322,5 +1328,5 @@ modules {
        path = "/usr/local/ircd/modules/autoload";
 
        /* module: the name of a module to load on startup/rehash */
-       #module = "some_module.so";
+       #module = "some_module";
 };