Skip to content

arduino/arduino-app-cli

Repository files navigation

Arduino App CLI

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

Environment Variables

The following environment variables are used to configure arduino-app-cli:

Application Directories

  • ARDUINO_APP_CLI__APPS_DIR Path to the directory where Arduino Apps created by the user are stored.
    Default: /home/arduino/ArduinoApps

  • ARDUINO_APP_CLI__DATA_DIR Path 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.yaml
        • models-list.yaml
    • other data such as properties.msgpack containing variable values
  • ARDUINO_APP_BRICKS__CUSTOM_MODEL_DIR Path to the directory where custom models are stored.
    Default: $HOME/.arduino-bricks/ei-models
    (e.g. /home/arduino/.arduino-bricks/ei-models)


Execution Settings

  • ARDUINO_APP_CLI__ALLOW_ROOT Allow running arduino-app-cli as root.
    Default: false Not recommended to set to true.

External Services

  • LIBRARIES_API_URL URL of the external service used to search libraries.
    Default: https://api2.arduino.cc/libraries/v1/libraries

Docker Settings

  • DOCKER_REGISTRY_BASE Docker registry used to pull images.
    Default: ghcr.io/arduino/

  • DOCKER_PYTHON_BASE_IMAGE Tag of the Docker image for the Python runner.
    Default: app-bricks/python-apps-base:<RUNNER_VERSION>

App folder and persistent data

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.

Docker images registry

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.