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(writesapi_key)--scouter-api-key(writesscouter_ingest_api_key)--scouter-collector-instance(writesscouter_collector_instance; alias:--scouter-colector-instance)
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.ymlconfigs/Qwen06B-cu129-TP1.ymlconfigs/Qwen06B-cu130-TP1.ymlconfigs/Qwen30B-A3B-cu126-TP1.ymlconfigs/Qwen30B-A3B-cu129-TP1.ymlconfigs/Qwen30B-A3B-cu129-TP2.ymlconfigs/Qwen30B-A3B-cu130-TP2.ymlconfigs/Qwen235-A22B-cu129-TP2.ymlconfigs/Qwen235-A22B-cu129-TP4.ymlconfigs/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 onwardsimage tag fromonwards_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.yamlpublishes stamped config files (*.yml) as release assets.release-assets.yamlalso publishesconfigs-index.txt, which powersshenron get.python-release.yamlbuilds/publishes theshenronpackage to PyPI on release tags.- Docker image build/push via Depot remains in
ci.yamland still triggers whendocker/Dockerfile.cu*orVERSIONchanges.
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
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 shenron-0.10.1.tar.gz.
File metadata
- Download URL: shenron-0.10.1.tar.gz
- Upload date:
- Size: 33.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed4f61da67fbc5a75ee71daf020ea4d39e4c5c063b6a7edd1cf9d2a6729493d5
|
|
| MD5 |
a64ea95fbf7b71f4f5ca98404adfb548
|
|
| BLAKE2b-256 |
d8b47546509d5053719154e1ffb45fc710d583c38f5cb895d26279d2a15d8cac
|
Provenance
The following attestation bundles were made for shenron-0.10.1.tar.gz:
Publisher:
python-release.yaml on doublewordai/shenron
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
shenron-0.10.1.tar.gz -
Subject digest:
ed4f61da67fbc5a75ee71daf020ea4d39e4c5c063b6a7edd1cf9d2a6729493d5 - Sigstore transparency entry: 956266970
- Sigstore integration time:
-
Permalink:
doublewordai/shenron@0321932984b71f99765be7f75347ec4954798438 -
Branch / Tag:
refs/tags/v0.10.1 - Owner: https://github.com/doublewordai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-release.yaml@0321932984b71f99765be7f75347ec4954798438 -
Trigger Event:
release
-
Statement type:
File details
Details for the file shenron-0.10.1-cp311-cp311-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: shenron-0.10.1-cp311-cp311-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 428.2 kB
- Tags: CPython 3.11, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0299d26022a61d72a148097680451d423cdb7a2845ac9c58b70d69b3fc10e0dd
|
|
| MD5 |
24f8db2918276e025066a3b21b79c389
|
|
| BLAKE2b-256 |
79d2e6471bfc333ac4ec214cf5948e238b260df23476aa8da0b65dc2dfeb61b8
|
Provenance
The following attestation bundles were made for shenron-0.10.1-cp311-cp311-manylinux_2_34_x86_64.whl:
Publisher:
python-release.yaml on doublewordai/shenron
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
shenron-0.10.1-cp311-cp311-manylinux_2_34_x86_64.whl -
Subject digest:
0299d26022a61d72a148097680451d423cdb7a2845ac9c58b70d69b3fc10e0dd - Sigstore transparency entry: 956266972
- Sigstore integration time:
-
Permalink:
doublewordai/shenron@0321932984b71f99765be7f75347ec4954798438 -
Branch / Tag:
refs/tags/v0.10.1 - Owner: https://github.com/doublewordai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-release.yaml@0321932984b71f99765be7f75347ec4954798438 -
Trigger Event:
release
-
Statement type: