signflow2 / deploy.sh
LouisVasseur's picture
Deploy SignFlow
67e39e6
Raw
History Blame Contribute Delete
3.57 kB
#!/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 ""