arduino-app-cli is a command line tool and a service running on Arduino UNO Q boards, that:
- manages and runs Arduino Apps on the board (both Linux and microcontroller parts)
- provides multiple APIs to perform actions and fetch data, used by the front-end (ArduinoAppsLab)
- auto-updates itself and other components
The following environment variables are used to configure arduino-app-cli:
-
ARDUINO_APP_CLI__APPS_DIRPath to the directory where Arduino Apps created by the user are stored.
Default:/home/arduino/ArduinoApps -
ARDUINO_APP_CLI__DATA_DIRPath to the directory where internal data is stored.
Default:/home/arduino/.local/share/arduino-app-cli
This folder contains:examples/default example Apps (e.g./home/arduino/.local/share/arduino-app-cli/examples)assets/contains a subfolder for each asset version (e.g./home/arduino/.local/share/arduino-app-cli/assets/0.4.5)- Each asset folder includes:
bricks-list.yamlmodels-list.yaml
- Each asset folder includes:
- other data such as
properties.msgpackcontaining variable values
-
ARDUINO_APP_BRICKS__CUSTOM_MODEL_DIRPath to the directory where custom models are stored.
Default:$HOME/.arduino-bricks/ei-models
(e.g./home/arduino/.arduino-bricks/ei-models)
ARDUINO_APP_CLI__ALLOW_ROOTAllow runningarduino-app-clias root.
Default:falseNot recommended to set to true.
LIBRARIES_API_URLURL of the external service used to search libraries.
Default:https://api2.arduino.cc/libraries/v1/libraries
-
DOCKER_REGISTRY_BASEDocker registry used to pull images.
Default:ghcr.io/arduino/ -
DOCKER_PYTHON_BASE_IMAGETag of the Docker image for the Python runner.
Default:app-bricks/python-apps-base:<RUNNER_VERSION>
When running an app, persistent files will be saved in the data folder inside the app folder; other supporting files, including the Python venv are saved in the .cache folder inside the app folder.
Arduino Apps bricks might required a docker image, in that case the orchestrator will pull those from the registry configured with the DOCKER_REGISTRY_BASE environment variable. By default this points to an Arduino GitHub Container Registry (ghcr.io/arduino).
The only image that needs to be referenced directly is the base Python image (DOCKER_PYTHON_BASE_IMAGE), all other containers can be downloaded automatically by the orchestrator depending on the bricks specified as dependencies in the app.yml file.