Files

37 lines
1.5 KiB
Bash
Executable File

#!/usr/bin/env bash
# run-stack.sh — avvia lo stack Compose locale di ThothII in primo piano.
#
# Il core include Pi; DWH e LLM restano endpoint esterni configurati in deploy/env/local.env.
# Qdrant e Ollama embedding sono servizi Compose privati. Non richiede un eseguibile Pi sull'host.
#
# Preparazione: cp deploy/env/local.env.example deploy/env/local.env e compilare i valori.
# Uso: ./scripts/run-stack.sh [argomenti aggiuntivi per docker compose up]
set -euo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd -P)"
LOCAL_ENV_FILE="${THT_LOCAL_ENV_FILE:-$ROOT/deploy/env/local.env}"
[[ -f "$LOCAL_ENV_FILE" ]] || {
echo "ERRORE: $LOCAL_ENV_FILE mancante. Copia deploy/env/local.env.example e configura gli endpoint." >&2
exit 1
}
compose_files=(-f "$ROOT/compose.yaml" -f "$ROOT/deploy/compose.local.yaml")
if [[ "${THOTH_ENABLE_EMBEDDING_GPU:-0}" == "1" ]]; then
compose_files+=(-f "$ROOT/deploy/compose.embedding-gpu.yaml")
fi
if [[ "${THOTH_ENABLE_SENSITIVITY_NER:-0}" == "1" ]]; then
compose_files+=(-f "$ROOT/deploy/compose.sensitivity-ner.yaml")
fi
compose=(docker compose --env-file "$LOCAL_ENV_FILE" "${compose_files[@]}")
# Migrations are an explicit one-shot operation, never hidden in backend startup. The local
# launcher runs that operation before bringing the foreground stack up so a fresh checkout is
# immediately usable while production operators can invoke the same service during rollout.
"${compose[@]}" build core
"${compose[@]}" up -d catalog-db
"${compose[@]}" run --rm catalog-migrate
exec "${compose[@]}" up --build "$@"