v1.0.0 bug修复更新

This commit is contained in:
2026-04-02 01:19:24 +08:00
parent c0cfc4ba9f
commit e97c7548a7

192
README.md
View File

@@ -1,155 +1,155 @@
# PerToolBox Server - 后端服务
> 个人工具箱后端 API,基于 FastAPI + MySQL + Redis
> 基于 FastAPI 的个人工具箱后端 API
---
## 📄 版权信息
## 📋 项目信息
* **版权所有**: Sea Network Technology Studio
* **权利人**: Canglan
* **联系方式**: [admin@sea-studio.top](mailto:admin@sea-studio.top)
* **开源协议**: AGPL v3
- 项目名称PerToolBox Server
- 项目类型RESTful API 服务
- 版权所有Sea Network Technology Studio
- 权利人Canglan
- 开源协议AGPL v3
- 联系方式admin@sea-studio.top
---
## 🚀 功能特性
## 功能模块
* ✅ 用户认证(手机 / 邮箱验证码登录)
* ✅ 待办事项管理
* ✅ 便签本
* ✅ 密码生成器
* ✅ 二维码生成
* ✅ 加密工具箱哈希、Base64、URL、AES
* ✅ JSON 校验与格式化
* ✅ 热度统计(页面访问次数)
### 🔐 用户系统
- 手机验证码登录
- 邮箱验证码登录
### 📝 数据功能
- 待办事项管理
- 便签本
### 🧰 工具模块
- 密码生成器
- 二维码生成
- 加密工具箱Hash / Base64 / URL / AES
- JSON 校验与格式化
### 📊 统计模块
- 接口访问热度统计
---
## 🧰 环境要求
## 🏗️ 系统架构
| 组件 | 版本要求 |
| ------ | ---- |
| Python | 3.12 |
| MySQL | 5.7 |
| Redis | 7.x |
```text
Client (Web / Mobile)
Nginx
FastAPI
┌───────┴────────┐
▼ ▼
MySQL Redis
(数据存储) (缓存/验证码)
```
---
## ⚡ 快速开始
## 🛠️ 技术栈
### 1⃣ 克隆代码
| 技术 | 版本 |
|------|------|
| Python | 3.12+ |
| FastAPI | 0.104+ |
| MySQL | 5.7+ |
| Redis | 7.x+ |
---
## ⚙️ 环境变量
复制并修改:
```bash
git clone https://hz-gitea.sea-studio.top/yourname/PerToolBoxServer.git
cp .env.example .env
```
示例:
- DATABASE_URL=mysql://user:password@host:port/db
- REDIS_URL=redis://host:port/0
- SECRET_KEY=your-secret-key
- CORS_ORIGINS=*
---
## 🚀 快速开始
### 1. 获取代码
```bash
git clone https://hz-gitea.sea-studio.top/Sea-Studio/PerToolBoxServer.git
cd PerToolBoxServer
```
### 2️⃣ 创建虚拟环境
### 2. 创建环境
```bash
python3.12 -m venv venv
source venv/bin/activate
```
### 3️⃣ 安装依赖
### 3. 安装依赖
```bash
pip install -r requirements.txt
```
### 4️⃣ 配置环境变量
```bash
cp .env.example .env
```
编辑 `.env` 文件填写数据库、Redis、短信等配置
### 5⃣ 初始化数据库
### 4. 初始化数据库
```bash
mysql -u root -p < scripts/init_db.sql
```
### 6 启动服务
### 5. 启动服务
```bash
uvicorn backend.main:app --host 0.0.0.0 --port 8000 --reload
```
### 7⃣ 访问 API 文档
```
http://localhost:8000/api/v1/docs
uvicorn backend.main:app --host 0.0.0.0 --port 9999 --reload
```
---
## ⚙️ 部署systemd
## 🌐 反向代理Nginx
### 创建服务文件
路径:`/etc/systemd/system/pertoolbox.service`
```ini
[Unit]
Description=PerToolBox Backend
After=network.target
[Service]
User=www-data
Group=www-data
WorkingDirectory=/opt/PerToolBoxServer
ExecStart=/opt/PerToolBoxServer/venv/bin/gunicorn backend.main:app \
-w 4 \
-k uvicorn.workers.UvicornWorker \
--bind 127.0.0.1:8000
Restart=always
[Install]
WantedBy=multi-user.target
```
### 启动服务
```bash
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable pertoolbox
sudo systemctl start pertoolbox
```
### 查看状态
```bash
sudo systemctl status pertoolbox
```nginx
location /api/ {
proxy_pass http://127.0.0.1:9999/api/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
```
---
## 📡 API 端点
## 📚 API 文档
| 模块 | 端点 | 说明 |
| -- | --------------------------- | ----------- |
| 认证 | `/api/v1/auth/*` | 注册、登录、发送验证码 |
| 用户 | `/api/v1/user/*` | 个人信息 |
| 待办 | `/api/v1/todos/*` | 待办事项 CRUD |
| 便签 | `/api/v1/notes/*` | 便签 CRUD |
| 工具 | `/api/v1/password/generate` | 密码生成 |
| 工具 | `/api/v1/qrcode/generate` | 二维码生成 |
| 工具 | `/api/v1/crypto/*` | 加密工具 |
| 工具 | `/api/v1/json/validate` | JSON 校验 |
| 统计 | `/api/v1/tool/stats` | 热度统计 |
启动后访问:
- http://your-server:9999/docs
- http://your-server:9999/redoc
---
## 🔧 配置说明
## 📁 项目结构
详见 `.env.example` 文件。
PerToolBoxServer/
├── backend/ # 核心代码
├── scripts/ # 数据库脚本
├── requirements.txt
└── .env.example
---
## 📜 许可证
## 📞 联系方式
本项目基于 **AGPL v3** 开源协议发布。
- Githttps://hz-gitea.sea-studio.top/Sea-Studio/PerToolBoxServer
- 邮箱admin@sea-studio.top