Welcome to the official repository for EdgeIQ Coda snap, formerly known as Edge Local Service. Coda by EdgeIQ is a sophisticated edge agent platform designed to streamline the connection, management, and orchestration of IoT devices at the edge. This snap package equips users with the essential tools to deploy and operate the Coda Edge Agent on Ubuntu Core systems efficiently.
- Efficient IoT Device Management: Coda ensures a seamless data flow and secure communication between IoT devices and the EdgeIQ Symphony platform.
- Robust Monitoring: Offers comprehensive features for device monitoring, data collection, vital for edge computing solutions.
- Flexible Integration: Supports various edge protocols and can be integrated with multiple cloud services, offering versatile workflows for IoT device orchestration.
- Simplified Deployment: The snap package facilitates easy deployment on Ubuntu Core, minimizing setup efforts for users.
To install Coda, run the following command in your terminal:
sudo snap install coda
Configure your device with a unique ID and company ID using the following commands:
sudo snap set coda bootstrap.unique-id=your-unique-id
sudo snap set coda bootstrap.company-id=your-company-id
sudo snap restart coda
Note: By default, during the installation, Snap tries to use the MAC address of the first Ethernet port as the
unique-id
. This will happen only one time during the first installation and then can be changed via thesnap set
command.
To update the MQTT broker password:
sudo snap set coda conf.mqtt.broker.password="your-encrypted-password"
sudo snap restart coda
To connect to a different EdgeIQ environment, run the following command to set the corresponding broker:
sudo snap set coda conf.mqtt.broker.host="mqtt.edgeiq.io"
sudo snap restart coda
The brokers are:
Environment | MQTT Broker |
---|---|
Production | mqtt.edgeiq.io |
Staging | mqtt.stage.edgeiq.io |
The snap configuration keys correspond to paths in the configuration files, with hyphens instead of underscores due to snapd restrictions. For example, edge.relay_frequency_limit
in conf.json
translates to snap set conf.edge.relay-frequency-limit=10
.
sudo snap get coda "bootstrap"
cat /var/snap/coda/common/conf/bootstrap.json
cat /var/snap/coda/common/conf/identifier.json
sudo snap get coda "conf"
cat /var/snap/coda/common/conf/conf.json
To enable persistent logging for the system journal, which ensures logs are preserved across reboots:
sudo snap set system journal.persistent=true
This configuration is recommended for maintaining log history and debugging purposes.
To grant access the coda snap to reboot or shutdown the device, please connect the following plugs:
sudo snap connect coda:shutdown :shutdown
To manage snaps on the device, please connect the following plugs:
sudo snap connect coda:snapd-control :snapd-control
To have ability create and apply network configurations to your device via API, please connect the following plug:
sudo snap connect coda:network-control :network-control
sudo snap connect coda:network-manager :network-manager
sudo snap connect coda:network-manager-observe :network-manager-observe
sudo snap connect coda:firewall-control :firewall-control
Note: At this time
modem-manager
is reserved but not supported by the Coda. We are working on adding support for it in nearest the future.
To configure your Device with TPM Support for Enhanced Security , please connect the following plug:
sudo snap connect coda:tpm :tpm
To set up your development environment:
make setup
To build the project:
make clean build
To build the specific version:
export EDGEIQ_CODA_VERSION=4.0.22
make clean build
# Login to the snapcraft store
make login
export SNAPCRAFT_STORE_CREDENTIALS=$(cat ./exported.txt)
# Configure snapcraft.yaml
export EDGEIQ_CODA_VERSION=4.0.22
make template
# Trigger the remote build
snapcraft remote-build --launchpad-accept-public-upload --launchpad-timeout 3600 --build-for=amd64,armhf,arm64
# Upload the builds to the snapcraft store
snapcraft upload --release="edge,beta,candidate,stable" coda_${EDGEIQ_CODA_VERSION}_armhf.snap
snapcraft upload --release="edge,beta,candidate,stable" coda_${EDGEIQ_CODA_VERSION}_amd64.snap
snapcraft upload --release="edge,beta,candidate,stable" coda_${EDGEIQ_CODA_VERSION}_arm64.snap
For more information and support, visit the EdgeIQ documentation.