FrancescoVaiani / edgehog-device-runtime

Edgehog Device Runtime is a portable middleware written in Rust, that enables remote device management on Linux-based systems.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Edgehog Device Runtime

codecov

Edgehog Device Runtime is a portable middleware written in Rust, that enables remote device management using Edgehog.

Supported Operating System

At the moment only Linux-based systems are supported.

See also OS requirements for further information.

Implemented Features

The following information are sent to remote Edgehog instance:

  • OS info (data is read from /etc/os-release)
  • Hardware info
  • System status (data is read from proc filesystem)
  • Runtime info and compiler version
  • OTA update using RAUC
  • Edgehog Device Runtime status changes via systemd.

How it Works

Edgehog Device Runtime relies on Astarte in order to communicate with the remote Edgehog instance.

Edgehog Device Runtime is a reference implementation of Edgehog Astarte Interfaces. Astarte interfaces describe how data are exchanged with the remote instance, and what kind of features are implemented.

Configuration

Edgehog Device Runtime can be configured using a TOML file located either in $PWD/edgehog-config.toml or /etc/edgehog/config.toml, or in a custom path, run cargo run -- --help for more informations.

Example configuration:

credentials_secret = "YOUR_CREDENTIAL_SECRET"
device_id = "YOUR_UNIQUE_DEVIDE_ID"
pairing_url = "https://api.astarte.EXAMPLE.COM/pairing"
realm = "examplerealm"
interfaces_directory = "/usr/share/edgehog/astarte-interfaces/"
state_file = "/var/lib/edgehog/state.json"
download_directory = "/var/tmp/edgehog-updates/"

Contributing

We are open to any contribution: pull requests, bug reports and feature requests are welcome.

License

Edgehog Device Runtime source code is released under the Apache 2.0 License.

Check the LICENSE file for more information.

About

Edgehog Device Runtime is a portable middleware written in Rust, that enables remote device management on Linux-based systems.

License:Apache License 2.0


Languages

Language:Rust 100.0%