| |
| FROM ghcr.io/ggml-org/llama.cpp:server |
|
|
| LABEL maintainer="your-name <your-email@example.com>" |
| LABEL description="CoPaw + llama-server with Caddy proxy (no code modification)" |
|
|
| |
| ENTRYPOINT [] |
|
|
| ENV PYTHONUNBUFFERED=1 \ |
| PORT=7860 \ |
| COPAW_WORKING_DIR=/app/working \ |
| COPAW_SECRETS_DIR=/app/working.secret \ |
| COPAW_ACCEPT_SECURITY_NOTICE=yes \ |
| LLAMA_SERVER_PORT=8080 \ |
| COPAW_PORT=7861 \ |
| MODEL_PATH=/models/Qwen3.5-4B-Q4_K_M.gguf |
|
|
| |
| RUN apt-get update && apt-get install -y --no-install-recommends \ |
| python3 \ |
| python3-pip \ |
| python3-venv \ |
| curl \ |
| jq \ |
| ca-certificates \ |
| && rm -rf /var/lib/apt/lists/* |
|
|
|
|
|
|
| |
| RUN pip3 install --no-cache-dir --upgrade pip && \ |
| pip3 install --no-cache-dir copaw uvicorn fastapi && \ |
| pip3 install 'websockets<14.0' |
|
|
| |
| RUN mkdir -p ${COPAW_WORKING_DIR} ${COPAW_SECRETS_DIR} /models |
|
|
| |
| RUN curl -L -o /models/Qwen3.5-4B-Q4_K_M.gguf \ |
| https://huggingface.co/lmstudio-community/Qwen3.5-4B-GGUF/resolve/main/Qwen3.5-4B-Q4_K_M.gguf |
|
|
| |
| RUN echo "yes" | copaw init --defaults |
|
|
| |
| RUN CONFIG_PATH="${HOME}/.copaw/config.json" && \ |
| jq '.models.local_llama = {"provider":"openai","base_url":"/llama","api_key":"none","model_name":"qwen3.5-4b"}' ${CONFIG_PATH} > ${CONFIG_PATH}.tmp && \ |
| mv ${CONFIG_PATH}.tmp ${CONFIG_PATH} && \ |
| jq '.model.default = "local_llama"' ${CONFIG_PATH} > ${CONFIG_PATH}.tmp && \ |
| mv ${CONFIG_PATH}.tmp ${CONFIG_PATH} |
|
|
| |
| |
| |
| RUN apt-get update && apt-get install -y --no-install-recommends gnupg |
| |
| RUN curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg && \ |
| curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | tee /etc/apt/sources.list.d/caddy-stable.list && \ |
| apt-get update && apt-get install -y caddy && \ |
| rm -rf /var/lib/apt/lists/* |
| |
| COPY Caddyfile /etc/caddy/Caddyfile |
|
|
| EXPOSE 7860 |
|
|
| |
| CMD sh -c "llama-server --model ${MODEL_PATH} --host 127.0.0.1 --port 8080 --ctx-size 4096 --n-gpu-layers 0 > /tmp/llama.log 2>&1 & \ |
| copaw app --host 127.0.0.1 --port 7861 & \ |
| caddy run --config /etc/caddy/Caddyfile --adapter caddyfile" |