fix: verstuemmelte MC_CMD_TEMPLATE abfangen (systemd-Quoting-Bug)

Eine unquotierte `Environment=MC_CMD_TEMPLATE=llama-server -m {model} ...`-Zeile
wird von systemd an Leerzeichen gesplittet -> nur "llama-server" kommt an. Dadurch
schrieb register/install nur "llama-server" ohne -m/-c in die config.yaml (coder/
vision/coder-fast blieben leer; nur scout war von provision.sh direkt gesetzt).

- config.py: fehlt {model} in MC_CMD_TEMPLATE -> sicherer Default
- mission-control.service: Environment-Wert gequotet + Warnhinweis

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Hitonabi
2026-06-21 18:42:22 +02:00
parent 45ab32955a
commit acc754b93e
2 changed files with 11 additions and 4 deletions
+8 -3
View File
@@ -20,11 +20,16 @@ MODELS_DIR = Path(os.environ.get("MC_MODELS_DIR", "/srv/models"))
# Befehl, der zum Starten eines Modells in die config.yaml geschrieben wird.
# {model} = Pfad zur GGUF-Datei, {ctx} = Kontextlaenge, ${PORT} bleibt fuer llama-swap stehen.
# WICHTIG: an deinen Container-/llama-server-Aufruf anpassen (siehe README).
CMD_TEMPLATE = os.environ.get(
"MC_CMD_TEMPLATE",
_DEFAULT_CMD_TEMPLATE = (
"llama-server -m {model} --host 127.0.0.1 --port ${PORT} "
"-c {ctx} -ngl 999 -fa 1 --no-mmap",
"-c {ctx} -ngl 999 -fa 1 --no-mmap"
)
CMD_TEMPLATE = os.environ.get("MC_CMD_TEMPLATE", _DEFAULT_CMD_TEMPLATE)
# Schutz: Eine unquotierte systemd `Environment=MC_CMD_TEMPLATE=...`-Zeile wird an
# Leerzeichen gesplittet und kommt als blosses "llama-server" an. Fehlt der {model}-
# Platzhalter, ist die Vorlage unbrauchbar -> sicheren Default verwenden.
if "{model}" not in CMD_TEMPLATE:
CMD_TEMPLATE = _DEFAULT_CMD_TEMPLATE
# Befehl fuer "Container/Toolbox aktualisieren". Standard: kyuz0 refresh-Skript.
UPDATE_CMD = os.environ.get("MC_UPDATE_CMD", "")
DEFAULT_TTL = int(os.environ.get("MC_DEFAULT_TTL", "300"))
+3 -1
View File
@@ -13,7 +13,9 @@ Environment=MC_CONFIG_PATH=/etc/llama-swap/config.yaml
Environment=MC_MODELS_DIR=/srv/models
Environment=MC_DEFAULT_TTL=300
# Befehl zum Starten eines Modells (in config.yaml geschrieben). ${PORT} bleibt stehen!
Environment=MC_CMD_TEMPLATE=llama-server -m {model} --host 127.0.0.1 --port ${PORT} -c {ctx} -ngl 999 -fa 1 --no-mmap
# WICHTIG: Wert MUSS gequotet sein — sonst splittet systemd an Leerzeichen und es kommt
# nur "llama-server" an (Mission Control faengt das zur Sicherheit auch im Code ab).
Environment="MC_CMD_TEMPLATE=llama-server -m {model} --host 127.0.0.1 --port ${PORT} -c {ctx} -ngl 999 -fa 1 --no-mmap"
# Update-Befehl (z.B. kyuz0 refresh oder podman pull):
Environment=MC_UPDATE_CMD=/opt/amd-strix-halo-toolboxes/refresh-toolboxes.sh all
# Optionales Token fuer minimale Absicherung im LAN: