chitfund/deploy-full.sh

73 lines
1.7 KiB
Bash

#!/bin/bash
# LuckyChit Production Deployment Script
# Run this script as the luckychit user to update and redeploy
set -e # Exit on any error
echo "🚀 Starting LuckyChit Deployment..."
# Navigate to project root
cd /home/luckychit/apps/chitfund
# Save any uncommitted changes
echo "📦 Checking for local changes..."
if ! git diff-index --quiet HEAD --; then
echo "⚠️ Local changes detected. Stashing..."
git stash
fi
# Pull latest code
echo "📥 Pulling latest code..."
git pull origin prodnew # or 'main' depending on your branch
# ===== BACKEND DEPLOYMENT =====
echo ""
echo "🔧 Deploying Backend..."
cd backend
# Install dependencies
echo "📦 Installing backend dependencies..."
npm install
# Restart backend with zero downtime
echo "♻️ Restarting backend API..."
pm2 reload luckychit-api
# ===== FRONTEND DEPLOYMENT =====
echo ""
echo "🎨 Deploying Frontend..."
cd ../luckychit
# Get Flutter dependencies
echo "📦 Getting Flutter dependencies..."
flutter pub get
# Build for web
echo "🏗️ Building Flutter web app with cache-busting..."
# Add timestamp to force browser cache refresh
BUILD_NUMBER=$(date +%s)
flutter build web --release --web-renderer html --build-number=$BUILD_NUMBER
echo "📦 Build version: $BUILD_NUMBER"
# Restart frontend
echo "♻️ Restarting frontend..."
pm2 reload luckychit-frontend
# ===== VERIFICATION =====
echo ""
echo "✅ Deployment Complete!"
echo ""
echo "📊 PM2 Status:"
pm2 status
echo ""
echo "🔍 Quick Health Check:"
echo "Backend: curl http://localhost:3000/health"
echo "Frontend: curl http://localhost:8080"
echo ""
echo "📝 View logs:"
echo " pm2 logs luckychit-api --lines 50"
echo " pm2 logs luckychit-frontend --lines 50"