# Restrictions ## Hardware | Restriction | Source | Details | |-------------|--------|---------| | ARM64 architecture | `.woodpecker/build-arm.yml` | CI builds ARM64-only Docker images | | Docker daemon access | `Dockerfile`, `main.py` | Requires Docker socket mount for `docker load` and `docker image inspect` | | Hardware fingerprint availability | `hardware_service.pyx` | Requires `lscpu`, `lspci`, `/sys/block/sda` on Linux; PowerShell on Windows | ## Software | Restriction | Source | Details | |-------------|--------|---------| | Python 3.11 | `Dockerfile` | Base image is `python:3.11-slim` | | Cython 3.1.3 | `requirements.txt` | Pinned version for compilation | | GCC compiler | `Dockerfile` | Required at build time for Cython extension compilation | | Docker CLI | `Dockerfile` | `docker-ce-cli` installed inside the container | ## Environment | Restriction | Source | Details | |-------------|--------|---------| | `RESOURCE_API_URL` env var | `main.py` | Defaults to `https://api.azaion.com` | | `IMAGES_PATH` env var | `main.py` | Defaults to `/opt/azaion/images.enc` — encrypted archive must be pre-deployed | | `API_VERSION` env var | `main.py` | Defaults to `latest` — determines expected Docker image tags | | CDN config file | `api_client.pyx` | `cdn.yaml` downloaded encrypted from API at credential setup time | | Network access | `api_client.pyx`, `cdn_manager.pyx` | Must reach Azaion Resource API and S3 CDN endpoint | ## Operational | Restriction | Source | Details | |-------------|--------|---------| | Single instance | `main.py` | Module-level singleton `api_client` — not designed for multi-process deployment | | Synchronous I/O | `api_client.pyx` | Large file operations block the worker thread | | No horizontal scaling | Architecture | Stateful singleton pattern prevents running multiple replicas | | Log directory | `constants.pyx` | Hardcoded to `Logs/` — requires writable filesystem at that path |