Controlling IO from the command line.
Find Help at the Command Line#
Running IO with --help displays basic help information.
$ io --help
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ▀█▀ █▀█ your friendly neighborhood proxy ┃
┃ ▄█▄ █▄█ https://agent.io ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Usage:
io [flags]
Flags:
-b, --base-id int set the base ID (0-99)
-c, --config strings load config file (can be used multiple times)
--debug strings debug options
-x, --exit exit after importing config files
-h, --help help for io
--home string home directory (overrides $XDG_DATA_HOME and $XDG_CACHE_HOME)
-l, --log-level string log level (debug, info, warn, error, fatal) (default "info")
-p, --passphrase string passphrase for database encryption
-v, --version print version and exit
IO’s command-line options are mostly intuitive, but one calls for special explanation.
All Your Base IDs#
Normally it’s only possible to run one IO and Envoy at a time on a given system. There are ports and sockets that IO uses, Envoy uses shared memory regions, and all of these can have conflicts when we run a second IO/Envoy combination. To work around this, Envoy has the --base-id flag, which it uses to claim a unique shared memory region. IO extends this and uses it to offset certain ports, including its SSH port. Because of the way that IO uses the base ID, IO’s base ID is limited to 0-99.
