Self-hosted container

Configuration

Volumes, environment variables and launch modes for cf-bundle.

Launch modes

The container entrypoint has three modes:

  1. No arguments: runs the doctor. Diagnoses the host and exits.
  2. CF_CONTEXT_KEY set: serves the recipe named by the context key. The normal path.
  3. Arguments after the image name: full override; bypasses the recipe and passes your arguments to the runtime directly.

Volumes

MountPurpose
<license file>:/etc/carbonforge/license.key:roLicense (alternative: CARBONFORGE_LICENSE_KEY env)
hf-cache:/root/.cache/huggingfaceModel weights cache; persists across restarts
carbonforge-logs:/var/log/carbonforgeRuntime and engine logs, trace files

Environment variables

VariableRequiredEffect
CF_CONTEXT_KEYFor servingRecipe to serve; unset runs the doctor
CARBONFORGE_LICENSE_KEYFor premium recipesLicense key value (instead of the file mount)
HF_TOKENGated models onlyHugging Face auth for weight download
CF_DRY_RUNNoObserve-only mode; no control actions
CF_MAX_MODEL_LENNoOverride the recipe's context length
CF_GPU_MEMORY_UTILIZATIONNoOverride the recipe's GPU memory fraction
CF_VLLM_EXTRA_ARGSNoExtra vLLM flags, space-separated

Overrides depart from the benchmark. Every CF_* override makes the container serve a configuration different from the one the recipe was benchmarked on. Performance and energy numbers no longer apply.

Ports

PortWhat
8000OpenAI-compatible API
9105Prometheus metrics, only with --metrics (off by default)

Concurrency

The engine enforces a hard ceiling on concurrent sequences (--max-num-seqs, recipe-dependent). A gateway in front of the container will happily accept more; the excess queues inside the engine and shows up as tail latency. Size your client concurrency to the recipe.