xiaso-flnxi-website/deploy-with-database.sh
Your Name b1eab32c75 初始提交: FLNXI电商素材系统官方网站
- Next.js 项目框架
- 完整的认证系统集成
- 数据库配置和部署脚本
- 产品价格体系和文档
- Docker 部署配置
2025-12-13 21:38:32 +08:00

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 ""