Documented public_ip configuration option
[silc.git] / doc / example_silcd.conf.in
index 3ddf7614876e5e4d43960cdf8de6633dd7f0d78c..32bb7be4545af70c56f69e119ab74389509f38cf 100644 (file)
@@ -32,11 +32,6 @@ Include "@ETCDIR@/silcalgs.conf";
 # for different connections.
 #
 General {
-       # This is the default path where to search modules.  If omitted
-       # built-in modules will be used.  Built-in modules will also be
-       # used if a module file cannot be located.
-       module_path = "@MODULESDIR@";
-
        # If both passphrase and public key authentication is set for a
        # connection the public key authentication is the preferred one
        # to use.  Set this to `true' to prefer passphrase authentication
@@ -48,8 +43,9 @@ General {
        # without FQDN cannot connect to the server.
        #require_reverse_lookup = true;
 
-       # Maximum number of incoming connections allowed to this server.
-       # If more attempt to connect they will be refused.
+       # Maximum number of connections server can handle.  If you want
+       # to limit the number of incoming connections, define the
+       # connections_max in the ConnectionParams.
        connections_max = 1000;
 
        # Maximum number of incoming connections allowed per single host.
@@ -70,14 +66,25 @@ General {
        # number of the software.  The string can be a regex string to match
        # more widely.  Usually the vendor version checking is not necessary
        # and can be omitted.  These can be overridden with ConnectionParams.
-       #version_protocol = "1.1";
-       #version_software = "1.3";
+       #version_protocol = "1.3";
+       #version_software = "2.0";
        #version_software_vendor = "SomeVendor";
 
        # Default keepalive frequency (seconds).  This can be overridden with
        # with ConnectionParams.
        keepalive_secs = 300;
 
+       # Dynamic router connections.  If this is set for normal SILC server
+       # the connection to primary router is not created untill it is actually
+       # needed.  Giving for example /WHOIS foobar@silcnet.org would then
+       # create connection to the primary router to resolve user foobar.
+       # On the other hand giving /WHOIS foobar would try to search the
+       # user foobar locally, without creating the connection.  Note that
+       # giving /JOIN foobar will also created the connection as current
+       # SILC Server version supports only global channels (all JOINs require
+       # connection to router, if one is configured).
+       #dynamic_server = true;
+
        # Default reconnection parameters defines how the server reconnect
        # to the remote if the connection was lost.  The reconnection phase
        # use so called exponential backoff algorithm;  The reconnect
@@ -142,19 +149,34 @@ General {
        # Quality of Service (QoS) settings.  The QoS can be used to handle
        # the incoming data and limit its handling rate to avoid flooding.
        # By default QoS is disabled and can be enabled by setting "qos" to
-       # true value.  The "qos_rate_limit" is the incmoing data reading
-       # per second, and if more frequently than the set limit is read the
+       # true value.  The "qos_rate_limit" is the data reads per second,
+       # and if more frequently is read due to for example data flooding,
        # QoS is applied to the data.  The "qos_bytes_limit" is maximum bytes
        # allowed for incoming data.  If more is received at once the QoS
        # is applied to the data.  The "qos_limit_sec" and "qos_limit_usec"
        # is the timeout used to delay the data handling, seconds and
-       # microseconds, respectively.  This can be overridden with
+       # microseconds, respectively.  NOTE: If you enable QoS in General
+       # section it applies to server connections as well.  Server
+       # connections SHOULD NOT use QoS.  This can be overridden with
        # ConnectionParams.
        #qos = true;
-       #qos_rate_limit = 5;
-       #qos_bytes_limit = 1024;
+       #qos_rate_limit = 10;
+       #qos_bytes_limit = 2048;
        #qos_limit_sec = 0;
        #qos_limit_usec = 500000;
+
+       # Limit on how many channels one client can join.  Default is 50.
+       #channel_join_limit = 100;
+
+       # HTTP server access to the server for retrieving server statistics
+       # with a web browser.  This is disabled by default.
+       #http_server = true;
+       #http_server_ip = "127.0.0.1";
+       #http_server_port = 5000;
+
+       # Debug string.  Debug string can be set to print debugging from
+       # the running server.  The debug is redirected to stderr.
+       # debug_string = "";
 };
 
 #
@@ -168,10 +190,12 @@ ServerInfo {
 
        #
        # Primary listener.  Specify the IP address and the port to bind
-       # the server.
+       # the server.  The public_ip can be used to specify the public IP
+       # if the server is behind NAT.
        #
        Primary {
                ip = "10.2.1.6";
+               # public_ip = "11.1.1.1";
                port = 706;
        };
 
@@ -240,7 +264,8 @@ ServerInfo {
 # are redirected on the less important ones, thus setting a valid logging
 # file for "Info" will ensure logging for all channels, while setting
 # logging file for "Errors" will ensure logging for channels "Errors"
-# and "Fatals"
+# and "Fatals".  If only, for example, "Info" is set then all logs go to
+# that file (like in example below).
 #
 Logging {
        # Use timestamp in the logging files? (Usually it is a good idea,
@@ -264,26 +289,26 @@ Logging {
        # Informational messages
        Info {
                File = "@LOGSDIR@/silcd.log";
-               Size = "50k";
+               Size = "100k";
        };
 
        # Warning messages
-       Warnings {
-               File = "@LOGSDIR@/silcd_warnings.log";
-               Size = "50k";
-       };
+       #Warnings {
+       #       File = "@LOGSDIR@/silcd_warnings.log";
+       #       Size = "50k";
+       #};
 
        # Error messages
-       Errors {
-               File = "@LOGSDIR@/silcd_errors.log";
-               Size = "50k";
-       };
+       #Errors {
+       #       File = "@LOGSDIR@/silcd_errors.log";
+       #       Size = "50k";
+       #};
 
        # Fatal messages
-       Fatals {
-               File = "@LOGSDIR@/silcd_fatals.log";
-               Size = "50k";
-       };
+       #Fatals {
+       #       File = "@LOGSDIR@/silcd_fatals.log";
+       #       Size = "50k";
+       #};
 };
 
 #
@@ -387,8 +412,8 @@ ConnectionParams {
        # microseconds, respectively.  For server connections QoS SHOULD NOT
        # be set.
        #qos = true;
-       #qos_rate_limit = 5;
-       #qos_bytes_limit = 1024;
+       #qos_rate_limit = 10;
+       #qos_bytes_limit = 2048;
        #qos_limit_sec = 0;
        #qos_limit_usec = 500000;
 };
@@ -403,10 +428,9 @@ ConnectionParams {
 #
 # The authentication data is specified by Passphrase and/or PublicKey.
 # If both are provided then both password and public key based authentication
-# is allowed.  If the Publickey is used it includes the file path to the
-# public key file.  If none of them is provided then authentication is not
-# required.  The PublicKey can be set multiple times to set multiple
-# public keys for one connection.
+# is allowed.  The "PublicKey" includes the single key contained in the
+# specified file, while "PublicKeyDir" includes all files in the specified
+# directory, which must all be valid public keys with ".pub" suffix.
 #
 # Next example connection will match to all incoming client connections,
 # and no authentication is required.
@@ -414,9 +438,10 @@ ConnectionParams {
 Client {
        #Host = "10.1.*";
        #Passphrase = "secret";
-       #PublicKey = "/path/to/the/user_my.key";
-       #PublicKey = "/path/to/the/user_221.key";
-       #PublicKey = "/path/to/the/user_313.key";
+       #PublicKey = "/path/to/the/user_my.pub";
+       #PublicKey = "/path/to/the/user_221.pub";
+       #PublicKey = "/path/to/the/user_313.pub";
+       #PublicKeyDir = "/path/to/keys/dir/";
        Params = "normal";
 };
 
@@ -437,7 +462,7 @@ Admin {
        User = "priikone";
        Nick = "pekka";
        Passphrase = "verysecret";
-       # PublicKey = "/path/to/the/public.key";
+       # PublicKey = "/path/to/the/public.pub";
 };
 
 #
@@ -446,7 +471,8 @@ Admin {
 # If server connections are configured it means that this server is
 # router server.  Normal servers must not configure server connections.
 # Thus, if this server is not router do not configure this section.  If
-# your server is router, this must be configured.
+# your server is router, this must be configured.  The Host (mandatory)
+# specifies the remote server.
 #
 # The authentication data is specified by Passphrase and/or PublicKey.
 # If both are provided then both password and public key based authentication
@@ -461,7 +487,7 @@ Admin {
 ServerConnection {
        Host = "10.2.1.7";
        Passphrase = "verysecret";
-       #PublicKey = "/path/to/the/public.key";
+       #PublicKey = "/path/to/the/public.pub";
        Params = "normal";
        Backup = false;
 };
@@ -472,9 +498,9 @@ ServerConnection {
 # For normal servers only one entry maybe configured to this section.  It
 # must be the router this server will be connected to.  For router servers,
 # this section includes all configured router connections.  The first
-# configured connection is the primary route.  The Host specifies the
-# remote hostname or IP address.  The Port specifies the remote port to
-# connect when Initiator is true.  When Initiator is false the Port
+# configured connection is the primary route.  The Host (mandatory) specifies
+# the remote hostname or IP address.  The Port specifies the remote port
+# to connect when Initiator is true.  When Initiator is false the Port
 # specifies the local port (listener port).
 #
 # The authentication data is specified by Passphrase and/or PublicKey.
@@ -498,7 +524,7 @@ RouterConnection {
        Host = "10.2.1.100";
        Port = 706;
        Passphrase = "verysecret";
-       #PublicKey = "/path/to/the/public.key";
+       #PublicKey = "/path/to/the/public.pub";
        Params = "normal";
        Initiator = true;
        #BackupHost = "10.2.1.6";