Spaces:
Sleeping
Sleeping
| # ============================================================================= | |
| # SignFlow - Fly.io Deployment Script | |
| # ============================================================================= | |
| set -e | |
| APP_NAME="${1:-signflow-$(whoami | tr '[:upper:]' '[:lower:]' | tr -cd 'a-z0-9')}" | |
| echo "π SignFlow Fly.io Deployment" | |
| echo "==============================" | |
| echo "" | |
| # Check if fly CLI is installed | |
| if ! command -v fly &> /dev/null; then | |
| echo "π¦ Installing Fly CLI..." | |
| curl -L https://fly.io/install.sh | sh | |
| export PATH="$HOME/.fly/bin:$PATH" | |
| fi | |
| # Check if logged in | |
| if ! fly auth whoami &> /dev/null; then | |
| echo "π Please log in to Fly.io..." | |
| fly auth login | |
| fi | |
| echo "" | |
| echo "App name: $APP_NAME" | |
| echo "" | |
| # Update fly.toml with app name | |
| sed -i.bak "s/^app = .*/app = \"$APP_NAME\"/" fly.toml && rm -f fly.toml.bak | |
| # Launch app (creates app if doesn't exist) | |
| if ! fly apps list | grep -q "$APP_NAME"; then | |
| echo "π± Creating Fly.io app..." | |
| fly launch --name "$APP_NAME" --no-deploy --copy-config | |
| fi | |
| # Prompt for Hugging Face URL | |
| echo "" | |
| echo "ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ" | |
| echo "π€ STEP 1: Upload your model to Hugging Face" | |
| echo "ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ" | |
| echo "" | |
| echo "1. Go to https://huggingface.co/new" | |
| echo "2. Create a new model repository (e.g., 'signflow-model')" | |
| echo "3. Upload your best_model.pth file" | |
| echo "4. Copy the direct download URL:" | |
| echo " https://huggingface.co/YOUR_USERNAME/YOUR_REPO/resolve/main/best_model.pth" | |
| echo "" | |
| read -p "Paste your Hugging Face model URL: " HF_URL | |
| if [ -z "$HF_URL" ]; then | |
| echo "β No URL provided. Exiting." | |
| exit 1 | |
| fi | |
| # Set the secret | |
| echo "" | |
| echo "π Setting model URL secret..." | |
| fly secrets set HF_MODEL_URL="$HF_URL" --app "$APP_NAME" | |
| # Optional: gloss map | |
| echo "" | |
| read -p "Do you have a custom gloss_map.csv on Hugging Face? (y/N): " HAS_GLOSS | |
| if [[ "$HAS_GLOSS" =~ ^[Yy]$ ]]; then | |
| read -p "Paste gloss_map.csv URL: " GLOSS_URL | |
| fly secrets set HF_GLOSS_URL="$GLOSS_URL" --app "$APP_NAME" | |
| fi | |
| # Deploy | |
| echo "" | |
| echo "ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ" | |
| echo "π STEP 2: Deploying to Fly.io" | |
| echo "ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ" | |
| echo "" | |
| fly deploy --app "$APP_NAME" | |
| echo "" | |
| echo "ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ" | |
| echo "β DEPLOYMENT COMPLETE!" | |
| echo "ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ" | |
| echo "" | |
| echo "π Your app is live at: https://$APP_NAME.fly.dev" | |
| echo "" | |
| echo "π Monitor: fly logs --app $APP_NAME" | |
| echo "π§ Console: fly ssh console --app $APP_NAME" | |
| echo "π Status: fly status --app $APP_NAME" | |
| echo "" | |