#!/bin/bash # Production Deployment Script for LittleShop with Bot Activity Tracking # Run this script on the production server after SSHing in set -e echo "================================================" echo "🚀 LittleShop Production Deployment" echo "================================================" echo "" # Colors for output GREEN='\033[0;32m' YELLOW='\033[1;33m' RED='\033[0;31m' NC='\033[0m' # No Color # Navigate to project directory cd /root/LittleShop || { echo -e "${RED}Error: Project directory not found${NC}"; exit 1; } echo -e "${YELLOW}Step 1: Pulling latest code from Git...${NC}" git pull origin main || { echo -e "${RED}Error: Failed to pull from Git${NC}"; exit 1; } echo -e "${GREEN}✓ Code updated successfully${NC}" echo "" echo -e "${YELLOW}Step 2: Backing up current database...${NC}" if [ -f "littleshop.db" ]; then cp littleshop.db "backups/littleshop_$(date +%Y%m%d_%H%M%S).db" echo -e "${GREEN}✓ Database backed up${NC}" else echo -e "${YELLOW}No database file found, skipping backup${NC}" fi echo "" echo -e "${YELLOW}Step 3: Building Docker images...${NC}" echo "Building LittleShop..." docker-compose build littleshop --no-cache || { echo -e "${RED}Error: Failed to build LittleShop${NC}"; exit 1; } echo -e "${GREEN}✓ LittleShop built successfully${NC}" echo "Building TeleBot..." docker-compose build telebot --no-cache || { echo -e "${RED}Error: Failed to build TeleBot${NC}"; exit 1; } echo -e "${GREEN}✓ TeleBot built successfully${NC}" echo "" echo -e "${YELLOW}Step 4: Stopping current services...${NC}" docker-compose down echo -e "${GREEN}✓ Services stopped${NC}" echo "" echo -e "${YELLOW}Step 5: Starting updated services...${NC}" docker-compose up -d echo -e "${GREEN}✓ Services started${NC}" echo "" echo -e "${YELLOW}Step 6: Waiting for services to be ready...${NC}" sleep 10 echo -e "${YELLOW}Step 7: Verifying deployment...${NC}" echo "" # Check if LittleShop is running if docker ps | grep -q littleshop; then echo -e "${GREEN}✓ LittleShop container is running${NC}" # Check health endpoint if curl -s -f http://localhost:8080/health > /dev/null 2>&1; then echo -e "${GREEN}✓ LittleShop API is responding${NC}" else echo -e "${YELLOW}⚠ LittleShop API health check failed (may still be starting)${NC}" fi else echo -e "${RED}✗ LittleShop container is not running${NC}" fi # Check if TeleBot is running if docker ps | grep -q telebot; then echo -e "${GREEN}✓ TeleBot container is running${NC}" else echo -e "${RED}✗ TeleBot container is not running${NC}" fi # Check if SilverPay is running if docker ps | grep -q silverpay; then echo -e "${GREEN}✓ SilverPay container is running${NC}" else echo -e "${YELLOW}⚠ SilverPay container is not running${NC}" fi echo "" echo -e "${YELLOW}Step 8: Displaying container logs...${NC}" echo "" echo "=== Recent LittleShop logs ===" docker logs --tail 20 littleshop-admin 2>&1 || true echo "" echo "=== Recent TeleBot logs ===" docker logs --tail 20 telebot 2>&1 || true echo "" echo "================================================" echo -e "${GREEN}🎉 DEPLOYMENT COMPLETE!${NC}" echo "================================================" echo "" echo "New Features Deployed:" echo "✅ Bot Activity Tracking System" echo "✅ Live Dashboard for Real-time Monitoring" echo "✅ Product Variants Support" echo "✅ Enhanced Multi-buy Options" echo "" echo "Access Points:" echo "📊 Live Dashboard: https://admin.thebankofdebbie.giize.com/Admin/BotActivity/Live" echo "🛒 Admin Panel: https://admin.thebankofdebbie.giize.com/Admin" echo "🤖 TeleBot: Search @LittleShopBot on Telegram" echo "" echo "To monitor activity tracking:" echo "1. Open TeleBot and browse some products" echo "2. Visit the Live Dashboard URL above" echo "3. You should see real-time activity data" echo "" echo -e "${YELLOW}Note: If services are not running, check logs with:${NC}" echo " docker logs littleshop-admin" echo " docker logs telebot" echo " docker-compose ps"