#!/bin/bash # 完整部署脚本(包含数据库) set -e echo "🚀 部署完整认证系统(含数据库)..." echo "" SERVER="root@45.249.208.118" SERVER_PASSWORD="lxvhNYFZ4160" REMOTE_DIR="/opt/flnxi-website" GREEN='\033[0;32m' BLUE='\033[0;34m' YELLOW='\033[1;33m' NC='\033[0m' # 检查 sshpass if ! command -v sshpass &> /dev/null; then echo -e "${YELLOW}安装 sshpass...${NC}" brew install hudochenkov/sshpass/sshpass || exit 1 fi echo -e "${BLUE}步骤 1/5: 上传数据库工具...${NC}" sshpass -p "$SERVER_PASSWORD" scp -o StrictHostKeyChecking=no -r lib $SERVER:$REMOTE_DIR/ echo -e "${GREEN}✅ 数据库工具已上传${NC}" echo "" echo -e "${BLUE}步骤 2/5: 上传更新的 API...${NC}" sshpass -p "$SERVER_PASSWORD" scp -o StrictHostKeyChecking=no \ app/api/auth/register/route.ts $SERVER:$REMOTE_DIR/app/api/auth/register/ sshpass -p "$SERVER_PASSWORD" scp -o StrictHostKeyChecking=no \ app/api/auth/[...nextauth]/route.ts "$SERVER:$REMOTE_DIR/app/api/auth/[...nextauth]/" echo -e "${GREEN}✅ API 已上传${NC}" echo "" echo -e "${BLUE}步骤 3/5: 上传 package.json...${NC}" sshpass -p "$SERVER_PASSWORD" scp -o StrictHostKeyChecking=no package.json $SERVER:$REMOTE_DIR/ echo -e "${GREEN}✅ package.json 已上传${NC}" echo "" echo -e "${BLUE}步骤 4/5: 重新构建并部署...${NC}" sshpass -p "$SERVER_PASSWORD" ssh -o StrictHostKeyChecking=no $SERVER << 'ENDSSH' cd /opt/flnxi-website echo "📦 安装新依赖..." npm install echo "🐳 重新构建 Docker..." docker-compose down docker-compose up -d --build echo "⏳ 等待应用启动..." sleep 15 echo "✅ 应用已启动" ENDSSH echo -e "${GREEN}✅ 部署完成${NC}" echo "" echo -e "${BLUE}步骤 5/5: 验证部署...${NC}" echo "测试数据库连接..." sshpass -p "$SERVER_PASSWORD" ssh -o StrictHostKeyChecking=no $SERVER \ "docker exec flnxi-postgres psql -U flnxi_user -d flnxi_db -c 'SELECT COUNT(*) FROM users;'" || { echo -e "${YELLOW}⚠️ 数据库连接测试跳过${NC}" } echo "测试应用..." sleep 5 curl -s -o /dev/null -w "HTTP %{http_code}\n" https://scs.flnxi.com || echo "网站响应检查..." echo "" echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" echo -e "${GREEN}🎉 部署完成!${NC}" echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" echo "" echo -e "${YELLOW}📝 测试步骤:${NC}" echo "1. 访问: https://scs.flnxi.com" echo "2. 点击右上角【注册】" echo "3. 注册新账户:" echo " 用户名: 测试用户" echo " 邮箱: newuser@test.com" echo " 密码: test123456" echo "4. 注册成功后使用该账户登录" echo "5. 验证能否成功登录" echo "" echo -e "${YELLOW}🔍 查看数据库中的用户:${NC}" echo "ssh $SERVER 'docker exec flnxi-postgres psql -U flnxi_user -d flnxi_db -c \"SELECT id, name, email, created_at FROM users;\"'" echo ""