Skip to main content

Docker & air-gapped deployment

Docker Compose​

docker compose up -d --build

Then open the URL printed in docker compose logs -f computer, usually http://localhost:8000/?token=... (check docker-compose.yml if you've remapped the host port).

Build and run the image directly​

docker build -t hridaai-computer:local --target default .
docker run --rm -it \
  -p 8000:8000 \
  -v cptr-data:/data \
  -v "$PWD:/workspace" \
  -w /workspace \
  hridaai-computer:local
  • State lives in /data. Mount your project at /workspace so the app can reach it.
  • The default image includes Git and the GitHub CLI (gh).
  • The image ships a HEALTHCHECK against /api/health; docker-compose.yml sets default memory and process limits.

Image targets / profiles​

TargetWhen to use
--target defaultStandard image. Git + gh included.
--target browserAdds Chromium so the agent's browser tools and browser tabs work. Also available as docker compose --profile browser up.
Host permissions

If you bind-mount a host directory to /data, make sure it's writable by the container user — SQLite needs to create and update /data/app.db, and host directory permissions take precedence over the image's built-in ownership.

Continuous database backup​

Set CPTR_BACKUP=1 (and mount ./backups) and the database streams continuously to a replica through Litestream, with automatic restore on a fresh volume. See Configuration and Observability.

Connecting a host OpenCode server from Docker​

To reach a host-running OpenCode server from inside the container, start it on a reachable interface and point the OpenCode agent at the Docker host:

opencode serve --hostname 0.0.0.0 --port 4096

Use http://host.docker.internal:4096 on Docker Desktop; on Linux add --add-host=host.docker.internal:host-gateway to docker run.

Air-gapped installation​

AI Labs doesn't need internet access after it's installed — the Python wheel bundles the built frontend, and the Docker image is self-contained.

On a connected machine:

pip download --dest wheelhouse 'cptr[all]'
docker build -t hridaai-computer:local --target default .
docker save hridaai-computer:local -o cptr-image.tar

Transfer the artifacts, then install or run offline:

pip install --no-index --find-links ./wheelhouse 'cptr[all]'
cptr run --host 0.0.0.0

# or, from the saved image:
docker load -i cptr-image.tar
docker run --rm -it --network=none -p 8000:8000 \
  -v cptr-data:/data -v "$PWD:/workspace" -w /workspace \
  hridaai-computer:local

Core local features run entirely from local assets. External services — hosted model APIs, web search providers, messaging adapters, Git remotes, MCP/OpenAPI servers — still require reachable endpoints.

Hrida.ai is proprietary software of Zlabs Innovation. See the license for terms. © 2026 Zlabs Innovation.