#!/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 "$@"