#!/usr/bin/env bash set -euo pipefail HOST="${LIGHTRAG_HOST:-127.0.0.1}" ROOT="${LIGHTRAG_STORAGE_ROOT:-data/rag_storage}" GRAPHS="${LIGHTRAG_GRAPHS:-romania:9621}" API_PORT="${PORT:-${API_PORT:-8000}}" echo "🚀 LIGHTRAG_GRAPHS=${GRAPHS}" echo "📁 Storage root: ${ROOT}" PIDS=() trap 'kill -TERM ${PIDS[@]:-} 2>/dev/null || true; wait ${PIDS[@]:-} 2>/dev/null || true' EXIT INT TERM ENDPOINTS=() IFS=',' read -r -a items <<<"${GRAPHS}" for item in "${items[@]}"; do IFS=':' read -r id port <<<"${item}" dir="${ROOT}/${id}" mkdir -p "${dir}" echo "➡️ Start LightRAG '${id}' on ${HOST}:${port} (dir=${dir})" lightrag-server --host "${HOST}" --port "${port}" --working-dir "${dir}" & PIDS+=("$!") echo " ⏳ Waiting health..." for _ in {1..30}; do curl -fsS "http://${HOST}:${port}/health" >/dev/null 2>&1 && { echo " ✅ ${id} ready"; break; } sleep 2 done ENDPOINTS+=("${id}=http://${HOST}:${port}") done export LIGHTRAG_ENDPOINTS="$(IFS=,; echo "${ENDPOINTS[*]}")" export PORT="${API_PORT}" echo "✅ LIGHTRAG_ENDPOINTS=${LIGHTRAG_ENDPOINTS}" echo "🚀 Starting API on 0.0.0.0:${PORT} ..." python agent_api.py