The DeepHub can be flexibly configured using the available configuration options listed here. All configurations are loaded once during startup.
These configs can be set in three different ways, listed on this page from most to least specific.
1) Environment Variables
Configurations set via environment variables have the highest priority and override configs set via the other two methods. These may be defined on your machine (ex. if you are running a single Docker container) or in the docker-compose.yml file of your DeepHub instance (if you are using Docker Compose for container orchestration).
For every config, the associated environment variable must be fully capitalized and prepended with:
DEEPHUB_
For example, license_key would be set as an environment variable named DEEPHUB_LICENSE_KEY on your machine or in docker-compose.yml.
Note: Please ensure there are no conflicts with pre-existing environment variables on your machine (e.g. from a Kubernetes deployment). You can view all environment variables currently set within your shell by executing the set command in a Linux terminal window.
2) Command Line Arguments
Configurations set via command line arguments have the 2nd highest priority. They override configs set via a configuration file, but are overridden by configs set with environment variables. Command line arguments are provided when running the deephub executable.
Command line arguments follow the same names defined here, but are prepended with "--".
3) Configuration File
Configurations may also be set via a YAML-based file, stored in the /hub-data/ directory of the Docker container (or in the directory defined with config_path). These configurations are overridden if the same configs are set via the previous two methods.
When downloading the DeepHub from our GitHub Repository, an example configuration file is included: example_hub_config.yaml.
Note: If you intend on setting configs using this file, it must be renamed to hub_config.yaml and remain in the /hub-data/ directory.
Under the Hood
During startup of the DeepHub, several steps are done:
- If applicable, the hub_config.yaml file is read by the deephub executable and the settings from within the file are used.
- Any provided command line arguments are checked by the deephub and therefore may override some of the initial settings given via the hub_config.yaml file.
- The deephub checks whether environment variables are defined. If so, it overrides some settings previously given via the hub_config.yaml file or command line arguments.
- The startup process ends.