CoolFace
Apppublic

yashprmr/MeridianFinancial

sourceHugging Facemitupdated 4mo agoView on Hugging Face
0likes
deploy_dashboard.sh80 linesDownload Raw Back to scripts
1#!/usr/bin/env bash2# scripts/deploy_dashboard.sh3# ----------------------------4# Deploy the Meridian Financial Streamlit dashboard to HuggingFace Spaces.5#6# ACTIVE DEPLOYMENT TARGET: HuggingFace Spaces7# FUTURE/PLANNED TARGET:    AWS ECS / AppRunner (see docs/deployment.md)8#9# Usage:10#   HF_TOKEN=hf_xxx HF_DASH_SPACE=your-username/meridian-dashboard bash scripts/deploy_dashboard.sh11#12# Environment variables:13#   HF_TOKEN        — HuggingFace write token (required)14#   HF_DASH_SPACE   — HF Space repo ID, e.g. bottyash/meridian-dashboard15#   API_BASE_URL    — FastAPI backend URL to bake into the Space16#   COMMIT_MSG      — Optional custom commit message17 18set -euo pipefail19 20# ---------------------------------------------------------------------------21# Config22# ---------------------------------------------------------------------------23HF_TOKEN="${HF_TOKEN:-}"24HF_DASH_SPACE="${HF_DASH_SPACE:-bottyash/meridian-dashboard}"25API_BASE_URL="${API_BASE_URL:-https://bottyash-meridian-api.hf.space}"26COMMIT_MSG="${COMMIT_MSG:-Deploy dashboard from local}"27REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"28 29# ---------------------------------------------------------------------------30# Validation31# ---------------------------------------------------------------------------32if [[ -z "$HF_TOKEN" ]]; then33  echo "ERROR: HF_TOKEN environment variable is required."34  echo "  export HF_TOKEN=hf_your_token_here"35  exit 136fi37 38command -v python3 >/dev/null 2>&1 || { echo "ERROR: python3 not found"; exit 1; }39python3 -c "import huggingface_hub" 2>/dev/null || pip install huggingface_hub -q40 41# ---------------------------------------------------------------------------42# Deploy dashboard to HF Spaces43# ---------------------------------------------------------------------------44echo ""45echo "Deploying dashboard to HuggingFace Spaces: $HF_DASH_SPACE"46echo "API_BASE_URL = $API_BASE_URL"47 48python3 - << PYEOF49import os50from huggingface_hub import HfApi51 52api = HfApi(token=os.environ["HF_TOKEN"])53space_id = os.environ["HF_DASH_SPACE"]54commit_msg = os.environ.get("COMMIT_MSG", "Deploy dashboard")55 56# Upload entire dashboard/ folder57api.upload_folder(58    folder_path="dashboard",59    repo_id=space_id,60    repo_type="space",61    ignore_patterns=["*.pyc", "__pycache__", ".pytest_cache"],62    commit_message=commit_msg,63)64 65# Update the Space secret API_BASE_URL if provided66api_url = os.environ.get("API_BASE_URL", "")67if api_url:68    try:69        api.add_space_secret(repo_id=space_id, key="API_BASE_URL", value=api_url)70        print(f"Space secret API_BASE_URL set to: {api_url}")71    except Exception as e:72        print(f"Could not set API_BASE_URL secret: {e}")73 74print(f"Dashboard deployed: https://huggingface.co/spaces/{space_id}")75PYEOF76 77echo ""78echo "Done. Dashboard deployed to: https://huggingface.co/spaces/$HF_DASH_SPACE"79echo "API backend URL configured: $API_BASE_URL"80