Installation Using Manual Method
This article explains the steps and commands necessary to install the Coda service manually.
Note
The manual install process should only be a last resort if your device does not fulfill the requirements needed for an installation using edgectl. In all other cases using edgectl is much faster and less error-prone.
Step 1 - Change folders to the /opt directory. If you need to install to a custom location, replace /opt with your location.
cd /opt
Step 2 - Download the edge-assets package.
wget --max-redirect=10 http://api.edgeiq.io/api/v1/platform/downloads/latest/edge-assets-latest.tar.gz
Note
BusyBox replaces wget in some environments with a compact implementation of its own, which does not support all the security features and options such as https redirects.
Step 3 - Extract the archive. You should see an edge folder inside the /opt folder.
tar -zxvf edge-assets-latest.tar.gz
Step 4 - Download the edge binary and make an executable.
Options for device architecture are: arm5, armhf, arm64, arm7, or amd64.
wget --max-redirect=10 http://api.edgeiq.io/api/v1/platform/downloads/latest/edge-linux-[YOUR_DEVICE_ARCHITECTURE]-latest -O ./edge/edge && chmod +x ./edge/edge
Note
BusyBox replaces wget in some environments with a compact implementation of its own, which does not support all the security features and options such as https redirects.
Step 5 - Change to the edge directory and remove the default conf files.
cd ./edge
rm ./conf/bootstrap.json ./conf/conf.json
Step 6 - Create new json config files using the following commands (example configuration).
cat >./conf/bootstrap.json <<EOF
{
"company_id": "[YOUR_ORGACCOUNT_ID]",
"identifier_filepath": "/opt/edge/conf/id.json",
"platform": "",
"init_system": "",
"network_configurer": "",
"local": false,
"install_dir": "/opt",
"network_configuror": ""
}
EOF
cat >./conf/conf.json <<EOF
{
"edge": {
"manufacturer": "generic",
"model": "linux",
"company":"[YOUR_ORGACCOUNT_ID]",
"env": "prod",
"local": false,
"bypass_and_relay": false,
"init_system": "systemd",
"identifier_path": "/opt/edgeiq_bootstrap.json",
"ui_port": 9001,
"api_port": 9000
},
"mqtt": {
"broker": {
"protocol": "ssl",
"host": "mqtt.ms-io.com",
"port": "443",
"password": "Dmn2LKZNcYSBd1PAbRMcmEKBG8EDpRjxc0BB5A==",
"escrow_token_path": "/opt/escrow_token"
},
"topics": {
"upstream": {
"report": "reports",
"heartbeat": "reports/hb",
"config": "config",
"action": "action",
"new_version": "new_version",
"lwt": "lwt",
"status": "status",
"log": "logs",
"gateway_command_status": "gateway_command_status",
"deployment_status": "deployment_status",
"error": "error",
"escrow_request": "escrow_request"
},
"downstream": {
"config": "config",
"command": "commands",
"new_version": "new_version",
"gateway_command": "gateway_commands",
"escrow": "escrow"
}
}
},
"platform": {
"url": "https://api.edgeiq.io/api/v1/platform/"
},
"aws": {
"greengrass": {
"heartbeat_port": 9002
}
}
}
EOF
Step 7 - Start edge manually
Option A: Use MAC address as unique device id
By default, Coda will use the MAC address of the device as the unique device id, so please make sure to create a corresponding device in the portal first. You can then start Coda like this:
./edge
Option B: Specify company id and/or unique device id
To test Coda with a specific company id or unique device id, you can specify both via environment variables, like this:
EDGE_COMPANY=your-company EDGE_UNIQUE_ID=your-unique-device-id ./edge
Option C: Create an identity file
For a more permanent solution, you can create an identity file to specify these parameters:
cat >./conf/id.json <<EOF
{
"company_id": "[company-id]",
"unique_id": "[unique_device_id]"
}
EOF
At this point Coda should start up and after a few seconds pull down an updated configuration. If you receive an error, please copy and paste it into a support ticket or send it to [email protected].
Updated 16 days ago