# Joystream Distributor CLI The Joystream Distributor CLI package contains a set of commands that allow: - running the actual distributor node, - performing the node operator on-chain duties (like setting the node metadata) - performing the distribution working group leader on-chain duties (like setting the distribution system limits, assigning distribution bags and buckets) **To see the list of all available commands and their flags / arguments, check out the [commands](docs/commands/index.md) documentation.** ## Configuration ### Config file All the configuration values required by Joystream Distributor CLI are provided via a single configuration file (either `yml` or `json`). The path to the configuration will be (ordered from highest to lowest priority): - The value of `--configPath` flag provided when running a command, _or_ - The value of `CONFIG_PATH` environment variable, _or_ - `config.yml` in the current working directory by default ### ENV variables All configuration values can be overriden using environment variables, which may be useful when running the distributor node as docker service. To determine environment variable name based on a config key, for example `intervals.cacheCleanup`, use the following formula: - convert `pascalCase` fieldnames to `SCREAMING_SNAKE_CASE`: `intervals.cacheCleanup` => `INTERVALS.CACHE_CLEANUP` - replace all dots with `__`: `INTERVALS.CACHE_CLEANUP` => `INTERVALS__CACHE_CLEANUP` - add `JOYSTREAM_DISTRIBUTOR__` prefix: `INTERVALS__CACHE_CLEANUP` => `JOYSTREAM_DISTRIBUTOR__INTERVALS__CACHE_CLEANUP` In case of arrays or `oneOf` objects (ie. `keys`), the values must be provided as json string, for example `JOYSTREAM_DISTRIBUTOR__KEYS="[{\"suri\":\"//Bob\"}]"`. In order to unset a value you can use one of the following strings as env variable value: `"off"` `"null"`, `"undefined"`, for example: `JOYSTREAM_DISTRIBUTOR__LOGS__FILE="off"`. For more envirnoment variable examples see the `distributor-node` service configuration in [docker-compose.yml](../docker-compose.yml). **For detailed configuration reference, checkout the [config schema](docs/schema/definition.md) documentation.** ## Distributor Node **To understand how the distributor node works in detail, checkout the [node](docs/node/index.md) documentation.**