mohsin-devs Cursor commited on
Commit
10ee56c
Β·
1 Parent(s): 612435b

fix: HF startup crash from set -u on unset DATABASE_URL in start.sh

Browse files
Files changed (2) hide show
  1. README.md +1 -0
  2. hf/start.sh +7 -6
README.md CHANGED
@@ -4,6 +4,7 @@ emoji: 🏦
4
  colorFrom: blue
5
  colorTo: green
6
  sdk: docker
 
7
  pinned: true
8
  license: mit
9
  short_description: AI-Native Fintech Platform with Real-Time Streaming
 
4
  colorFrom: blue
5
  colorTo: green
6
  sdk: docker
7
+ app_port: 7860
8
  pinned: true
9
  license: mit
10
  short_description: AI-Native Fintech Platform with Real-Time Streaming
hf/start.sh CHANGED
@@ -3,7 +3,7 @@
3
  # BankBot AI β€” Hugging Face Spaces startup script
4
  # Runs: DB init β†’ optional seed β†’ supervisord (nginx + fastapi + nextjs)
5
  # ============================================================
6
- set -euo pipefail
7
 
8
  echo "============================================"
9
  echo " BankBot AI β€” Starting on Hugging Face"
@@ -15,9 +15,10 @@ export PYTHONUNBUFFERED=1
15
 
16
  # SQLite path inside the container (ephemeral but fine for HF demo)
17
  export SQLITE_PATH="${SQLITE_PATH:-/app/data/bankbot.db}"
 
18
 
19
  # If no DATABASE_URL set, force SQLite
20
- if [ -z "$DATABASE_URL" ]; then
21
  echo "[INFO] No DATABASE_URL set β€” using SQLite at $SQLITE_PATH"
22
  export USE_SQLITE=true
23
  export DATABASE_URL="sqlite:///$SQLITE_PATH"
@@ -29,12 +30,12 @@ export OPENAI_API_KEY="${OPENAI_API_KEY:-}"
29
  export REDIS_URL="${REDIS_URL:-}"
30
 
31
  # If no Redis, the app auto-falls back to in-memory cache
32
- if [ -z "$REDIS_URL" ]; then
33
  echo "[INFO] No REDIS_URL set β€” using in-memory cache"
34
  fi
35
 
36
  # JWT secret fallback (not secure for production, but keeps HF demo working)
37
- if [ -z "$JWT_SECRET_KEY" ]; then
38
  export JWT_SECRET_KEY="hf-demo-secret-$(date +%s)"
39
  echo "[WARN] JWT_SECRET_KEY not set β€” using ephemeral secret (set in HF Secrets for persistence)"
40
  fi
@@ -43,9 +44,9 @@ fi
43
  export BACKEND_CORS_ORIGINS='["http://localhost:7860","http://localhost:3000","https://*.hf.space","*"]'
44
 
45
  # ── Log which AI backend is active ───────────────────────────────────────────
46
- if [ -n "$OPENAI_API_KEY" ]; then
47
  echo "[INFO] AI backend: OpenAI (key detected)"
48
- elif [ -n "$GROQ_API_KEY" ]; then
49
  echo "[INFO] AI backend: Groq (key detected)"
50
  else
51
  echo "[WARN] No AI API key set β€” AI will use offline fallback. Set GROQ_API_KEY in HF Secrets for live AI."
 
3
  # BankBot AI β€” Hugging Face Spaces startup script
4
  # Runs: DB init β†’ optional seed β†’ supervisord (nginx + fastapi + nextjs)
5
  # ============================================================
6
+ set -e
7
 
8
  echo "============================================"
9
  echo " BankBot AI β€” Starting on Hugging Face"
 
15
 
16
  # SQLite path inside the container (ephemeral but fine for HF demo)
17
  export SQLITE_PATH="${SQLITE_PATH:-/app/data/bankbot.db}"
18
+ mkdir -p "$(dirname "$SQLITE_PATH")" 2>/dev/null || mkdir -p /app/data
19
 
20
  # If no DATABASE_URL set, force SQLite
21
+ if [ -z "${DATABASE_URL:-}" ]; then
22
  echo "[INFO] No DATABASE_URL set β€” using SQLite at $SQLITE_PATH"
23
  export USE_SQLITE=true
24
  export DATABASE_URL="sqlite:///$SQLITE_PATH"
 
30
  export REDIS_URL="${REDIS_URL:-}"
31
 
32
  # If no Redis, the app auto-falls back to in-memory cache
33
+ if [ -z "${REDIS_URL:-}" ]; then
34
  echo "[INFO] No REDIS_URL set β€” using in-memory cache"
35
  fi
36
 
37
  # JWT secret fallback (not secure for production, but keeps HF demo working)
38
+ if [ -z "${JWT_SECRET_KEY:-}" ]; then
39
  export JWT_SECRET_KEY="hf-demo-secret-$(date +%s)"
40
  echo "[WARN] JWT_SECRET_KEY not set β€” using ephemeral secret (set in HF Secrets for persistence)"
41
  fi
 
44
  export BACKEND_CORS_ORIGINS='["http://localhost:7860","http://localhost:3000","https://*.hf.space","*"]'
45
 
46
  # ── Log which AI backend is active ───────────────────────────────────────────
47
+ if [ -n "${OPENAI_API_KEY:-}" ]; then
48
  echo "[INFO] AI backend: OpenAI (key detected)"
49
+ elif [ -n "${GROQ_API_KEY:-}" ]; then
50
  echo "[INFO] AI backend: Groq (key detected)"
51
  else
52
  echo "[WARN] No AI API key set β€” AI will use offline fallback. Set GROQ_API_KEY in HF Secrets for live AI."