Configuration of the server can be done either through the command line or by creating a custom YAML configuration file. Both options will be detailed below.
The most straight forward way of creating a new server configuration is using the command
vnode new which allows you to configure the most basic settings.
By default the node configuration file is stored at user level, which isolates this configuration from other users. In case you want this configuration to be available for all users, simply add the
--system flag (make sure you have sufficient rights to do this).
The configuration wizard outputs a YAML file which can be loaded into VANTAGE6. It is also possible to create this file yourself, to see Configuration File Structure or an example on our github page. This file can be stored (and referred to) at any location at the machine, although it recommended to use either the VANTAGE6 system or user folder. These folders are different per operating system.
Similar to the server, each node instance (configuration) can have multiple environments. You can specify these under the key
environments which allows four types:
If you do not want to specify any environment, you should only specify the key
In the end, the configuration file should have the following structure:
application:api_key: api-key-from-serverserver_url: https://api.distributedlearning.aiport: 5000api_path: '/api'task_dir: tasksencryption:enabled: trueprivate_key: /path/to/private_key.pemdocker_registries:- registry: harbor.vantage6.aiusername: docker-registry-userpassword: your-password!allowed_images:- ^harbor.vantage6.ai/[a-zA-Z]+/[a-zA-Z]+databases:default: /path/to/database.csvalternative: /path/to/other/database.csvlogging:level: DEBUG # Can be on of 'DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'file: node.log # Filename of logfileuse_console: True # Log output to the console?backup_count: 5 # Number of logs to keepmax_size: 1024 # Specified in kB (i.e. 1024 means a maximum file size of 1MB)format: "%(asctime)s - %(name)-14s - %(levelname)-8s - %(message)s"datefmt: "%H:%M:%S"
API key used to authenticate at the server.
URL of the vantage6 server.
Port of the vantage6 server. Should be
Path of the API. Usually empty or
Local task directory name
Section that contains encryption settings:
Section that contains a list Docker registry login credentials:
List of databases in
List of additional environment variables you want to provide to the algorithm containers. See here for more detail.
Both the server and node need to agree if encryption is used or not. Encryption at the server is managed at collaboration level, i.e. each collaboration determines whenever encryption of all communication is used or not. You can enable or disable encryption in the configuration file by setting the
enabled key in the encryption section.
application:...encryption:enabled: trueprivate_key: /path/to/private_key.pem...
To generate a new private key and upload the public key to the server you can use the command
vnode create-private-key. You can also generate the key yourself and upload it by using the
To control which algorithms are allowed at the node you can set the
allowed_images key in the configuration file. This is expected to be a valid regular expression.
If you are using a private docker repository the environment in which the node needs to be logged in to that repository. In case the Dockerized version of vantage6 is used you need to specify this in the configuration file using the
application:...docker_registries:- registry: harbor.vantage6.aiusername: docker-registry-userpassword: your-password!...
It is possible to define additional environment variables for the algorithm containers. For example, this could be useful for sharing credentials for accessing a data-store.
application:...algorithm_env:var1: value1var2: 2...