mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-11 17:26:57 +02:00
Le sélecteur de l'éditeur de modèle proposait encore « Précompilé » et « Compilé » — deux installations que Loki ne fait pas en conteneur : cliquer répondait « installez d'abord llama.cpp… ». Pire, le moteur de l'image ne correspondant à aucun des deux, il était classé « Personnalisé ». En conteneur, ces deux options laissent place à « Image » (sélectionnée par défaut, y compris pour un preset sans BIN) ; « Personnalisé » reste pour un binaire déposé dans /data/backends. Le moteur de l'image est désormais déclaré par l'image elle-même via LOKI_ENGINE_BIN (Dockerfile + entrypoint) au lieu d'être deviné d'après le chemin : /api/llamacpp expose provided et provided_bin. Attribution : sous le nom Loki, « fork de AJEAN » avec lien vers le dépôt d'origine. Vérifié dans l'image : provided=true, provided_bin=/app/llama-server, BIN semé identique ; build, vet et tests verts.
36 lines
1.4 KiB
Bash
36 lines
1.4 KiB
Bash
#!/bin/sh
|
|
# Entrypoint du conteneur Loki : sème la configuration au premier démarrage,
|
|
# lance le moteur (supervision PID, sans systemd), puis l'UI au premier plan.
|
|
set -eu
|
|
|
|
: "${LOKI_HOME:=/data}"
|
|
mkdir -p "$LOKI_HOME"
|
|
|
|
# Le chemin du moteur est imposé par l'image (llama-server précompilé de
|
|
# l'image officielle llama.cpp, dans /app) : on le (re)pose à chaque boot,
|
|
# une mise à jour de l'image ne doit pas laisser un BIN obsolète en base.
|
|
loki config set "BIN=${LOKI_ENGINE_BIN:-/app/llama-server}"
|
|
|
|
# Les autres clés ne sont semées QUE si absentes : ce que l'utilisateur règle
|
|
# ensuite dans l'UI (modèle, contexte…) est conservé d'un redémarrage à l'autre.
|
|
seed() { # seed CLÉ VALEUR
|
|
[ -n "$2" ] || return 0
|
|
cur=$(loki config get "$1")
|
|
[ -n "$cur" ] || loki config set "$1=$2"
|
|
}
|
|
seed HOST "${LOKI_ENGINE_HOST:-127.0.0.1}"
|
|
seed PORT "${LOKI_ENGINE_PORT:-8080}"
|
|
seed MODEL "${LOKI_MODEL:-}"
|
|
seed CTX "${LOKI_CTX:-}"
|
|
seed NGL "${LOKI_NGL:-}"
|
|
|
|
# Moteur : démarrage best-effort. Sans MODEL configuré, on laisse l'UI monter
|
|
# quand même — le moteur partira au premier modèle choisi/téléchargé dans l'UI.
|
|
if [ -n "$(loki config get MODEL)" ]; then
|
|
loki start || echo "[entrypoint] moteur non démarré (voir loki logs) — l'UI reste accessible"
|
|
else
|
|
echo "[entrypoint] aucun MODEL configuré — télécharge un modèle depuis l'UI pour démarrer le moteur"
|
|
fi
|
|
|
|
exec loki web "${LOKI_WEB_PORT:-8090}"
|