# @agimon-ai/po-container-runtime-linux-arm64

Read-only Po server payload for Linux arm64 sandbox containers (`linux-arm64`, glibc).

A Po host fetches this package and mounts its `runtime` folder read-only at `/opt/po` in a Node 24 container. The container runs the server from there; nothing is written under `/opt/po`. Install Po rather than this artifact directly.

[`container-runtime.json`](./container-runtime.json) holds what the container needs: the entry path relative to `/opt/po`, and the environment (`NODE_PATH`, `PO_PACKAGE_ROOT`, `PO_PACKAGE_CATALOG`, and the Runner binaries).

```sh
node /opt/po/po/dist/bin/serve.mjs --auth-token-file <file> --contained --workspace-id <id> --host 0.0.0.0 --web <port> --no-session
```

## Build

`pnpm nx build @agimon-ai/po-container-runtime-linux-arm64` builds every Po package, then stages the runtime with the desktop runtime bundle (`packages/clients/po-desktop/vite.runtime.config.ts`) for this target. The build also copies `container-runtime.json` into `runtime`, so the mounted folder describes itself.

A macOS or other-arch machine needs the Linux glibc native packages first. They are not part of a normal install; add them with:

```sh
pnpm install:container-targets
```

That runs `pnpm install --frozen-lockfile` with `--os=current,linux --cpu=current,arm64,x64 --libc=current,glibc`, and the release workflow runs it before the build.

## License

BUSL-1.1. The payload also contains third-party packages under their own licenses.
