docs: 添加部署文档和 README

- 新增 DEPLOY.md 详细部署指南
- 新增 README.md 项目说明
- 更新 .env.example 添加 JWT_SECRET 示例
- 优化 db.js 数据库连接配置(支持端口和超时设置)
This commit is contained in:
jason
2026-03-12 20:47:17 +08:00
parent 96bdc292bb
commit b6a98ddaba
4 changed files with 302 additions and 1 deletions

212
DEPLOY.md Normal file
View 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
View 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

View File

@@ -3,3 +3,4 @@ DB_HOST=localhost
DB_USER=root
DB_PASSWORD=your_password_here
DB_NAME=api_debug
JWT_SECRET=your_jwt_secret_key_here

View File

@@ -6,9 +6,13 @@ const pool = mysql.createPool({
user: process.env.DB_USER || 'root',
password: process.env.DB_PASSWORD || '',
database: process.env.DB_NAME || 'api_debug',
port: process.env.DB_PORT || 3306,
waitForConnections: true,
connectionLimit: 10,
queueLimit: 0
queueLimit: 0,
connectTimeout: 10000,
acquireTimeout: 10000,
timeout: 10000
});
module.exports = pool;