91 lines
3.0 KiB
Bash
Executable File
91 lines
3.0 KiB
Bash
Executable File
#!/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 ""
|
|
|