linux/amd64 and linux/arm64:
Use
latest for the newest semantic-version release or a version tag such as 0.0.73 to pin a deployment. Public packages can be pulled without signing in.
Docker Compose
Createcompose.yaml:
server-data. The agent stores its enrollment in agent-data and AI-provider credentials in agent-home. The agent opens outbound connections only and does not publish a port.
Create a .env file beside compose.yaml before starting:
.env out of source control and back it up securely. APP_SECRET also encrypts stored credentials, so losing it costs more than a round of re-authentication — see Environment variables.
Behind a reverse proxy, set APP_ORIGINS to the public hostname users reach, and set TRUST_PROXY_HEADERS=true only if that proxy sets x-forwarded-host and strips client-supplied copies. Add the provider variables from Authentication when using AUTH_MODE=oidc or both.
1
Pull and start the server
http://localhost:3090 and create the first user. Registration closes after that account succeeds. Then go to Agents and create a one-time enrollment token.2
Enroll the container agent
/data/config.json into the persistent agent-data volume.3
Start the agent
docker compose logs -f agent.Give the agent repository storage
Every repository the agent manages must be mounted into its container. The Compose example mounts local./repositories at /workspace/repositories; register codebases with their container paths beneath /workspace/repositories.
To use an external macOS disk mounted at /Volumes/Development, replace or add this agent volume:
/mnt/development:/mnt/development.
The agent currently reports capacity for its container root filesystem. A
bind-mounted disk is available to jobs and repositories, but its capacity is
not included in the agent’s disk-usage field.
Runtime capabilities
The Linux agent image runs as the non-rootnode user and includes Git, SSH, Codex, OpenCode, and the Claude Agent SDK. It can manage codebases, worktrees, commands, workflows, coverage, skills, and AI runs.
Xcode build data, iOS builds, and signing-asset jobs are macOS-only. Install the control agent through Homebrew or npm on a Mac that needs those capabilities.
Operate and update
unknown/unknown descriptors beside linux/amd64 and linux/arm64; those descriptors are attestations, not runnable image variants.
If a package is private, authenticate before pulling:
Server configuration
The image supports the same environment variables as the npm server, including Better Auth and OIDC settings,PORT, HOSTNAME, AGENT_WS_HOSTNAME, AGENT_WS_PORT, DATABASE_URL, credential-storage settings, and Vault settings. It applies pending Prisma migrations before starting.
See Hosting and networking before exposing the control plane beyond localhost.