The Things Stack binary can be configured with many different options. Those options can be provided as command-line flags, environment variables or using a configuration file.
In this reference we will refer to configuration options by name. On this page we will show how the
console.ui.canonical-url option can be configured.
Command-line flags have the highest priority and, as such, override other means of configuration (environment variable or file). This looks as follows:
$ ttn-lw-stack start console --console.ui.canonical-url "https://thethings.example.com/console"
Environment variables for configuration options are very similar to the command-line flags, except that they are in uppercase, and all separators (
-) are replaced by underscores (
_). Environment variables are also prefixed with
In many cases you’ll want to use a
.envfile that is loaded using the
dotenvcommand of direnv or the
env_fileoption of Docker Compose. You can also
exporteach environment variable, or run
export $(grep -v '^#' .env | xargs)to export all variables in the
The option from the command-line example from above would look as follows with environment variables:
You can also configure The Things Stack with a YAML configuration file. This is again similar to the command-line flags, except that each
. represents a YAML node. This allows you to group related options together:
console: ui: canonical-url: 'https://thethings.example.com/console' # other console UI options # other console options
You can specify the location of the YAML configuration file with the command-line flag
--config. If this flag is not present, The Things Stack will look for config files in the following locations:
- The current directory
- The user’s home directory (as determined by Go)
- The user’s config directory (as determined by Go)
You can run The Things Stack with the
--help flag, and check the description of the
--config flag for the exact locations that are being checked.
The Things Stack can be used for local testing purposes without any custom configuration.
Printing the Current Configuration
You can see the current configuration with the
config command of
ttn-lw-cli. By default this will print the configuration as CLI flags. Use the
--yml flags to print the configuration as environment variables or as YAML.