llm-ready-data / start.sh
Raw
History Blame Contribute Delete
1.74 kB
#!/usr/bin/env bash
set -euo pipefail
log() {
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*"
}
log "=== Starting up ==="
log "Python: $(python --version 2>&1)"
log "Working dir: $(pwd)"
# Ensure required directories exist
mkdir -p /app/data /app/logs
log "Data directories: OK"
# Check core deps
python -c "import markitdown, fastapi, httpx, pandas" 2>/dev/null
if [ $? -ne 0 ]; then
log "ERROR: Missing core dependencies"
python -c "import markitdown" 2>&1 | log
python -c "import fastapi" 2>&1 | log
python -c "import httpx" 2>&1 | log
python -c "import pandas" 2>&1 | log
exit 1
fi
log "Core dependencies: OK"
# Start SearXNG
export SEARXNG_SETTINGS_PATH="${SEARXNG_SETTINGS_PATH:-/app/searxng/settings.yml}"
log "SearXNG settings path: $SEARXNG_SETTINGS_PATH"
if [ -f "$SEARXNG_SETTINGS_PATH" ]; then
log "Starting SearXNG..."
searxng-run > /tmp/searxng.log 2>&1 &
SEARXNG_PID=$!
log "SearXNG PID: $SEARXNG_PID"
sleep 3
if kill -0 "$SEARXNG_PID" 2>/dev/null; then
log "SearXNG is running (PID: $SEARXNG_PID)"
else
log "WARNING: SearXNG process exited. Check /tmp/searxng.log"
cat /tmp/searxng.log 2>/dev/null | tail -10 | while IFS= read -r line; do log " searxng: $line"; done
fi
else
log "WARNING: SearXNG settings not found at $SEARXNG_SETTINGS_PATH, skipping SearXNG start"
fi
# Start main app
HOST="${HOST:-0.0.0.0}"
PORT="${PORT:-7860}"
WORKERS="${WORKERS:-1}"
LOG_LEVEL="${LOG_LEVEL:-info}"
log "Starting uvicorn: host=$HOST port=$PORT workers=$WORKERS log_level=$LOG_LEVEL"
exec python -m uvicorn app.api.server:app \
--host "$HOST" \
--port "$PORT" \
--workers "$WORKERS" \
--log-level "$LOG_LEVEL" \
--access-log