Files
soul/scripts/deploy-to-server.sh
卡若 153b8d9795 fix: 修复章节API的Next.js 16兼容性问题
- 更新chapter/[id]/route.ts使用Promise params (Next.js 16要求)
- 删除过时的app/api/db目录下的旧API文件(bookDB/userDB等不存在的导出)
- 添加部署脚本deploy-to-server.sh
- 添加章节迁移脚本migrate-chapters-to-db.ts
2026-01-25 10:36:30 +08:00

75 lines
2.3 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# Soul项目一键部署到宝塔服务器
# 使用方法: ./deploy-to-server.sh [SSH密码]
# 服务器配置
SERVER_IP="42.194.232.22"
SERVER_USER="root"
PROJECT_PATH="/www/wwwroot/soul"
BRANCH="soul-content"
# 颜色输出
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
echo "======================================="
echo " Soul项目 - 宝塔服务器一键部署"
echo "======================================="
echo ""
# 检查sshpass是否安装
if ! command -v sshpass &> /dev/null; then
echo -e "${YELLOW}正在安装sshpass...${NC}"
brew install hudochenkov/sshpass/sshpass 2>/dev/null || {
echo -e "${RED}请手动安装sshpass: brew install hudochenkov/sshpass/sshpass${NC}"
exit 1
}
fi
# 获取SSH密码
if [ -z "$1" ]; then
echo -n "请输入SSH密码: "
read -s SSH_PASSWORD
echo ""
else
SSH_PASSWORD="$1"
fi
echo ""
echo -e "${GREEN}[1/5]${NC} 连接服务器..."
# 测试连接
sshpass -p "$SSH_PASSWORD" ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 $SERVER_USER@$SERVER_IP "echo '连接成功'" 2>/dev/null
if [ $? -ne 0 ]; then
echo -e "${RED}连接失败,请检查密码是否正确${NC}"
exit 1
fi
echo -e "${GREEN}[2/5]${NC} 拉取最新代码..."
sshpass -p "$SSH_PASSWORD" ssh $SERVER_USER@$SERVER_IP "cd $PROJECT_PATH && git fetch origin && git reset --hard origin/$BRANCH"
echo -e "${GREEN}[3/5]${NC} 安装依赖..."
sshpass -p "$SSH_PASSWORD" ssh $SERVER_USER@$SERVER_IP "cd $PROJECT_PATH && pnpm install --frozen-lockfile 2>/dev/null || npm install"
echo -e "${GREEN}[4/5]${NC} 构建项目..."
sshpass -p "$SSH_PASSWORD" ssh $SERVER_USER@$SERVER_IP "cd $PROJECT_PATH && pnpm build 2>/dev/null || npm run build"
echo -e "${GREEN}[5/5]${NC} 重启服务..."
# 使用www用户的PM2宝塔方式
sshpass -p "$SSH_PASSWORD" ssh $SERVER_USER@$SERVER_IP "sudo -u www /www/server/nvm/versions/node/*/bin/pm2 restart soul 2>/dev/null || pm2 restart soul"
echo ""
echo "======================================="
echo -e "${GREEN}✅ 部署完成!${NC}"
echo "======================================="
echo ""
echo "访问地址: https://soul.quwanzhi.com"
echo ""
# 测试API
echo "正在验证部署..."
sleep 3
curl -s "https://soul.quwanzhi.com/api/book/chapter/1.1" | head -100