Using the Command Line

    +

    Start a Sync Gateway instance using command line options and securely sync enterprise data from cloud to edge
    Introduces the options available when running Sync Gateway from the command line

    Overview

    You can configure some Sync Gateway features by specifying command-line options when you start it.

    For more comprehensive configuration options see: Configuration Overview

    Configuration

    Configuration determines the runtime behavior of Sync Gateway, including server configuration and the database or set of databases with which a sync gateway instance can interact.

    Command-line options can only specify a sub-set of the available configuration properties, and cannot be used to configure multiple databases.

    Two command-line options do not have corresponding configuration properties: -help and -verbose.

    Option Format

    When specifying command-line options use the format shown in Example 1

    • Command-line options are case-insensitive.

    • You can prefix command-line options with one hyphen (-) or with two hyphens (--).

    • For command-line options that take an argument, you specify the argument after an equal sign (=).
      For example, -bucket=db, or as a following item on the command line, for example, -bucket db.

    Example 1. Command line options
    • Format

    • List CLI Arguments

    When specifying command-line options use this format:

    sync_gateway [ -{option} ]
    1 Seperate multiple options by a comma or a space

    You can check the latest position by navigating to the folder containing the Sync Gateway executable and using:

    $ ./sync_gateway -help (1)
    1 This command lists all Sync Gateway’s current command line arguments

    Available Options

    The command-line options that can be used when starting Sync Gateway are outlined in Table 1 and Table 2.

    Table 1. Configuration-related CLI flags
    Option Default Description

    -bootstrap.group_id

    The config group ID to use when discovering databases. Allows for non-homogenous configuration

    -bootstrap.config_update_frequency

    How often to poll Couchbase Server for new config changes

    -bootstrap.server

    Couchbase Server connection string/URL

    -bootstrap.username

    Username for authenticating to server

    -bootstrap.password

    Password for authenticating to server

    -bootstrap.ca_cert_path

    none

    Root CA certificate path

    -bootstrap.x509_cert_path

    none

    Client certificate path

    -bootstrap.x509_key_path

    none

    Client private key path

    -bootstrap.server_tls_skip_verify

    false

    Set to ignore certificate validation — development and testing mode only

    -bootstrap.use_tls_server

    true

    Forces the connection to Couchbase Server to use TLS.
    Set to false to allow non-secure protocols for communication with Couchbase Server — development and testing mode only

    api.public_interface

    :4984

    Network interface to bind public API to

    api.admin_interface

    :4985

    Network interface to bind admin API to

    api.metrics_interface

    :4986

    Network interface to bind metrics API to

    api.profile_interface

    Network interface to bind profiling API to

    api.admin_interface_authentication

    Whether the admin API requires authentication

    api.metrics_interface_authentication

    Whether the metrics API requires authentication

    api.enable_admin_authentication_permissions_check

    Whether to enable the DP permissions check feature of admin auth

    api.server_read_timeout

    Maximum duration.Second before timing out read of the HTTP(S) request

    api.server_write_timeout

    Maximum duration.Second before timing out write of the HTTP(S) response

    api.read_header_timeout

    The amount of time allowed to read request headers

    api.idle_timeout

    The maximum amount of time to wait for the next request when keep-alives are enabled

    api.pretty

    Pretty-print JSON responses

    api.max_connections

    Max number of incoming HTTP connections to accept

    api.compress_responses

    If false, disables compression of HTTP responses

    api.hide_product_version

    Whether product versions removed from Server headers and REST API responses

    api.https.tls_minimum_version

    The minimum allowable TLS version for the REST APIs

    api.https.tls_cert_path

    The TLS certificate filepath to use for the REST APIs

    api.https.tls_key_path

    The TLS key filepath to use for the REST APIs

    api.cors.origin

    List of comma separated allowed origins. Use '*' to allow access from everywhere

    api.cors.login_origin

    List of comma separated allowed login origins

    api.cors.headers

    List of comma separated allowed headers

    api.cors.max_age

    Maximum age of the CORS Options request

    logging.log_file_path

    Absolute or relative path on the filesystem to the log file directory. A relative path is from the directory that contains the Sync Gateway executable file

    logging.redaction_level

    Redaction level to apply to log output. Options: none, partial, full, unset

    logging.console.enabled

    logging.console.rotation.max_size

    logging.console.rotation.max_age

    logging.console.rotation.localtime

    logging.console.rotation.rotated_logs_size_limit

    logging.console.collation_buffer_size

    logging.console.log_level

    Options: none, error, warn, info, debug, trace

    logging.console.log_keys

    HTTP

    A comma-separated list of log keywords to be enabled.
    The log keyword HTTP is enabled by default, which means that HTTP requests and error responses are always logged.
    Omitting HTTP from your list does not disable HTTP logging. You can disable HTTP logging using the Admin API.

    logging.console.color_enabled

    logging.console.file_output

    Can be used to override the default stderr output, and write to the file specified inst

    logging.error.enabled

    logging.error.rotation.max_size

    logging.error.rotation.max_age

    logging.error.rotation.localtime

    logging.error.rotation.rotated_logs_size_limit

    logging.error.collation_buffer_size

    logging.warn.enabled

    logging.warn.rotation.max_size

    logging.warn.rotation.max_age

    logging.warn.rotation.localtime

    logging.warn.rotation.rotated_logs_size_limit

    logging.warn.collation_buffer_size

    logging.info.enabled

    logging.info.rotation.max_size

    logging.info.rotation.max_age

    logging.info.rotation.localtime

    logging.info.rotation.rotated_logs_size_limit

    logging.info.collation_buffer_size

    logging.debug.enabled

    logging.debug.rotation.max_size

    logging.debug.rotation.max_age

    logging.debug.rotation.localtime

    logging.debug.rotation.rotated_logs_size_limit

    logging.debug.collation_buffer_size

    logging.trace.enabled

    logging.trace.rotation.max_size

    logging.trace.rotation.max_age

    logging.trace.rotation.localtime

    logging.trace.rotation.rotated_logs_size_limit

    logging.trace.collation_buffer_size

    logging.stats.enabled

    logging.stats.rotation.max_size

    logging.stats.rotation.max_age

    logging.stats.rotation.localtime

    logging.stats.rotation.rotated_logs_size_limit

    logging.stats.collation_buffer_size

    auth.bcrypt_cost

    Most to use for bcrypt password hashes

    replicator.max_heartbeat

    Max heartbeat value for _changes request

    replicator.blip_compression

    LIP data compression level (0-9)

    unsupported.stats_log_frequency

    How often should stats be written to stats logs

    unsupported.use_stdlib_json

    Bypass the jsoniter package and use Go’s stdlib instead

    unsupported.http2.enabled

    Whether HTTP2 support is enabled

    max_file_descriptors

    Max number of open file descriptors (RLIMIT_NOFILE)

    Table 2. Other CLI flags
    Option Default Description

    -configServer

    none

    URL of server that can return database configs

    -dbname

    sync_gateway

    Name of the Couchbase Server database to serve through the Public REST API.

    -disable_persistent_config

    false

    Set this property 'true' to continue using the legacy configuration mode (File-based Configuration)

    -defaultLogFilePath

    none

    Path to log files, as a fallback default value when logFilePath is not specified. This option is generally used in service scripts.

    -deploymentID

    none

    Customer/project identifier for stats reporting

    --help

    none

    Lists the available options and exits.

    -pool

    default

    Name of the Couchbase Server pool in which to find buckets.

    -pretty

    false

    Pretty-print JSON responses to improve readability. This is useful for debugging, but reduces performance.

    -profileInterface

    Address to bind the profile interface to

    -url

    DefaultServer

    The URL of the database server

    -verbose

    Non-verbose logging

    Logs more information about requests.