Skip to content

Config

Generates a default config.toml file for you.

distant generate config --output $HOME/.config/distant/config.toml

Flags

  • --output <FILE>: indicates that config file should be saved to a file instead of printed to stdout.

Examples

Saving to the default location on MacOS

distant generate config --output "$HOME/Library/Application Support/distant/config.toml"

Saving to the default location on Unix/Linux

distant generate config --output "$HOME/.config/distant/config.toml"

Saving to the default location on Windows

distant generate config --output "$env:USERPROFILE\AppData\Roaming\distant\config\config.toml"
Default config.toml
###############################################################################
# All configuration specific to the distant client will be found under
# this heading
###############################################################################
[client]

# Specifies an alternative path to use when logging information while the
# client is running
# log_file = "path/to/file"

# Specifies the log level used when logging information while the client
# is running
#
# Choices are off, error, warn, info, debug, trace
# The default setting is info
log_level = "info"

# Configuration related to the client's api command
[client.api]

# Maximum time (in seconds) to wait for a network request before timing out
# where 0 indicates no timeout will occur
timeout = 0

# Alternative unix domain socket to connect to when using a manger (Unix only)
# unix_socket = "path/to/socket"

# Alternative name for a local named Windows pipe to connect to when using a
# manager (Windows only)
# windows_pipe = "some_name"

# Configuration related to the client's connect command
[client.connect]

# Additional options to provide, typically forwarded to the handler within
# the manager facilitating the connection. Options are key-value pairs separated
# by comma.
#
# E.g. `key="value",key2="value2"`
options = ""

# Configuration related to the client's launch command
[client.launch]

# Path to distant program on remote machine to execute via ssh; by default,
# this program needs to be available within PATH as specified when compiling
# ssh (not your login shell).
bin = "distant"

# Control the IP address that the server binds to.
#
# The default is `ssh', in which case the server will reply from the IP address
# that the SSH connection came from (as found in the SSH_CONNECTION environment
# variable). This is useful for multihomed servers.
#
# With --bind-server=any, the server will reply on the default interface and
# will not bind to a particular IP address. This can be useful if the
# connection is made through sslh or another tool that makes the SSH connection
# appear to come from localhost.
#
# With --bind-server=IP, the server will attempt to bind to the specified IP
# address.
bind_server = "ssh"

# Additional arguments to provide to the server when launching it.
args = ""

# Additional options to provide, typically forwarded to the handler within the
# manager facilitating the launch of a distant server. Options are key-value
# pairs separated by comma.
#
# E.g. `key="value",key2="value2"`
options = ""

###############################################################################
# All configuration specific to the distant generate option will be found under
# this heading
###############################################################################
[generate]

# Specifies an alternative path to use when logging information related
# to generation
# log_file = "path/to/file"

# Specifies the log level used when logging information related to generation
# Choices are off, error, warn, info, debug, trace
# The default setting is info
log_level = "info"

###############################################################################
# All configuration specific to the distant manager will be found under
# this heading
###############################################################################
[manager]

# Specifies an alternative path to use when logging information while the
# manager is running
# log_file = "path/to/file"

# Specifies the log level used when logging information while the manager
# is running
#
# Choices are off, error, warn, info, debug, trace
# The default setting is info
log_level = "info"

# Level of access control to the unix socket or windows pipe.
#
# * "owner": equates to `0o600` on Unix (read & write for owner).
# * "group": equates to `0o660` on Unix (read & write for owner and group).
# * "anyone": equates to `0o666` on Unix (read & write for owner, group, and other).
access = "owner"

# Alternative unix domain socket to listen on (Unix only)
# unix_socket = "path/to/socket"

# Alternative name for a local named Windows pipe to listen on (Windows only)
# windows_pipe = "some_name"

###############################################################################
# All configuration specific to the distant server will be found under
# this heading
###############################################################################
[server]

# Specifies an alternative path to use when logging information while the
# server is running
# log_file = "path/to/file"

# Specifies the log level used when logging information while the server
# is running
#
# Choices are off, error, warn, info, debug, trace
# The default setting is info
log_level = "info"

# Configuration related to the server's listen command
[server.listen]

# IP address that the server will bind to. This can be one of three things:
#
# 1. "ssh": the server will reply from the IP address that the SSH connection
#           came from (as found in the SSH_CONNECTION environment variable).
#           This is useful for multihomed servers.
# 2. "any": the server will reply on the default interface and will not bind to
#           a particular IP address. This can be useful if the connection is
#           made through ssh or another tool that makes the SSH connection
#           appear to come from localhost.
# 3. "{IP}": the server will attempt to bind to the specified IP address.
host = "any"

# Set the port(s) that the server will attempt to bind to.
#
# This can be in the form of PORT1 or PORT1:PORTN to provide a range of ports.
# With "0", the server will let the operating system pick an available TCP port.
#
# Please note that this option does not affect the server-side port used by SSH.
port = "0"

# If true, will bind to the ipv6 interface if host is any instead of ipv4
use_ipv6 = false

# Logic to apply to server when determining when to shutdown automatically.
#
# 1. "never" means the server will never automatically shut down
# 2. "after=<N>" means the server will shut down after N seconds
# 3. "lonely=<N>" means the server will shut down after N seconds with no connections
shutdown = "never"

# Changes the current working directory (cwd) to the specified directory.
# current_dir = "path/to/dir"

# Configuration related to filesystem watching done by the server
[server.watch]

# If true, will attempt to use native filesystem watching (more efficient),
# otherwise will leverage polling of watched files and directories to detect changes
native = true

# If specified, represents the time (in seconds) between polls of files being watched,
# only relevant when using the polling watcher implementation
#poll_interval = 30

# If true, will attempt to load a file and compare its contents to detect file changes,
# only relevant when using the polling watcher implementation (VERY SLOW)
compare_contents = false

# Represents the maximum time (in seconds) to wait for filesystem changes before
# reporting them, which is useful to avoid noisy changes as well as serves to consolidate
# different events that represent the same action
# debounce_timeout = 0.5

# Represents how often (in seconds) to check for new events before the debounce timeout
# occurs. Defaults to 1/4 the debounce timeout if not set.
# debounce_tick_rate = 0.125
distant generate config --help
Generate configuration file with base settings

Usage: distant generate config [OPTIONS]

Options:
      --log-level <LOG_LEVEL>  Log level to use throughout the application [possible values: off, error, warn, info, debug, trace]
  -o, --output <FILE>          Write output to a file instead of stdout
      --log-file <LOG_FILE>    Path to file to use for logging
      --config <CONFIG_PATH>   Configuration file to load instead of the default paths
  -h, --help                   Print help