# 宝塔部署快速配置指南

## 第一次部署前，请在宝塔面板完成以下操作：

### 1. 安装基础服务

登录宝塔面板 → 软件商店 → 安装以下软件：

| 软件 | 版本 | 说明 |
|------|------|------|
| Nginx | 1.24+ | Web 服务器 |
| MySQL | 8.0+ | 数据库 |
| Redis | 7.x | 缓存 |
| Java | JDK 17 | 运行环境 |

### 2. 创建数据库

宝塔面板 → 数据库 → 添加：

```
数据库名：lesingle-edu-reading-platform
用户名：reading_platform
密码：[设置一个强密码，记下来]
权限：全部
```

### 3. 配置环境变量

复制配置文件模板：

```bash
cp .env.prod.template .env.prod
```

编辑 `.env.prod`，填入实际值：

```bash
# 数据库密码（从宝塔获取）
DB_PASSWORD=你的数据库密码

# JWT 密钥（必须修改）
JWT_SECRET=你的-production-jwt-secret-至少-32-字符

# Redis 密码（如果宝塔设置了）
REDIS_PASSWORD=
```

### 4. 修改部署脚本配置

编辑 `deploy-backend.sh`，找到环境变量部分，填入你的配置：

```bash
# 在启动脚本中添加环境变量
export DB_PASSWORD=你的数据库密码
export JWT_SECRET=你的 JWT 密钥
```

或者在服务器上创建 `/www/wwwroot/reading-platform/.env` 文件。

---

## 一键部署

```bash
# 方式 1：使用主部署脚本
./deploy.sh root@你的服务器 IP

# 方式 2：分别部署
export REMOTE_HOST=你的服务器 IP
./deploy-backend.sh    # 部署后端
./deploy-frontend.sh   # 部署前端
```

---

## 部署后配置

### 1. 配置 Nginx 反向代理

宝塔面板 → 网站 → 你的网站 → 设置 → 配置文件：

粘贴 `nginx-baota.conf` 中的配置。

### 2. 验证部署

```bash
# SSH 登录服务器
ssh root@你的服务器 IP

# 检查后端健康状态
curl http://localhost:8480/actuator/health

# 查看后端日志
tail -f /www/wwwroot/reading-platform/logs/app.log
```

### 3. 访问应用

- 前端：http://你的服务器 IP
- API 文档：http://你的服务器 IP:8480/swagger-ui.html

---

## 常用命令

### 后端管理

```bash
# 登录服务器
ssh root@你的服务器 IP

# 进入目录
cd /www/wwwroot/reading-platform

# 启动
./start.sh

# 停止
./stop.sh

# 查看日志
tail -f logs/app.log

# 查看进程
ps aux | grep app.jar
```

### 前端更新

```bash
# 本地重新构建并部署
./deploy-frontend.sh root@你的服务器 IP
```

---

## 问题排查

### 后端启动失败

```bash
# 查看详细日志
tail -100 /www/wwwroot/reading-platform/logs/app.log

# 检查 Java 版本
java -version

# 检查端口占用
netstat -tlnp | grep 8480
```

### 前端页面空白

1. 打开浏览器 Console（F12）
2. 查看 Network 标签，检查 API 请求
3. 确认 Nginx 反向代理配置正确

### 数据库连接失败

1. 确认数据库已创建
2. 确认数据库密码正确
3. 确认 MySQL 服务运行中

---

## 需要帮助？

- 详细部署文档：`DEPLOY_BAOTA.md`
- Nginx 配置：`nginx-baota.conf`
- 环境变量模板：`.env.prod.template`
