Run your first managed model
July 11, 2026 ยท View on GitHub
Last modified: 2026-07-10
Install SBproxy, then run the pinned bootstrap model from the built-in catalog:
curl -fsSL https://download.sbproxy.dev | sh
sbproxy run qwen2.5-0.5b-instruct --variant q4_k_m
sbproxy run detects the worker, resolves the exact GGUF artifact, verifies its
size and SHA-256, provisions the matching llama.cpp engine, and warms the model.
It does not print a success banner while an engine is still downloading or
starting.
When the deployment reports ready, the output includes lines like these:
qwen2.5-0.5b-instruct is ready on http://127.0.0.1:8080
Admin: http://127.0.0.1:<generated-port>
Admin username: admin
Admin password: <generated-password>
export OPENAI_BASE_URL=http://127.0.0.1:8080/v1
export OPENAI_API_KEY=local
The generated admin password is high entropy and the admin listener binds to loopback. Keep that terminal output if you want to use lifecycle commands during the run.
Send a completion
curl http://127.0.0.1:8080/v1/chat/completions \
-H 'content-type: application/json' \
-d '{"model":"qwen2.5-0.5b-instruct","messages":[{"role":"user","content":"hello"}]}'
An OpenAI-compatible SDK can use the two exported variables from the ready
banner. OPENAI_API_KEY=local satisfies SDKs that require a nonempty value; it
is separate from the generated admin credential.
Inspect and stop the deployment
Copy the generated admin URL and password into environment variables:
export SB_ADMIN_URL=http://127.0.0.1:49123
export SB_ADMIN_USERNAME=admin
export SB_ADMIN_PASSWORD='paste-generated-password'
sbproxy models ps --format json
sbproxy models stop local --format json
models stop drains active requests, stops the engine process, and leaves the
verified artifact in cache. A later start reuses it.
Inspect without starting
--dry-run prints the generated canonical configuration and exits. It still
resolves the model against the actual worker, and it embeds a newly generated
admin credential in the printed file.
sbproxy run qwen2.5-0.5b-instruct \
--variant q4_k_m \
--port 8080 \
--admin-port 9090 \
--dry-run
Use sbproxy doctor and sbproxy models list for read-only host and catalog
inspection:
sbproxy doctor --format json
sbproxy models list --format json
sbproxy models show qwen2.5-0.5b-instruct --format json
Hardware status
The bootstrap GGUF supports CPU, Apple Metal, and CUDA catalog workers. This PR runs a real Apple Silicon request before publication. NVIDIA discovery, managed vLLM, and the CUDA llama.cpp build have deterministic coverage, while the live GCP NVIDIA and multi-node gate remains in the final integration PR.
If the selected artifact does not fit, the command exits before claiming the endpoint is ready. Use a smaller variant, free device memory, or configure a different worker.
Move to a managed config
sbproxy run is a single-deployment convenience command. Use
examples/model-host-managed when you need a
stable cache path, fixed admin port, queue limits, reload, or more than one
origin. model-host.md explains every field and the migration
from provider serve: blocks.