feat(scripts): fold model downloads into update.sh, skip if already present

Today's embedding-server crash-loop (missing nomic-embed-text GGUF) was a
manual step nobody ran. update.sh now runs both downloader profiles
itself, every time, before bringing services up -- no separate command to
remember.

- docker-compose.yml: downloader/downloader-embedding commands gain a
  `test -f ... && skip || curl ...` guard, so re-running update.sh never
  re-downloads an existing model file.
- scripts/update.sh: runs both profiles after image pull/build, before
  service recreation.
- scripts/download-model.sh removed -- folded in, redundant standalone
  script.
- README.md / docs/memory-knowledgebase.md updated accordingly.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018WHfjWrSEcGhCoeu6dQfDa
This commit is contained in:
2026-09-02 23:07:53 +02:00
co-authored by Claude-Bot
parent fb7cfc9148
commit e2dd106f74
5 changed files with 17 additions and 17 deletions
-12
View File
@@ -1,12 +0,0 @@
#!/usr/bin/env bash
# Downloads the model GGUF straight into the `models` named volume via a
# one-off container — no huggingface-cli or host bind-mount needed.
#
# ponytail: hardcodes the one model this stack is built for (see the
# `downloader` service in docker-compose.yml for the actual URL/filename).
# Set LLAMA_MODEL_FILE in .env first if you're using a different quant.
set -euo pipefail
cd "$(dirname "$0")/.."
docker compose --profile tools run --rm downloader
echo "Model downloaded into the 'models' volume."
+4
View File
@@ -63,6 +63,10 @@ docker compose pull --ignore-buildable
echo "==> rebuilding local-build services"
docker compose build --pull
echo "==> ensuring models are downloaded (skips already-present files)"
docker compose --profile tools run --rm downloader
docker compose --profile tools run --rm downloader-embedding
echo "==> bringing up litellm (needed to mint virtual keys below)"
docker compose up -d --wait litellm-db litellm