#!/bin/bash set -euo pipefail APP_DIR="${APP_DIR:-/home/user/app}" cd "$APP_DIR" export REDIS_ARGS="${REDIS_ARGS:---maxmemory 9gb --maxmemory-policy noeviction}" export FALKORDB_DATA_PATH="${FALKORDB_DATA_PATH:-/home/user/falkordb-data}" export FALKORDB_BIN_PATH="${FALKORDB_BIN_PATH:-/var/lib/falkordb/bin}" export FALKORDB_HOST="${FALKORDB_HOST:-localhost}" export FALKORDB_PORT="${FALKORDB_PORT:-6379}" export FALKORDB_GRAPH="${FALKORDB_GRAPH:-clinical_graph}" export PORT="${PORT:-7860}" export PYTHONPATH="${APP_DIR}${PYTHONPATH:+:$PYTHONPATH}" export REBUILD_GRAPH="${REBUILD_GRAPH:-1}" export FALKORDB_BULK_SOCKET_TIMEOUT_S="${FALKORDB_BULK_SOCKET_TIMEOUT_S:-0}" STAGING_DIR="${STAGING_DIR:-$APP_DIR/falkor_staging}" mkdir -p "$FALKORDB_DATA_PATH" echo "▶ Starting FalkorDB (redis-server + falkordb module) …" >&2 # shellcheck disable=SC2086 redis-server ${REDIS_ARGS} --protected-mode no \ --dir "${FALKORDB_DATA_PATH}" \ --loadmodule "${FALKORDB_BIN_PATH}/falkordb.so" ${FALKORDB_ARGS:-} \ --daemonize yes if [ "${SKIP_GRAPH_BUILD:-0}" = "1" ]; then echo "▶ SKIP_GRAPH_BUILD=1 — skipping graph load" >&2 else echo "▶ Loading graph from staging (REBUILD_GRAPH=${REBUILD_GRAPH}) …" >&2 REBUILD_FLAG=() if [ "$REBUILD_GRAPH" = "1" ]; then REBUILD_FLAG=(--rebuild) fi python3 -m falkor_load.build_falkor_graph \ --staging-dir "$STAGING_DIR" \ --falkor-host "$FALKORDB_HOST" \ --falkor-port "$FALKORDB_PORT" \ --falkor-graph "$FALKORDB_GRAPH" \ "${REBUILD_FLAG[@]}" fi echo "▶ Starting Dash app on 0.0.0.0:${PORT} …" >&2 exec python3 app.py