Repository navigation
ollama, llama-cpp, vllm: add per-hardware compose overrides - #15
Conversation
Make each base docker-compose.yml hardware-neutral (CPU) and add overrides selected via COMPOSE_FILE in .env, following the comfyui layout: - nvidia.yml: NVIDIA discrete GPUs and DGX Spark (GPU reservation) - spark.yml: llama.cpp CUDA 13 build / vLLM community GB10 build - jetson.yml: Jetson Thor via the nvidia runtime - strix.yml: AMD Strix Halo / Strix Point (ollama ROCm, llama.cpp Vulkan, vLLM ROCm) - arc.yml: Intel Arc (ollama Vulkan, llama.cpp SYCL, vLLM XPU) Hosts whose .env lacks COMPOSE_FILE now run on the CPU; .env.example defaults to the NVIDIA line for ollama and vllm. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit e318533. Configure here.
| reservations: | ||
| devices: | ||
| - driver: nvidia | ||
| count: "${GPU_COUNT}" |
There was a problem hiding this comment.
Install path drops GPU overrides
High Severity
start_app invokes docker compose -f docker-compose.yml, which ignores COMPOSE_FILE from .env. GPU reservations now live only in the hardware overrides, so install-ai-satellite.sh and install-chaos.sh start ollama on CPU even when .env selects docker-compose.nvidia.yml. start_experiment already omits -f so those overrides are honored.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit e318533. Configure here.


Summary
Each base
docker-compose.ymlfor ollama, llama-cpp and vllm is now hardware-neutral (runs on CPU). Hardware overrides are chosen withCOMPOSE_FILEin.env, following the same layout asexperiments/comfyui.nvidia.yml)server-cudavllm-openai(CUDA 13)nvidia.ymlnvidia.yml+spark.yml(server-cuda13)nvidia.yml, optionally +spark.yml(spark-arena build)jetson.yml)runtime: nvidiaserver-cuda13+runtime: nvidiavllm-openai+runtime: nvidiastrix.yml)rocmimageserver-vulkanvllm-openai-rocmarc.yml)server-intel(SYCL)vllm-openai-xpuvllm-openai-cpu).env.exampleand the README for each app document everyCOMPOSE_FILEline and the per-backend variables.Behavior changes
docker-compose.nvidia.yml. A host whose.envdoesn't setCOMPOSE_FILEwill now run on the CPU..env.exampledefaults to the NVIDIA line for both.LLAMA_ARG_N_GPU_LAYERSto 999. An existingLLAMA_ARG_N_GPU_LAYERS=0in.envstill overrides that.Testing
docker compose configresolves for every hardware combination, with and without the NFS override..github/scripts/validate_compose.pyreports only the three!overrideerrors in the NFS files, which are already on main.🤖 Generated with Claude Code
Note
Medium Risk
Existing deployments that relied on NVIDIA settings baked into the base compose (without
COMPOSE_FILE) will silently fall back to CPU until.envis updated; vLLM’s default image change has the same effect.Overview
ollama, llama-cpp, and vllm now follow the same pattern as experiments/comfyui: each base
docker-compose.ymlis CPU-only, and you pick the stack viaCOMPOSE_FILEin.env. New override files cover NVIDIA (nvidia.yml), Jetson Thor (jetson.yml,runtime: nvidiainstead of GPU reservations), AMD Strix (strix.yml), Intel Arc (arc.yml), plus DGX Spark layers (spark.ymlfor llama-cpp/vllm). NFS snippets are documented as the last file in the chain (with a special ordering note for vLLM Arc).NVIDIA GPU
deploy.resourcesblocks move out of the ollama and vllm base compose files intodocker-compose.nvidia.yml, so a plaindocker compose upwithout the rightCOMPOSE_FILEruns on CPU. vllm’s default image switches from CUDAvllm-openaitovllm-openai-cpuuntilnvidia.yml(or another override) is selected.llama-cpp stops using a single
IMAGE_VERSIONtable for backend choice: each override sets its own default tag (server-cuda,server-vulkan,server-intel, etc.), GPU overrides defaultLLAMA_ARG_N_GPU_LAYERSto 999 (replacing -1 / base 0), and.env.example/ README are expanded for backend-specific env vars.Reviewed by Cursor Bugbot for commit e318533. Bugbot is set up for automated code reviews on this repo. Configure here.