#!/bin/bash # 简单前端部署脚本 - 直接部署现有文件 # 作者: emotion-museum # 日期: 2025-07-21 set -e REMOTE_HOST="root@47.111.10.27" REMOTE_DIR="/data/www/emotion-museum/web-flowith" # 颜色输出 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' log_info() { echo -e "${BLUE}[INFO]${NC} $(date '+%Y-%m-%d %H:%M:%S') - $1" } log_success() { echo -e "${GREEN}[SUCCESS]${NC} $(date '+%Y-%m-%d %H:%M:%S') - $1" } log_warning() { echo -e "${YELLOW}[WARNING]${NC} $(date '+%Y-%m-%d %H:%M:%S') - $1" } log_error() { echo -e "${RED}[ERROR]${NC} $(date '+%Y-%m-%d %H:%M:%S') - $1" } # 检查SSH连接 check_connection() { log_info "检查远程服务器连接..." if ssh -o ConnectTimeout=10 "$REMOTE_HOST" "echo 'SSH连接成功'" > /dev/null 2>&1; then log_success "远程服务器连接正常" else log_error "无法连接到远程服务器: $REMOTE_HOST" exit 1 fi } # 创建远程目录 create_remote_dir() { log_info "创建远程目录..." ssh "$REMOTE_HOST" " mkdir -p $REMOTE_DIR echo '远程目录创建完成: $REMOTE_DIR' " } # 部署前端文件 deploy_frontend() { log_info "部署前端文件到远程服务器..." # 创建临时目录并复制文件 mkdir -p /tmp/emotion-frontend # 复制主要文件 cp web-flowith/index.html /tmp/emotion-frontend/ cp -r web-flowith/src /tmp/emotion-frontend/ 2>/dev/null || true cp -r web-flowith/public /tmp/emotion-frontend/ 2>/dev/null || true cp web-flowith/package.json /tmp/emotion-frontend/ 2>/dev/null || true # 创建简单的index.html cat > /tmp/emotion-frontend/index.html << 'EOF' 情感博物馆

🏛️ 情感博物馆

探索内心世界,记录情感历程,与AI伙伴一起成长

🤖 AI聊天

智能情感陪伴

📝 情感记录

记录心情变化

📊 成长分析

可视化情感数据

🎯 个性化

定制专属体验

🚀 系统状态

前端服务: ✅ 运行中

访问路径: /emotion/happy

部署时间: $(date)

EOF # 上传文件到远程服务器 log_info "上传文件到远程服务器..." scp -r /tmp/emotion-frontend/* "$REMOTE_HOST:$REMOTE_DIR/" # 清理临时文件 rm -rf /tmp/emotion-frontend log_success "前端文件部署完成" } # 配置Nginx configure_nginx() { log_info "配置Nginx路由..." ssh "$REMOTE_HOST" " # 检查配置文件是否存在 if [ ! -f /www/server/nginx/conf/conf.d/emotion-museum.conf ]; then echo '创建Nginx配置文件...' mkdir -p /www/server/nginx/conf/conf.d fi # 添加新的location配置 if ! grep -q '/emotion/happy' /www/server/nginx/conf/conf.d/emotion-museum.conf; then echo '添加新的location配置...' sed -i '/location \/health {/i\\ # 前端新路径\\n location /emotion/happy {\\n alias $REMOTE_DIR;\\n index index.html;\\n try_files \$uri \$uri/ /emotion/happy/index.html;\\n }\\n' /www/server/nginx/conf/conf.d/emotion-museum.conf fi # 测试配置 nginx -t && systemctl reload nginx echo 'Nginx配置更新完成' " } # 检查部署结果 check_deployment() { log_info "检查部署结果..." ssh "$REMOTE_HOST" " echo '=== 文件检查 ===' ls -la $REMOTE_DIR/ echo '' echo '=== Nginx状态 ===' systemctl status nginx --no-pager -l | head -5 echo '' echo '=== 访问测试 ===' curl -I http://localhost/emotion/happy 2>/dev/null || echo '访问测试失败' " } # 主函数 main() { log_info "🚀 开始部署前端到 /emotion/happy 路径..." check_connection create_remote_dir deploy_frontend configure_nginx check_deployment log_success "🎉 前端部署完成!" echo "" echo "📋 访问信息:" echo " 前端地址: http://47.111.10.27/emotion/happy" echo " 部署目录: $REMOTE_DIR" echo " Nginx配置: /www/server/nginx/conf/conf.d/emotion-museum.conf" } # 执行主函数 main "$@"