How-to guides
Use a local model server
Serve Qwen2.5-Coder 7B, or any model, with ollama, LM Studio, vLLM or llama.cpp so the task containers can reach it.
Serve the free boards' model, Qwen2.5-Coder 7B, with any OpenAI-compatible server that meets three conditions:
It answers under the exact name in the spec,
qwen2.5-coder:7b. Under any other name, every trial ends withModelNotFoundError.The task containers reach it at
host.docker.internal(Docker Desktop) or172.17.0.1(Linux). The free boards' allowlist blocks every other address while the agent works.It answers at
http://<address>:<port>/v1.
The site reads the model name each trial recorded, and can't see which model answered under it. Serve the model the name says.
ollama on a Mac
Pull the model:
Start the ollama app, or run
ollama serve. Its default address works with Docker Desktop.Check that a container can reach it:
Use host.docker.internal:11434 as the model server address.
ollama on Linux
ollama listens on 127.0.0.1 by default, which containers can't reach. Bind it to Docker's bridge address:
If ollama's installer set it up as a service, that service already holds port 11434. Set the address in the service instead:
Add these lines, save, and restart the service:
ollama starts after Docker because the bridge address exists only while Docker runs. From then on, the ollama command needs OLLAMA_HOST=172.17.0.1:11434 too, as above. Use 172.17.0.1:11434 as the model server address.
Check from a container's network
hbench puts each trial on a Docker network of its own, so check from one:
The output must list qwen2.5-coder:7b. If the command hangs, a firewall is probably dropping traffic from Docker's networks. With ufw, allow them:
If Docker gives your networks addresses in 192.168.0.0/16, allow that range too. Rootless Docker has no 172.17.0.1, so use Docker's usual daemon. With Docker Desktop for Linux, choose the Docker Desktop option under Where Docker runs.
LM Studio
Load the model under the spec's name with LM Studio's lms command, in ~/.lmstudio/bin:
<model-key> is the Qwen2.5-Coder 7B Instruct model you downloaded; lms ls lists them. On Linux, add --bind 172.17.0.1 to lms server start. The address is host.docker.internal:1234 on Docker Desktop and 172.17.0.1:1234 on Linux. /v1/models lists every downloaded model, so run lms ps to check that qwen2.5-coder:7b is the one loaded.
Other servers
Serve the model as qwen2.5-coder:7b on an address the containers can reach:
| Server | Name and address |
|---|---|
| vLLM | --served-model-name qwen2.5-coder:7b --host 172.17.0.1 |
llama.cpp's llama-server | --alias qwen2.5-coder:7b --host 172.17.0.1 |
| A server in a container | Publish its port on the bridge address, such as -p 172.17.0.1:8000:8000 |
On Docker Desktop, listen on 127.0.0.1 or 0.0.0.0 instead, and use host.docker.internal.
Settings that change the score
The site doesn't check how you serve the model, but two settings change how well an agent does:
Context length. Qwen2.5-Coder 7B takes 32,768 tokens, and ollama picks a smaller default on most machines, which cuts off long conversations. Set
OLLAMA_CONTEXT_LENGTH=32768, or-c 32768onlms load.Requests at once. The free boards run two trials at a time. A server that answers one request at a time makes trials wait and time out. Set
OLLAMA_NUM_PARALLEL=2, or--parallel 2onlms load.
Serve another model
Any model your server serves can go on a board of its own. Point the agent at the server with OPENAI_BASE_URL and name the model as openai/<name>. On Docker Desktop:
On Linux, use http://172.17.0.1:11434/v1. This plain hbench run enforces no allowlist, so any address works and the job goes on a board labelled open network; Network: allowlist or open explains the difference. The board's model is the name the trials recorded, here openai/qwen2.5-coder:14b.
Reviewed on October 24, 2026.