cyclo_manager CLI: pip-installable launcher for cyclo_manager server and UI containers. Run 'cyclo_manager up' to start Docker stack.
Project description
cyclo_manager CLI
cyclo-manager is a small pip-installable CLI that brings up the cyclo_manager stack using Docker Compose v2. It runs the packaged docker-compose.yml: starts the API and web UI, creates (but does not start) optional Zenoh and noVNC containers, and can self-update via PyPI.
The console script name is cyclo_manager (underscore).
Prerequisites
- Docker with Compose v2 (
docker compose, not only legacydocker-compose) - Python 3.10+
- For
cyclo_manager update:pip/pip3onPATH
Installation
Build and install a wheel (package name on PyPI / pyproject.toml is cyclo-manager):
python -m build --wheel
pip install dist/cyclo_manager-*.whl
If cyclo_manager is not found, add the user scripts directory to PATH:
export PATH="$HOME/.local/bin:$PATH"
After install, use the CLI by name:
cyclo_manager --help
cyclo_manager up
(If the script is still missing from PATH, you can run the same subcommands via python3 -m cyclo_manager_cli.cli, e.g. python3 -m cyclo_manager_cli.cli up.)
Commands
| Command | What it does |
|---|---|
cyclo_manager up |
docker compose up -d for cyclo_manager and ui; then docker compose create --no-recreate for rmw_zenoh and novnc-server so those containers exist but stay stopped |
cyclo_manager up -c /path/to/config.yml |
Same as up, but mounts this file into the API container as config. If the path does not exist, the CLI copies the bundled default config there first |
cyclo_manager up -r 35 |
Sets ROS_DOMAIN_ID for the stack (default: 30) |
cyclo_manager up --pull |
Runs docker compose pull before up/create |
cyclo_manager down |
docker compose down for the packaged compose file (stops/removes containers for that project) |
cyclo_manager update |
Runs cyclo_manager down, then pip install -U cyclo-manager, then cyclo_manager up again (optional -c, -r, --pull are forwarded to up) |
cyclo_manager --help |
Top-level help |
Implementation reference: cyclo_manager_cli/cli.py.
Compose services vs container names
| Compose service | Typical container name | up behavior |
|---|---|---|
cyclo_manager |
cyclo_manager |
Started |
ui |
cyclo_manager_ui |
Started |
rmw_zenoh |
zenoh_daemon |
Created only (start from Control UI or docker start zenoh_daemon) |
novnc-server |
novnc-server |
Created only (start when needed, e.g. docker start novnc-server) |
Environment passed into Compose
CYCLO_MANAGER_CONFIG_FILE: absolute path to the YAML config used on the host (default: bundledconfig/config.yml)ROS_DOMAIN_ID: from-r/--ros-domain-id(default 30)
cyclo_manager down always sets CYCLO_MANAGER_CONFIG_FILE to the bundled config path when invoking Compose (see cmd_down in cli.py).
Bundled config
Default file: cyclo_manager_cli/config/config.yml.
It lists managed containers and agent Unix socket paths (host paths mounted under /agents in the API container), for example:
ai_worker→/agents/ai_worker/s6_agent.sockphysical_ai_server→/agents/physical_ai_server/s6_agent.sock
Service names inside each container come from the agent, not from this file.
URLs (packaged compose, network_mode: host)
After cyclo_manager up:
| Service | URL |
|---|---|
| cyclo_manager API | http://127.0.0.1:8081 |
| OpenAPI docs | http://127.0.0.1:8081/docs |
| Web UI | http://127.0.0.1:3000 |
Images and tags are defined in docker/docker-compose.yml (e.g. robotis/cyclo-manager, robotis/cyclo-manager-ui).
Development from the repository root
To run against local images and mounts (not the pip-bundled compose), use the root compose and config — see the main project README and docker-compose.dev.yml.
Dependencies
The CLI package itself declares no Python dependencies (pyproject.toml); it shells out to docker compose and optionally pip.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cyclo_manager-0.1.0.dev2.tar.gz.
File metadata
- Download URL: cyclo_manager-0.1.0.dev2.tar.gz
- Upload date:
- Size: 5.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
861ae21aac3def6126369cfc8e845a4e5b0e26a15319e300400d20d90bc9d61c
|
|
| MD5 |
a4c6712cb671e59f5cfa6447ca09de4a
|
|
| BLAKE2b-256 |
b004fb10912a34eace0befb012d25aa131e0d45826e973a88f27b08dcc55c55d
|
File details
Details for the file cyclo_manager-0.1.0.dev2-py3-none-any.whl.
File metadata
- Download URL: cyclo_manager-0.1.0.dev2-py3-none-any.whl
- Upload date:
- Size: 6.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e0b3638afe45c607dbe60ed91229e7ed70d8fa43beb870cf1e4df3b4568124b6
|
|
| MD5 |
bdd43e6daedd099676d66a6be09db3a1
|
|
| BLAKE2b-256 |
1310b6b2941eeea8883490ca457481006884c9d3b589ebd248f5830b7ccc49c8
|