#!/bin/bash # ============================================================================= # 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 ""