- 修改 pom.xml 中的 groupId - 移动所有 Java 文件到新包路径 com/lesingle/edu - 更新所有 Java 文件的 package 和 import 语句 (438 个文件) - 更新配置文件中的日志包名引用 (application-*.yml, logback-spring.xml) - 更新 @MapperScan 注解路径 - 更新 CLAUDE.md 文档中的目录结构说明 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
162 lines
4.3 KiB
Bash
162 lines
4.3 KiB
Bash
#!/bin/bash
|
||
|
||
#===============================================================================
|
||
# 少儿智慧阅读 - 一键部署到宝塔面板
|
||
#
|
||
# 使用方法:
|
||
# ./deploy.sh your-server-ip
|
||
# 或
|
||
# ./deploy.sh root@your-server-ip
|
||
#===============================================================================
|
||
|
||
set -e
|
||
|
||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
|
||
# 颜色
|
||
RED='\033[0;31m'
|
||
GREEN='\033[0;32m'
|
||
YELLOW='\033[1;33m'
|
||
BLUE='\033[0;34m'
|
||
NC='\033[0m'
|
||
|
||
log_info() { echo -e "${GREEN}[INFO]${NC} $1"; }
|
||
log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
|
||
log_error() { echo -e "${RED}[ERROR]${NC} $1"; }
|
||
log_step() { echo -e "${BLUE}[STEP]${NC} $1"; }
|
||
|
||
# 检查参数
|
||
if [ -z "$1" ]; then
|
||
echo ""
|
||
echo "=============================================="
|
||
echo " 少儿智慧阅读"
|
||
echo " 一键部署到宝塔面板"
|
||
echo "=============================================="
|
||
echo ""
|
||
echo "使用方法:"
|
||
echo " $0 your-server-ip"
|
||
echo " $0 root@your-server-ip"
|
||
echo ""
|
||
echo "示例:"
|
||
echo " $0 8.148.151.56"
|
||
echo " $0 root@8.148.151.56"
|
||
echo ""
|
||
exit 1
|
||
fi
|
||
|
||
# 解析参数
|
||
REMOTE_HOST="$1"
|
||
REMOTE_USER="root"
|
||
if [[ "$1" == *"@"* ]]; then
|
||
REMOTE_USER=$(echo "$1" | cut -d'@' -f1)
|
||
REMOTE_HOST=$(echo "$1" | cut -d'@' -f2)
|
||
fi
|
||
|
||
echo ""
|
||
echo "=============================================="
|
||
echo " 一键部署到宝塔面板"
|
||
echo "=============================================="
|
||
echo ""
|
||
echo " 服务器:$REMOTE_USER@$REMOTE_HOST"
|
||
echo ""
|
||
|
||
# 检查 SSH 连接
|
||
log_step "检查 SSH 连接..."
|
||
if ! ssh -o StrictHostKeyChecking=no "$REMOTE_USER@$REMOTE_HOST" "echo '连接成功'" 2>/dev/null; then
|
||
log_error "SSH 连接失败,请检查:"
|
||
echo " 1. 服务器 IP 是否正确"
|
||
echo " 2. SSH 是否启用(默认端口 22)"
|
||
echo " 3. 密码/密钥是否正确"
|
||
echo ""
|
||
echo " 如果是密码登录,请先执行:"
|
||
echo " ssh-copy-id $REMOTE_USER@$REMOTE_HOST"
|
||
exit 1
|
||
fi
|
||
log_info "SSH 连接成功"
|
||
|
||
# 检查远程服务器
|
||
log_step "检查远程服务器..."
|
||
ssh "$REMOTE_USER@$REMOTE_HOST" << 'ENDSSH'
|
||
# 检查是否安装了宝塔
|
||
if [ -d "/www/server/panel" ]; then
|
||
echo "宝塔面板:已安装"
|
||
else
|
||
echo "警告:未检测到宝塔面板"
|
||
fi
|
||
|
||
# 检查 JDK
|
||
if command -v java &> /dev/null; then
|
||
java_version=$(java -version 2>&1 | head -n 1)
|
||
echo "Java: $java_version"
|
||
else
|
||
echo "警告:未安装 Java"
|
||
fi
|
||
|
||
# 检查 MySQL
|
||
if command -v mysql &> /dev/null; then
|
||
echo "MySQL: 已安装"
|
||
else
|
||
echo "警告:未安装 MySQL"
|
||
fi
|
||
|
||
# 检查 Nginx
|
||
if command -v nginx &> /dev/null; then
|
||
echo "Nginx: 已安装"
|
||
fi
|
||
|
||
# 检查磁盘空间
|
||
disk_used=$(df -h / | tail -1 | awk '{print $5}')
|
||
echo "磁盘使用:$disk_used"
|
||
ENDSSH
|
||
|
||
echo ""
|
||
echo "=============================================="
|
||
echo " 部署前检查完成"
|
||
echo "=============================================="
|
||
echo ""
|
||
echo " 请确认:"
|
||
echo " 1. 宝塔面板已安装并可以访问"
|
||
echo " 2. 已在宝塔中安装 MySQL、Redis、Nginx"
|
||
echo " 3. 已创建数据库和用户(见 DEPLOY_BAOTA.md)"
|
||
echo " 4. JDK 17 已安装(或通过宝塔安装)"
|
||
echo ""
|
||
read -p "是否继续部署?(y/n) " -n 1 -r
|
||
echo
|
||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
||
exit 1
|
||
fi
|
||
|
||
# 部署后端
|
||
log_step "部署后端..."
|
||
export REMOTE_USER
|
||
export REMOTE_HOST
|
||
bash "$SCRIPT_DIR/deploy-backend.sh"
|
||
|
||
# 部署前端
|
||
log_step "部署前端..."
|
||
bash "$SCRIPT_DIR/deploy-frontend.sh"
|
||
|
||
echo ""
|
||
echo "=============================================="
|
||
echo " 部署完成!"
|
||
echo "=============================================="
|
||
echo ""
|
||
echo " 下一步操作:"
|
||
echo ""
|
||
echo " 1. 在宝塔面板配置 Nginx 反向代理"
|
||
echo " 网站 → 设置 → 配置文件"
|
||
echo " 参考 nginx-baota.conf 中的配置"
|
||
echo ""
|
||
echo " 2. 验证后端服务"
|
||
echo " ssh $REMOTE_USER@$REMOTE_HOST"
|
||
echo " curl http://localhost:8480/actuator/health"
|
||
echo ""
|
||
echo " 3. 访问前端页面"
|
||
echo " http://$REMOTE_HOST"
|
||
echo ""
|
||
echo " 4. 查看日志"
|
||
echo " 后端:tail -f /www/wwwroot/reading-platform/logs/app.log"
|
||
echo " Nginx: tail -f /www/wwwlogs/你的域名.error.log"
|
||
echo ""
|
||
echo "=============================================="
|