You can use config.toml
file to configure core and connectors or specify path via -config
option.
You can generate minimal required config with
$ ./core-<os>-<arch> -min-config
Minimal configuration
[core]
id = "" # id of edge
[core.cloud]
# cloud jwt access token
# minimal scope should be
#
# GET models/:id
# GET objects/:id
token = ""
[core.mqtt]
cert_file = "" # mqtt certificate file path
key_path = "" # mqtt key file path
Also you can generate configuration with default values
$ ./core-<os>-<arch> -default-config
Default configuration
log_level = "info"
log_format = "text" # output log format (you can use text or json)
ws_port = 9000
check_updates = true
auto_download_updates = false # if true service will download update and exit
[core]
id = "" # id of edge
rpc_timeout = "1m" # how long core should wait response from connector before return timeout error
[core.db]
path = "storage.db"
clean_state = false # should internal state be cleaned on start or not
[core.cloud]
url = "https://dev.rightech.io/api/v1"
# cloud jwt access token
# minimal scope should be
#
# GET models/:id
# GET objects/:id
token = ""
[core.mqtt]
# if cert_file and key_path provided core will be use tls connection
# in this case make sure your url start with tls://
url = "tls://dev.rightech.io:8883"
cert_file = "" # mqtt certificate file path
key_path = "" # mqtt key file path
[modbus]
mode = "tcp" # rtu and ascii also supported
addr = "localhost:8000" # if mode = rtu or ascii there is should be path
[opcua]
endpoint = "opc.tcp://localhost:4840"
encryption = "Basic256Sha256" # required for encrypted servers only, "Basic256Sha", "Basic256", "Basic128Rsa15" supported
mode = "SignAndEncrypt" # required for encrypted servers only, "None", "Sign", "SignAndEncrypt" supported
server_cert = "cert.pem" # required for encrypted servers only, path to .pem certificate
server_key = "key.pem" # required for encrypted servers only, path to .pem key
[snmp]
host_port="localhost:161"
community="public" # community string, required for v2c only
version="2c" # version of SNMP ("2c" or "3")
mode = "authPriv" # mode of encryption ("authPriv", "authNoPriv", "NoauthNoPriv"), required for v3 only
auth_protocol = "MD5" # "MD5" and "SHA" supported, required for v3 only (if necessary)
auth_key = "" # required for v3 only (if necessary)
priv_protocol = "DES" # "DES" and "AES" supported, required for v3 only (if necessary)
priv_key = "" # required for v3 only (if necessary)
security_name = "" # required for v3 only
To build all services run
$ make build_all
also you can build specific service
$ make build_core
build results will be placed at build
folder
To run core service use
$ make run_core
To run connectors (modbus connector example)
$ make run_modbus
See init folder for systemd services.
You can find some development helpers at tools dir.
To run helper docker containers execute
$ make dev_env
To stop
$ make stop_env
And to remove
$ make rm_env
It is useful to place validate-license script to pre-commit hook. To do this run
$ ln -f scripts/validate-license.sh .git/hooks/pre-commit
Also you can run it manual by
$ make validate
To prepare releases we use bumpversion.