Lightweight control plane for llama.cpp: source builds, models.ini presets & GGUF model management.
724
š Source Code & Issue Tracker: github.com/vm75/llama-controllerā
A lightweight, containerized control plane for llama.cppā . llama-controller provides a clean single-page interface to compile llama.cpp from source, download and manage GGUF models, configure native models.ini serving presets, and control the llama-server inference process lifecycle.
llama.cpp from source directly from the web UI with support for CPU, OpenBLAS, CUDA, ROCm, and Vulkan build presets and automatic apt-get package management.data/models.ini. Define inherited global parameters ([*]) and per-model flags (n-gpu-layers, ctx-size, temp, etc.).llama) with full rootless Podman and Docker support.docker run -d \
--name llama-controller \
-p 5000:5000 \
-p 8080:8080 \
-v ./data:/home/llama/app/data:Z \
vm75/llama-controller:latest
Note for Podman users: Add
--userns=keep-idto preserve local file ownership:podman run -d \ --name llama-controller \ --userns=keep-id \ -p 5000:5000 \ -p 8080:8080 \ -v ./data:/home/llama/app/data:Z \ vm75/llama-controller:latest
Create a docker-compose.yml file:
services:
llama-controller:
image: vm75/llama-controller:latest
container_name: llama-controller
ports:
- "${LLAMA_CONTROLLER_PORT:-5000}:5000"
- "${LLAMA_SERVER_PORT:-8080}:8080"
environment:
- LLAMA_CONTROLLER_PORT=${LLAMA_CONTROLLER_PORT:-5000}
- LLAMA_SERVER_PORT=${LLAMA_SERVER_PORT:-8080}
- LLAMA_SERVER_URL=${LLAMA_SERVER_URL:-http://localhost:8080}
- LLAMA_CPP_REPO=${LLAMA_CPP_REPO:-https://github.com/ggml-org/llama.cpp.git}
- LLAMA_CPP_BRANCH=${LLAMA_CPP_BRANCH:-master}
volumes:
- ./data:/home/llama/app/data:Z
restart: unless-stopped
userns_mode: keep-id
Run:
docker compose up -d
# or with Podman
podman-compose up -d
Once running, access:
http://localhost:5000http://localhost:8080| Variable | Default | Description |
|---|---|---|
LLAMA_CONTROLLER_PORT | 5000 | Port for the control plane web UI |
LLAMA_SERVER_PORT | 8080 | Port for the llama-server OpenAI-compatible API |
LLAMA_SERVER_URL | http://localhost:8080 | Public URL link to llama-server displayed in the UI |
LLAMA_CPP_REPO | https://github.com/ggml-org/llama.cpp.git | llama.cpp Git repository URL |
LLAMA_CPP_BRANCH | master | Target llama.cpp branch to clone/build |
Mount host directory ./data to /home/llama/app/data:
data/
āāā config.json # Build presets and UI options
āāā models.ini # Native llama-server model serving presets
āāā models/ # Directory for GGUF model files
data/models/..gguf files directly into ./data/models/ on the host, then click Refresh Presets in the UI to create serving presets automatically.The image includes build tools (cmake, g++, git, python3-venv). You can select or customize build presets directly in the UI before building:
libopenblas-dev.nvidia-cuda-toolkit and NVIDIA container runtime.hipcc.libvulkan-dev.Distributed under the MIT Licenseā .
Content type
Image
Digest
sha256:afd05c323ā¦
Size
232 MB
Last updated
8 days ago
docker pull vm75/llama-controller