Skip to main content

Generate Shenron docker-compose deployments from model config files

Project description

Shenron

Shenron now ships as a config-driven generator for production LLM docker-compose deployments.

shenron reads a model config YAML and generates:

  • docker-compose.yml
  • .generated/onwards_config.json
  • .generated/prometheus.yml
  • .generated/scouter_reporter.env
  • .generated/vllm_start.sh

Quick Start

uv pip install shenron
shenron get
docker compose up -d

shenron get reads a per-release config index asset, shows available configs with arrow-key selection, downloads the chosen config, and generates deployment artifacts in the current directory. Using --release latest also rewrites shenron_version in the downloaded config to latest. You can also override config values on download with:

  • --api-key (writes api_key)
  • --scouter-api-key (writes scouter_ingest_api_key)
  • --scouter-collector-instance (writes scouter_collector_instance; alias: --scouter-colector-instance)

By default, shenron get pulls release configs from doublewordai/shenron-configs.

shenron . still works and expects exactly one config YAML (*.yml or *.yaml) in the current directory, unless you pass a config file path directly.

Configs

Repo configs are stored in configs/.

Available starter configs:

  • configs/Qwen06B-cu126-TP1.yml
  • configs/Qwen06B-cu129-TP1.yml
  • configs/Qwen06B-cu130-TP1.yml
  • configs/Qwen30B-A3B-cu126-TP1.yml
  • configs/Qwen30B-A3B-cu129-TP1.yml
  • configs/Qwen30B-A3B-cu129-TP2.yml
  • configs/Qwen30B-A3B-cu130-TP2.yml
  • configs/Qwen235-A22B-cu129-TP2.yml
  • configs/Qwen235-A22B-cu129-TP4.yml
  • configs/Qwen235-A22B-cu130-TP2.yml

This file uses the same defaults that were previously hardcoded in docker/run_docker_compose.sh.

Generated Compose Behavior

docker-compose.yml is fully rendered from config values:

  • model image tag from shenron_version + cuda_version
  • onwards image tag from onwards_version
  • service ports from config
  • no ${SHENRON_VERSION} placeholders

Development

# Run tests (Rust + CLI + compose checks)
./scripts/ci.sh

# Install local package for manual testing
python3 -m pip install -e .

# Generate from repo config
shenron configs/Qwen06B-cu126-TP1.yml --output-dir /tmp/shenron-test

Release Automation

  • release-assets.yaml publishes stamped config files (*.yml) as release assets.
  • release-assets.yaml also publishes configs-index.txt, which powers shenron get.
  • release-assets.yaml mirrors *.yml + configs-index.txt into ${OWNER}/shenron-configs under the same tag as the main shenron release.
  • Set CONFIGS_REPO_TOKEN (or reuse RELEASE_PLEASE_TOKEN) with write access to the configs repo release assets; optional repo variable CONFIGS_REPO overrides the default target (${OWNER}/shenron-configs).
  • python-release.yaml builds/publishes the shenron package to PyPI on release tags.
  • Docker image build/push via Depot remains in ci.yaml and still triggers when docker/Dockerfile.cu* or VERSION changes.

License

MIT, see LICENSE.

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

shenron-0.11.1.tar.gz (34.3 kB view details)

Uploaded Source

Built Distribution

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

shenron-0.11.1-cp311-cp311-manylinux_2_34_x86_64.whl (428.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

File details

Details for the file shenron-0.11.1.tar.gz.

File metadata

  • Download URL: shenron-0.11.1.tar.gz
  • Upload date:
  • Size: 34.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for shenron-0.11.1.tar.gz
Algorithm Hash digest
SHA256 1a072e1675dbd9839d1e4962e6e8f7da3c259b3a6cc15bc8abf688fb05f8978d
MD5 4692d85b03b0e3c9110dddaa25097a2a
BLAKE2b-256 28d422c61ace103e376c2c2c21c6ab4ef42a24be83f56b206e785a62fac74bf0

See more details on using hashes here.

Provenance

The following attestation bundles were made for shenron-0.11.1.tar.gz:

Publisher: python-release.yaml on doublewordai/shenron

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shenron-0.11.1-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for shenron-0.11.1-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 dc6875a6eeea5c5819fae0b995b379fdd4c983147f7cd63d4084a7c37aacbd55
MD5 93a41e5f84cb50fb4093ab7afcb32885
BLAKE2b-256 baa686f7d065c0ed813fbd7b307fbd66633ac6676d9475d72cbf8d62e24b394c

See more details on using hashes here.

Provenance

The following attestation bundles were made for shenron-0.11.1-cp311-cp311-manylinux_2_34_x86_64.whl:

Publisher: python-release.yaml on doublewordai/shenron

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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