Skip to main content

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 legacy docker-compose)
  • Python 3.10+
  • For cyclo_manager update: pip / pip3 on PATH

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. Always mounts the bundled config/config.yml (no custom -c path).
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 --pull is 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 bundled YAML on the host (config/config.yml). up and down both set this when invoking Compose.

ROS_DOMAIN_ID is not set by the CLI. Use each container’s ~/.bashrc (or image defaults) and restart containers so DDS matches your robots. For a custom config mount or host dev workflow, use the repository docker-compose.dev.yml instead of the pip CLI.

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.sock
  • physical_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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cyclo_manager-0.1.0.dev3.tar.gz (5.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cyclo_manager-0.1.0.dev3-py3-none-any.whl (6.6 kB view details)

Uploaded Python 3

File details

Details for the file cyclo_manager-0.1.0.dev3.tar.gz.

File metadata

  • Download URL: cyclo_manager-0.1.0.dev3.tar.gz
  • Upload date:
  • Size: 5.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for cyclo_manager-0.1.0.dev3.tar.gz
Algorithm Hash digest
SHA256 709aeeefc00d56747abb6e0dd5a6e0781f6167dee2b7ea9b028806251063d18f
MD5 defed12d0c185895c64a59913bd4f3f7
BLAKE2b-256 96d0a19eebd0aa23bb4456f5083175af3683276f33d6d3bf9efa22f25e67b422

See more details on using hashes here.

File details

Details for the file cyclo_manager-0.1.0.dev3-py3-none-any.whl.

File metadata

File hashes

Hashes for cyclo_manager-0.1.0.dev3-py3-none-any.whl
Algorithm Hash digest
SHA256 d9480987072a6d82aad900705045049fe66add36b318578f51ee2e29983bcec1
MD5 37e586509403b4c478ad58af89d4ce44
BLAKE2b-256 6f18265bf089d91ccc524f3a49748946b4d47e1e0e1cf1f7a4550879dd260807

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page