Skip to content

Deployment

Algol runs on TorizonOS (Toradex Embedded Linux) inside Docker containers. All modules are bundled into a single combined image (algol-app-algold) and deployed via Docker Compose.

Container Layout

Each module runs as its own service in Docker Compose, all read-only with tmpfs mounts for /run and /tmp:

services:
  nats:
    image: <ecr>/algol-app-nats:<tag>
    read_only: true
    tmpfs: [/run, /tmp]

  configurer:
    image: <ecr>/algol-app-configurer:<tag>
    volumes:
      - algol-config:/run/algol/config   # persisted configs
    ...

Image Registry

Production images are pushed to AWS ECR:

070131672568.dkr.ecr.eu-central-2.amazonaws.com/algol-app-<appname>:<tag>

S3 artifacts (combined image, Tezi packages):

s3://parametric-sds-algol-app/images/

Release Tags

Production releases are created by pushing a version tag:

git tag v0.41.0
git push origin v0.41.0

The CI pipeline (build-tag.yml) then:

  1. Tags each module image in ECR with the release tag
  2. Builds and uploads the combined Tezi image to S3 and Torizon Cloud
  3. Tags the Docker Compose file
  4. Creates a GitHub Release with generated release notes

See Development for the development workflow, Production for deploying to a device, and Device Setup for the first boot: key enrolment and bus identity.