Skip to main content

Install

Install Aida Controller on a supported Linux host (Ubuntu or Debian recommended). The installer pulls images from ECR, lays out config under /opt/aida-controller by default, starts host-controller, and bootstraps the application stack.

You do not install the Platform on this host — only the edge controller. Register it to a Platform site with a one-time install code from the Platform UI.

Requirements​

ItemGuidance
OSUbuntu Server 22.04+ or Debian (amd64)
ResourcesRoughly 4 GB RAM, 2 CPUs, ~50 GB disk (typical VM)
Accesssudo / root; outbound access to ECR and (for OTC) the Platform API
DockerInstaller can install Docker Engine + Compose v2 if missing
  1. In Aida Platform, open your site → Controllers (or Controllers with the site selected).
  2. Choose Provision install.
  3. Copy the install code and the suggested install command (single use; expires).
  4. On the appliance host, run the command as root.

Example:

curl -fsSL https://aida-platform.com/controller/install.sh | sudo bash -s -- \
--install-code=YOUR_CODE

What the one-time code does​

--install-code redeems against the Platform API (not the SPA hostname) and:

  • Registers the controller to the site that issued the code
  • Delivers fleet IoT certificates into the install tree
  • Writes ECR credentials (.ecr-aws.env) so images can be pulled
  • Seeds the controller / contract id used by Platform and licensing

Optional:

# Explicit API host (defaults to https://api.aida-platform.com with OTC)
sudo bash install.sh --install-code=YOUR_CODE \
--platform-url=https://api.aida-platform.com

# Staging cloud profile + staging API host default
curl -fsSL https://staging.aida-platform.com/controller/install.sh | sudo bash -s -- \
--staging --install-code=YOUR_CODE

Reinstall while keeping the same identity​

To reinstall on the same or a replacement host without creating a new Platform controller identity, pass the existing contract / controller UUID:

sudo bash install.sh --install-code=YOUR_CODE \
--id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

--id wins over any id already in .env or .aida/controller_id.
Without --id, a reinstall reuses an existing on-disk id when one is present.

You can also reinstall with only --id when IoT/ECR material is already on disk (or supplied another way); prefer OTC when you need fresh certs or ECR env from Platform.

Version pinning​

There is no --version flag. Pin image tags with environment variables (written into .env on each install run):

VariableDefaultMeaning
RELEASE_TAGlatestApp stack images
HOST_CONTROLLER_TAGlatestHost-controller image
curl -fsSL https://aida-platform.com/controller/install.sh | sudo env \
RELEASE_TAG=2.10.0 \
HOST_CONTROLLER_TAG=2.10.0 \
bash -s -- --install-code=YOUR_CODE

Use the same tags on both nodes of an HA pair.

Other useful options​

Flag / envPurpose
--staging / AIDA_STAGINGStaging MQTT / tunnel / platform profile
--platform-url / AIDA_PLATFORM_URLPlatform API base for OTC redeem
AIDA_INSTALL_DIRInstall root (default /opt/aida-controller)
AIDA_SKIP_DOCKER_INSTALL=1Fail if Docker missing instead of auto-installing
--secondary + --primary + --tokenJoin as HA standby — see HA redundancy

After install​

Under the install directory (default /opt/aida-controller):

ScriptPurpose
start.shStart host-controller and reconcile the stack
stop.shStop app containers (host-controller may remain)
uninstall.shRemove stack; optional --purge-volumes deletes DB/Redis data

Open the controller UI at the host’s LAN address (HTTP/HTTPS as configured). Confirm the unit appears under the Platform site, then apply a license if it is not already entitled.