Skip to main content

Docker

This guide describes how to deploy VergeLink as a Docker Container on any hardware.

Prerequisites

  • You have received your verglink.io login
  • You have received your credentials for the VergeLink Docker registry

If you are missing one of the above things, feel free to contact us at vergelink@codestryke.com.

Click the "+ DEVICE" button on the "VergeLink Devices" page to add a new device. After that, a dialog will pop-up where you will see the deployment options.

The VergeLink runtime can either be deployed as a container, or as part of the VergeLink OS. Select your deployment method.

Follow the instructions in the dialog to deploy the VergeLink Edge runtime container on your edge gateway or device.

Runtime Dialog

A few seconds after you executed the docker run command, the VergeLink device will appear on the Devices pages of the UI. You can now follow the Quick Start guide to configure your device for data transmission. Refer to the container logging output for any errors that might prevent your device from being created.

Developer Guide

Recommendations

  • When choosing a hardware device to use for the VergeLink Runtime container, we recommend using a device with at least 1GB of RAM and 2x1GHz CPU. (Minium requirements are: 256MB RAM and 1x700Mhz CPU)
  • We also recommend using a device that supports OTA updates for the operating system and the containers incl. their configuration from a central place. For example: Azure IoT Edge "Certified Devices" or devices with "Portainer" installed and a custom OTA update mechanism for the OS.

Container environment

The following environment variables can be used to configure the VergeLink runtime container.

Configuration

Tenant Configuration

  • DEVICE_CONFIG - Must contain a valid device configuration JSON (minified), which is used to initialiy register the device with the VergeLink Portal.

For example:

{
"backend_conf_endpoint": "https://edge-api.vergelink.io/v1/graphql",
"tenant_token": "eyJhbGciOiJS ... ZEpD6WUlY",
"name": "VergeLink_Docker",
"location": "Munich"
}

This token is the same for all devices that belong to your tenant, see the "How to deploy the VergeLink Runtime" section above on how to copy it from the UI, as it is part of the copied startup command, customized for your tenant.

HTTP Proxy
  • GLOBAL_AGENT_HTTP_PROXY - Set the endpoint of an HTTP proxy that should be used by the runtime for all requests - Example value: 'http://192.168.100.147:3128'

This only works for HTTP communication, so if you are using MQTT for device to cloud communication you need to use the websockets protocol to utilize the HTTP proxy.

Device ID
  • DEVICE_ID - Can be used to set a custom ID for the device used in the VergeLink Portal and for templates. If not set, the device ID will be randomly generated. Must be a unique value
Backend Communication
  • REGISTER_RETRY_TIMEOUT - Tune the timeout the runtime uses when retrying the registration process. (In ms) - (Default: Random between 40000 and 60000)
  • OPERATIONS_POLL_INTERVAL - Tune the interval the runtime uses to fetch operations from the VergeLink Portal (In ms) - (Default: 10000)
  • CONFIGURATION_POLL_INTERVAL - Tune the interval the runtime uses to fetch the device configuration from the VergeLink Portal (In ms) - (Default: 10000)
  • DATA_SOURCE_RECONNECT_TIMEOUT - Tune the timeout the runtime uses to attempt a reconnect if the connection to a data source fails (In ms) - (Default: 10000)
Logging
  • VERGELINK_LOG_LEVEL - Set the log level of the VergeLink Runtime - (Default: 'info')
Device Radar
  • INTERFACE - Set to the network interface name you want to VergeLink to scan for devices on. If not set, VergeLink autodetects all available interfaces - Example value: 'eth0'

Production

For container deployments in production, feel free to contact us at vergelink@codestryke.com.