docs: 添加部署文档和 README
- 新增 DEPLOY.md 详细部署指南 - 新增 README.md 项目说明 - 更新 .env.example 添加 JWT_SECRET 示例 - 优化 db.js 数据库连接配置(支持端口和超时设置)
This commit is contained in:
212
DEPLOY.md
Normal file
212
DEPLOY.md
Normal file
@@ -0,0 +1,212 @@
|
|||||||
|
# API Debug Tool 部署文档
|
||||||
|
|
||||||
|
## 项目简介
|
||||||
|
|
||||||
|
API Debug Tool 是一个用于调试钉钉 API 的 Web 工具,支持多租户管理、接口管理和调试历史记录。
|
||||||
|
|
||||||
|
## 技术栈
|
||||||
|
|
||||||
|
- **前端**: React + Vite
|
||||||
|
- **后端**: Node.js + Express
|
||||||
|
- **数据库**: MySQL 8.0+
|
||||||
|
- **认证**: JWT
|
||||||
|
|
||||||
|
## 系统要求
|
||||||
|
|
||||||
|
- Node.js >= 16.x
|
||||||
|
- MySQL >= 8.0
|
||||||
|
- npm 或 yarn
|
||||||
|
|
||||||
|
## 部署步骤
|
||||||
|
|
||||||
|
### 1. 克隆项目
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://gitea.zhouzishen.cn/jason/api-debug.git
|
||||||
|
cd api-debug
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. 安装依赖
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 安装根目录依赖
|
||||||
|
npm install
|
||||||
|
|
||||||
|
# 安装服务端依赖
|
||||||
|
cd server
|
||||||
|
npm install
|
||||||
|
|
||||||
|
# 安装客户端依赖
|
||||||
|
cd ../client
|
||||||
|
npm install
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. 配置数据库
|
||||||
|
|
||||||
|
#### 3.1 创建数据库
|
||||||
|
|
||||||
|
```sql
|
||||||
|
CREATE DATABASE api_debug CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||||
|
CREATE USER 'api-debug'@'%' IDENTIFIED BY 'your_password';
|
||||||
|
GRANT ALL PRIVILEGES ON api_debug.* TO 'api-debug'@'%';
|
||||||
|
FLUSH PRIVILEGES;
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 3.2 配置环境变量
|
||||||
|
|
||||||
|
复制示例配置文件:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd server
|
||||||
|
cp .env.example .env
|
||||||
|
```
|
||||||
|
|
||||||
|
编辑 `.env` 文件,填入你的数据库配置:
|
||||||
|
|
||||||
|
```env
|
||||||
|
PORT=5001
|
||||||
|
DB_HOST=your_database_host
|
||||||
|
DB_USER=your_database_user
|
||||||
|
DB_PASSWORD=your_database_password
|
||||||
|
DB_NAME=api_debug
|
||||||
|
JWT_SECRET=your_jwt_secret_key
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 3.3 初始化数据库
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 方式1: 使用 init.sql(推荐)
|
||||||
|
mysql -h your_host -u your_user -p api_debug < init.sql
|
||||||
|
|
||||||
|
# 方式2: 使用 migrate.js
|
||||||
|
node migrate.js
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. 启动服务
|
||||||
|
|
||||||
|
#### 开发环境
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 启动后端(在 server 目录)
|
||||||
|
npm start
|
||||||
|
|
||||||
|
# 启动前端(在 client 目录,新终端)
|
||||||
|
npm run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 生产环境
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 构建前端
|
||||||
|
cd client
|
||||||
|
npm run build
|
||||||
|
|
||||||
|
# 使用 PM2 启动后端
|
||||||
|
cd ../server
|
||||||
|
pm2 start index.js --name api-debug-server
|
||||||
|
|
||||||
|
# 使用 Nginx 代理前端静态文件
|
||||||
|
# 配置示例见下方
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5. Nginx 配置示例
|
||||||
|
|
||||||
|
```nginx
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name your-domain.com;
|
||||||
|
|
||||||
|
# 前端静态文件
|
||||||
|
location / {
|
||||||
|
root /path/to/api-debug/client/dist;
|
||||||
|
try_files $uri $uri/ /index.html;
|
||||||
|
}
|
||||||
|
|
||||||
|
# 后端 API 代理
|
||||||
|
location /api {
|
||||||
|
proxy_pass http://localhost:5001;
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection 'upgrade';
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_cache_bypass $http_upgrade;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## 默认账号
|
||||||
|
|
||||||
|
初始化后会创建默认管理员账号:
|
||||||
|
|
||||||
|
- 用户名: `admin`
|
||||||
|
- 密码: `123456`
|
||||||
|
|
||||||
|
**⚠️ 请在首次登录后立即修改密码!**
|
||||||
|
|
||||||
|
## 功能特性
|
||||||
|
|
||||||
|
- ✅ 用户认证与授权(JWT)
|
||||||
|
- ✅ 多租户管理(支持旗舰版PP/ATS、标品PP/ATS、国际版ATS)
|
||||||
|
- ✅ 接口管理(支持分类和模块)
|
||||||
|
- ✅ 接口调试(自动签名、参数注入)
|
||||||
|
- ✅ 调试历史记录
|
||||||
|
- ✅ 用户数据隔离
|
||||||
|
- ✅ 多标签页调试
|
||||||
|
|
||||||
|
## 数据库表结构
|
||||||
|
|
||||||
|
- `users` - 用户表
|
||||||
|
- `tenants` - 租户表
|
||||||
|
- `endpoints` - 接口表
|
||||||
|
- `debug_history` - 调试历史表
|
||||||
|
- `token_cache` - Token 缓存表
|
||||||
|
- `settings` - 系统设置表
|
||||||
|
|
||||||
|
## 常见问题
|
||||||
|
|
||||||
|
### 1. 数据库连接失败
|
||||||
|
|
||||||
|
检查 `.env` 配置是否正确,确保数据库服务正在运行,防火墙允许连接。
|
||||||
|
|
||||||
|
### 2. 前端无法访问后端 API
|
||||||
|
|
||||||
|
检查 CORS 配置,确保后端已启用 `cors` 中间件。
|
||||||
|
|
||||||
|
### 3. JWT Token 过期
|
||||||
|
|
||||||
|
默认 Token 有效期为 7 天,可在 `server/routes/auth.js` 中修改 `expiresIn` 参数。
|
||||||
|
|
||||||
|
### 4. 端口冲突
|
||||||
|
|
||||||
|
如果 5001 端口被占用,修改 `.env` 中的 `PORT` 配置。
|
||||||
|
|
||||||
|
## 安全建议
|
||||||
|
|
||||||
|
1. 修改默认管理员密码
|
||||||
|
2. 使用强密码策略
|
||||||
|
3. 定期备份数据库
|
||||||
|
4. 生产环境使用 HTTPS
|
||||||
|
5. 限制数据库访问 IP
|
||||||
|
6. 定期更新依赖包
|
||||||
|
|
||||||
|
## 维护与备份
|
||||||
|
|
||||||
|
### 数据库备份
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mysqldump -h your_host -u your_user -p api_debug > backup_$(date +%Y%m%d).sql
|
||||||
|
```
|
||||||
|
|
||||||
|
### 数据库恢复
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mysql -h your_host -u your_user -p api_debug < backup_20260312.sql
|
||||||
|
```
|
||||||
|
|
||||||
|
## 技术支持
|
||||||
|
|
||||||
|
如有问题,请提交 Issue 到项目仓库。
|
||||||
|
|
||||||
|
## 许可证
|
||||||
|
|
||||||
|
MIT License
|
||||||
84
README.md
Normal file
84
README.md
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
# API Debug Tool
|
||||||
|
|
||||||
|
一个用于调试钉钉 API 的 Web 工具,支持多租户管理、接口管理和调试历史记录。
|
||||||
|
|
||||||
|
## 功能特性
|
||||||
|
|
||||||
|
- ✅ 用户认证与授权(JWT)
|
||||||
|
- ✅ 多租户管理(支持旗舰版PP/ATS、标品PP/ATS、国际版ATS)
|
||||||
|
- ✅ 接口管理(支持分类和模块)
|
||||||
|
- ✅ 接口调试(自动签名、参数注入)
|
||||||
|
- ✅ 调试历史记录
|
||||||
|
- ✅ 用户数据隔离
|
||||||
|
- ✅ 多标签页调试
|
||||||
|
|
||||||
|
## 技术栈
|
||||||
|
|
||||||
|
- **前端**: React + Vite
|
||||||
|
- **后端**: Node.js + Express
|
||||||
|
- **数据库**: MySQL 8.0+
|
||||||
|
- **认证**: JWT
|
||||||
|
|
||||||
|
## 快速开始
|
||||||
|
|
||||||
|
详细部署文档请查看 [DEPLOY.md](./DEPLOY.md)
|
||||||
|
|
||||||
|
### 安装依赖
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm install
|
||||||
|
cd server && npm install
|
||||||
|
cd ../client && npm install
|
||||||
|
```
|
||||||
|
|
||||||
|
### 配置数据库
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd server
|
||||||
|
cp .env.example .env
|
||||||
|
# 编辑 .env 填入数据库配置
|
||||||
|
```
|
||||||
|
|
||||||
|
### 初始化数据库
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mysql -u root -p api_debug < server/init.sql
|
||||||
|
```
|
||||||
|
|
||||||
|
### 启动服务
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 后端
|
||||||
|
cd server && npm start
|
||||||
|
|
||||||
|
# 前端(新终端)
|
||||||
|
cd client && npm run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
## 默认账号
|
||||||
|
|
||||||
|
- 用户名: `admin`
|
||||||
|
- 密码: `123456`
|
||||||
|
|
||||||
|
## 项目结构
|
||||||
|
|
||||||
|
```
|
||||||
|
api-debug/
|
||||||
|
├── client/ # 前端项目
|
||||||
|
│ ├── src/
|
||||||
|
│ │ ├── components/ # React 组件
|
||||||
|
│ │ ├── utils/ # 工具函数
|
||||||
|
│ │ └── main.jsx # 入口文件
|
||||||
|
│ └── package.json
|
||||||
|
├── server/ # 后端项目
|
||||||
|
│ ├── routes/ # API 路由
|
||||||
|
│ ├── middleware/ # 中间件
|
||||||
|
│ ├── init.sql # 数据库初始化脚本
|
||||||
|
│ ├── .env.example # 环境变量示例
|
||||||
|
│ └── package.json
|
||||||
|
└── DEPLOY.md # 部署文档
|
||||||
|
```
|
||||||
|
|
||||||
|
## 许可证
|
||||||
|
|
||||||
|
MIT License
|
||||||
@@ -3,3 +3,4 @@ DB_HOST=localhost
|
|||||||
DB_USER=root
|
DB_USER=root
|
||||||
DB_PASSWORD=your_password_here
|
DB_PASSWORD=your_password_here
|
||||||
DB_NAME=api_debug
|
DB_NAME=api_debug
|
||||||
|
JWT_SECRET=your_jwt_secret_key_here
|
||||||
|
|||||||
@@ -6,9 +6,13 @@ const pool = mysql.createPool({
|
|||||||
user: process.env.DB_USER || 'root',
|
user: process.env.DB_USER || 'root',
|
||||||
password: process.env.DB_PASSWORD || '',
|
password: process.env.DB_PASSWORD || '',
|
||||||
database: process.env.DB_NAME || 'api_debug',
|
database: process.env.DB_NAME || 'api_debug',
|
||||||
|
port: process.env.DB_PORT || 3306,
|
||||||
waitForConnections: true,
|
waitForConnections: true,
|
||||||
connectionLimit: 10,
|
connectionLimit: 10,
|
||||||
queueLimit: 0
|
queueLimit: 0,
|
||||||
|
connectTimeout: 10000,
|
||||||
|
acquireTimeout: 10000,
|
||||||
|
timeout: 10000
|
||||||
});
|
});
|
||||||
|
|
||||||
module.exports = pool;
|
module.exports = pool;
|
||||||
|
|||||||
Reference in New Issue
Block a user