gabrielaltay commited on
Commit
c54281d
·
verified ·
1 Parent(s): b15d0f8

Upload start.sh with huggingface_hub

Browse files
Files changed (1) hide show
  1. start.sh +49 -0
start.sh ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env sh
2
+ set -eu
3
+
4
+
5
+ APP_HOST=${APP_HOST:-0.0.0.0}
6
+ APP_PORT=${APP_PORT:-7860}
7
+ CHROMA_HOST=${CHROMA_HOST:-127.0.0.1}
8
+ CHROMA_PORT=${CHROMA_PORT:-8001}
9
+ DATA_DIR=${CHROMA_DATA_DIR:-/home/user/app/data}
10
+ UVICORN_LOG_LEVEL=${UVICORN_LOG_LEVEL:-info}
11
+
12
+
13
+ echo "Runtime config:"
14
+ echo " APP_HOST=$APP_HOST"
15
+ echo " APP_PORT=$APP_PORT"
16
+ echo " CHROMA_HOST=$CHROMA_HOST"
17
+ echo " CHROMA_PORT=$CHROMA_PORT"
18
+ echo " DATA_DIR=$DATA_DIR"
19
+ echo " UVICORN_LOG_LEVEL=$UVICORN_LOG_LEVEL"
20
+
21
+
22
+ mkdir -p "$DATA_DIR"
23
+
24
+
25
+ echo "Starting ChromaDB on ${CHROMA_HOST}:${CHROMA_PORT} (data: $DATA_DIR)"
26
+ chroma run --host "$CHROMA_HOST" --port "$CHROMA_PORT" --path "$DATA_DIR" &
27
+ CHROMA_PID=$!
28
+
29
+
30
+ echo "Waiting for ChromaDB..."
31
+ python - <<'PY'
32
+ import os, socket, time, sys
33
+ h = os.environ.get('CHROMA_HOST','127.0.0.1')
34
+ p = int(os.environ.get('CHROMA_PORT','8001'))
35
+ for i in range(120):
36
+ try:
37
+ with socket.create_connection((h,p), timeout=0.5):
38
+ print(f"Chroma ready after {i*0.5:.1f}s")
39
+ sys.exit(0)
40
+ except OSError:
41
+ time.sleep(0.5)
42
+ print('Timeout waiting for Chroma', file=sys.stderr)
43
+ sys.exit(1)
44
+ PY
45
+
46
+ trap 'echo "Stopping..."; kill -TERM "$CHROMA_PID" 2>/dev/null || true; wait "$CHROMA_PID" 2>/dev/null || true' INT TERM
47
+
48
+ echo "Starting FastAPI on ${APP_HOST}:${APP_PORT}"
49
+ exec uvicorn app:app --host "$APP_HOST" --port "$APP_PORT" --log-level "$UVICORN_LOG_LEVEL" --access-log