balenaSupervisor
balena's on-device agent for IoT hardware, responsible for installing, starting, stopping and monitoring OCI-compliant containers and managing an application's lifecycle on the device.
balenaSupervisor runs on an IoT device and communicates with balenaCloud, using balenaEngine's remote API, an IoT-focused container engine, to install, start, stop and monitor applications delivered and run as OCI-compliant containers, and to apply changes balenaCloud sends down to the device.
The project accepts contributions through issues and pull requests, uses Versionist for semantic versioning and changelog generation, and expects commits to carry a Change-Type footer indicating a patch, minor or major change, along with a sign-off.
It is developed with Node.js 20 or newer and, on platforms not supported by default by node-sqlite3, also requires Rust, a C++ compiler and linker, and the SQLite development headers.