The owner's operating manual

Runbook / How to Use

How to use this documentation

  1. Start here — this page. It tells you what exists and what to type.
  2. System Audit — the machine's as-found state, before any of this work. If something surprises you, compare against the audit.
  3. Change Log — everything that was done, newest first, each entry with why and a revert procedure. This is the receipt page: if you want to undo or tweak anything, start there.
  4. Architecture / Models / Benchmarks — the design, the picks and their trade-offs, and the measured numbers with reproduction commands.
  5. Anything the setup work does from now on lands in the change log the same day. The site is rebuilt and redeployed on every update.

Getting in

ssh wg@frame-serv-2          # from any device on the tailnet (MagicDNS)
ssh [email protected]        # same node, by IP

An admin SSH key (from the operator's machine, dxverm@ashborn) is installed for wg. Your own password still works. wg has full sudo (wheel); the inference tree /srv/llm is owned by wg.

What's where

/srv/llm/src/llama.cpp/          production llama.cpp (vulkan/ + hip/ builds)
/srv/llm/src/llama.cpp-fp4/      pinned branch for Flash-Next FP4 (experimental)
/srv/llm/src/llama.cpp-glm/      GLM PR-branch build (experimental)
/srv/llm/models/                 model weights (2TB NVMe, ext4, "LLM-MODELS" label)
/srv/llm/bench/  ·  /srv/llm/logs/   benchmark scripts + raw run logs
/srv/llm/venv/                   python env with the hf CLI (model downloads)
/etc/sudoers.d/dan.bak-20260909-orig   original sudoers fragment (pre-fix)

Daily operations (serving is LIVE)

Agent integration: Hermes profile template + model ids + reachability matrix at Hermes Integration. Endpoint of record: http://frame-serv-2:8081/v1 (gateway — memory + tracing + persona; tailnet for the builder, LAN for the owner post-handback). Raw admin/benchmark lane: :8080/v1.

Adding a new model

export HF_HUB_ENABLE_HF_TRANSFER=1
/srv/llm/venv/bin/hf download / [file.gguf ...] \
  --local-dir /srv/llm/models/

Then register it in the llama-swap config (Architecture page) and reload.

Performance fix: CPU governor owner action — known defect

The CPU ships in powersave (cores pinned near 1.5 GHz), which measurably drags prefill and MTP-draft speed on the served models. One-shot fix (as wg, with your sudo password):

echo <sudo-password> | sudo -S bash -c 'for g in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do echo performance > $g; done'

To make it permanent across reboots, install a systemd unit once:

echo <sudo-password> | sudo -S tee /etc/systemd/system/cpu-performance.service >/dev/null <<'UNIT'
[Unit]
Description=Set CPU governor to performance
[Service]
Type=oneshot
ExecStart=/bin/bash -c 'for g in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do echo performance > $g; done'
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
UNIT
echo <sudo-password> | sudo -S systemctl daemon-reload
echo <sudo-password> | sudo -S systemctl enable --now cpu-performance.service
# verify:  cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor   → performance

Rollback: sudo systemctl disable --now cpu-performance.service (governor returns to the kernel default). Verify the gain with any chat completion and reading timings.predicted_per_second in the response.

If something breaks