#!/bin/bash # 销售官网更新部署脚本 # 包含:Hero、Pricing、SystemFeatures、Features等组件 # 使用方法:bash deploy-website-update.sh set -e echo "🚀 部署销售官网更新..." echo "" # 服务器信息 SERVER="root@45.249.208.118" SERVER_IP="45.249.208.118" REMOTE_DIR="/opt/flnxi-website" # 颜色定义 GREEN='\033[0;32m' BLUE='\033[0;34m' YELLOW='\033[1;33m' RED='\033[0;31m' NC='\033[0m' # 检查服务器连接 echo -e "${BLUE}检查服务器连接...${NC}" if ! ssh -o ConnectTimeout=5 $SERVER "echo '连接成功'" 2>/dev/null; then echo -e "${RED}❌ 无法连接到服务器 $SERVER_IP${NC}" echo "请检查:" echo "1. 服务器是否在线" echo "2. SSH密钥是否配置正确" echo "3. 网络连接是否正常" exit 1 fi echo -e "${GREEN}✅ 服务器连接成功${NC}" echo "" # 步骤1:打包更新文件 echo -e "${BLUE}步骤 1/6: 打包更新文件...${NC}" rm -f website-update.tar.gz # 打包所有更新的组件和页面 tar -czf website-update.tar.gz \ components/Hero.tsx \ components/Pricing.tsx \ components/Features.tsx \ components/SystemFeatures.tsx \ app/page.tsx \ package.json echo -e "${GREEN}✅ 文件打包完成${NC}" echo "打包内容:" echo " - components/Hero.tsx" echo " - components/Pricing.tsx" echo " - components/Features.tsx" echo " - components/SystemFeatures.tsx" echo " - app/page.tsx" echo " - package.json" echo "" # 步骤2:上传到服务器 echo -e "${BLUE}步骤 2/6: 上传到服务器...${NC}" scp -o StrictHostKeyChecking=no website-update.tar.gz $SERVER:$REMOTE_DIR/ echo -e "${GREEN}✅ 上传完成${NC}" echo "" # 步骤3:解压文件 echo -e "${BLUE}步骤 3/6: 解压更新文件...${NC}" ssh $SERVER << 'ENDSSH' cd /opt/flnxi-website echo "📦 解压文件..." tar -xzf website-update.tar.gz rm website-update.tar.gz echo "✅ 文件已更新" ENDSSH echo -e "${GREEN}✅ 解压完成${NC}" echo "" # 步骤4:重新构建Docker镜像 echo -e "${BLUE}步骤 4/6: 重新构建Docker镜像...${NC}" echo -e "${YELLOW}⏳ 这可能需要2-3分钟,请稍候...${NC}" ssh $SERVER << 'ENDSSH' cd /opt/flnxi-website echo "🐳 停止旧容器..." docker-compose down echo "🔨 构建新镜像..." docker-compose build --no-cache echo "✅ 镜像构建完成" ENDSSH echo -e "${GREEN}✅ Docker镜像已重新构建${NC}" echo "" # 步骤5:启动服务 echo -e "${BLUE}步骤 5/6: 启动服务...${NC}" ssh $SERVER << 'ENDSSH' cd /opt/flnxi-website echo "🚀 启动容器..." docker-compose up -d echo "⏳ 等待服务启动(30秒)..." sleep 30 echo "✅ 服务已启动" ENDSSH echo -e "${GREEN}✅ 服务已启动${NC}" echo "" # 步骤6:验证部署 echo -e "${BLUE}步骤 6/6: 验证部署...${NC}" # 检查容器状态 echo "检查容器状态..." ssh $SERVER "cd $REMOTE_DIR && docker-compose ps" # 检查网站响应 echo "" echo "检查网站响应..." RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" http://$SERVER_IP:3000 || echo "000") if [ "$RESPONSE" = "200" ]; then echo -e "${GREEN}✅ 网站响应正常 (HTTP $RESPONSE)${NC}" else echo -e "${YELLOW}⚠️ 网站响应异常 (HTTP $RESPONSE)${NC}" echo "请检查日志:ssh $SERVER 'cd $REMOTE_DIR && docker-compose logs --tail 50'" fi echo "" echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" echo -e "${GREEN}🎉 销售官网更新部署完成!${NC}" echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" echo "" echo -e "${YELLOW}📝 更新内容:${NC}" echo "" echo "✅ Hero首页组件" echo " - 推广期特惠价¥599" echo " - 免费版10人100素材" echo " - 远程部署服务¥299" echo "" echo "✅ Pricing价格组件" echo " - 三级版本:免费版、付费版、定制版" echo " - 远程部署服务卡片" echo " - 推广期特惠¥599(原价¥4,999)" echo "" echo "✅ SystemFeatures系统功能组件" echo " - 12大核心功能详解" echo " - 功能标签和徽章" echo " - 付费版功能标识" echo "" echo "✅ Features核心优势组件" echo " - 8大优势对比" echo " - 免费版vs付费版对比表" echo "" echo -e "${YELLOW}🌐 访问地址:${NC}" echo "http://$SERVER_IP:3000" echo "" echo -e "${YELLOW}🔍 查看日志:${NC}" echo "ssh $SERVER 'cd $REMOTE_DIR && docker-compose logs -f --tail 100'" echo "" echo -e "${YELLOW}📊 查看容器状态:${NC}" echo "ssh $SERVER 'cd $REMOTE_DIR && docker-compose ps'" echo "" # 清理本地临时文件 rm -f website-update.tar.gz echo -e "${GREEN}✨ 部署成功!${NC}" echo ""