Docker setup

LlamaNexus ships only as prebuilt images on Docker Hub - there's no source build to run yourself. It runs in Docker alongside llama-server (GPU-enabled) and Open WebUI.

Image tags

Tags follow <gpu-backend>[-<backend-version>]-<llamanexus-version|latest>:

GPU backend Tags
CUDA (Nvidia) cuda-13.0.0-latest, cuda-12.2.0-latest
ROCm (AMD) rocm-7.0-latest, rocm-6.4-latest
Vulkan (cross-vendor) vulkan-latest

Pick the tag matching your GPU driver/toolkit, or pin an exact version (e.g. cuda-13.0.0-0.1.21) instead of latest for reproducible upgrades.

Server

services:
  llamanexus:
    image: makershop/llamanexus:cuda-13.0.0-latest
    network_mode: host   # required for --discovery (see Distributed inference)
    command: serve --discovery --llamaport 8080 --port 11434 -- --jinja --context-shift # llama-server specific arguments after double dash
    environment:
      - HF_TOKEN=${HF_TOKEN:-}
      - LLAMANEXUS_CHAT_TIMEOUT_SECONDS=900
    volumes:
      - ./data/huggingface:/root/.cache/huggingface
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]

Worker

services:
  llamanexus-worker:
    image: makershop/llamanexus:cuda-13.0.0-latest
    network_mode: host
    command: worker --discovery
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]

Using a rocm-* or vulkan-latest tag instead? Drop the Nvidia deploy.resources block above and pass through the right device nodes instead - --device=/dev/kfd --device=/dev/dri for ROCm, --device=/dev/dri for Vulkan.

See Distributed inference for --discovery/--rpc details and the network_mode: host requirement.

Volumes

Mount a persistent volume at ~/.cache/huggingface inside the container - it holds the Hugging Face cache (downloaded GGUF files) and router.preset.ini (per-model context-size overrides).