chiba-controller is the new monorepo root for the Chiba control plane, Ops UI, Guide UI, and node runtime.
This repo is set up for two environments:
- laptop development (
docker-compose.yml) - always-on production (
docker-compose.prod.yml) on10.10.13.9
apps/control-api- control-plane API + Ops endpointsapps/ops- operations UIapps/guide- guide UIapps/control-mcp- MCP serverpackages/db- schema, migrations, import toolspackages/contracts- shared schemas/typespackages/node-runtime- node runtime processconfig/registry.prod.toml- production node inventory/bootstrap source
- Install deps:
pnpm install- Start dev stack:
docker compose up --build- Open:
- Ops:
http://127.0.0.1:8792/ops/ - Control API:
http://127.0.0.1:8795 - Guide:
http://127.0.0.1:5173 - MinIO API:
http://127.0.0.1:9100 - MinIO console:
http://127.0.0.1:9101
- Prepare env file:
cp .env.prod.example .env.prodDefaults are already set for host 10.10.13.9.
- Start the production stack:
docker compose -f docker-compose.prod.yml --env-file .env.prod up -d --buildThe prod compose stack includes one-shot init jobs:
- DB migrations (
db-migrate) - registry import (
db-import-registries)
That import includes config/registry.prod.toml with registryId=prod.
- Check status:
docker compose -f docker-compose.prod.yml --env-file .env.prod psOptional wrapper script:
bash ./scripts/prod/start-stack.sh start
bash ./scripts/prod/start-stack.sh status
bash ./scripts/prod/start-stack.sh logsOps now exposes node bootstrap in the Node Workspace control panel.
- Open Ops:
http://10.10.13.9:8792/ops/ - Go to
Fleet-> select a node ->Control App/Web - In
Bootstrap Node Runtime, set:
Lookup Control API URL:http://10.10.13.9:8795Node Control API URL:http://10.10.13.9:8795Guide Base URL:http://10.10.13.9:5173Namespace:prodRegistry ID:prod
- Keep
Endpoints onlyenabled for retargeting without redeploy, then clickBootstrap Node.
The panel shows command, stdout, stderr, and exit code.
bash ./scripts/pis/bootstrap-node-runtime.sh <node-id> \
--control-api-url http://10.10.13.9:8795 \
--node-control-api-url http://10.10.13.9:8795 \
--guide-base-url http://10.10.13.9:5173 \
--namespace prod \
--registry-id prod \
--endpoints-onlyProduction data is persisted in Docker volumes:
chiba_controller_prod_postgres_datachiba_controller_prod_minio_datachiba_controller_prod_share_root
This keeps control state, media assets, and shared runtime storage across restarts.