Spaces:
Running
Running
| 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 | |