v1.0.0 bug修复更新
This commit is contained in:
192
README.md
192
README.md
@@ -1,155 +1,155 @@
|
|||||||
# PerToolBox Server - 后端服务
|
# PerToolBox Server - 后端服务
|
||||||
|
|
||||||
> 个人工具箱后端 API,基于 FastAPI + MySQL + Redis
|
> 基于 FastAPI 的个人工具箱后端 API
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 📄 版权信息
|
## 📋 项目信息
|
||||||
|
|
||||||
* **版权所有**: Sea Network Technology Studio
|
- 项目名称:PerToolBox Server
|
||||||
* **权利人**: Canglan
|
- 项目类型:RESTful API 服务
|
||||||
* **联系方式**: [admin@sea-studio.top](mailto:admin@sea-studio.top)
|
- 版权所有:Sea Network Technology Studio
|
||||||
* **开源协议**: AGPL v3
|
- 权利人:Canglan
|
||||||
|
- 开源协议:AGPL v3
|
||||||
|
- 联系方式:admin@sea-studio.top
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🚀 功能特性
|
## ✨ 功能模块
|
||||||
|
|
||||||
* ✅ 用户认证(手机 / 邮箱验证码登录)
|
### 🔐 用户系统
|
||||||
* ✅ 待办事项管理
|
- 手机验证码登录
|
||||||
* ✅ 便签本
|
- 邮箱验证码登录
|
||||||
* ✅ 密码生成器
|
|
||||||
* ✅ 二维码生成
|
### 📝 数据功能
|
||||||
* ✅ 加密工具箱(哈希、Base64、URL、AES)
|
- 待办事项管理
|
||||||
* ✅ JSON 校验与格式化
|
- 便签本
|
||||||
* ✅ 热度统计(页面访问次数)
|
|
||||||
|
### 🧰 工具模块
|
||||||
|
- 密码生成器
|
||||||
|
- 二维码生成
|
||||||
|
- 加密工具箱(Hash / Base64 / URL / AES)
|
||||||
|
- JSON 校验与格式化
|
||||||
|
|
||||||
|
### 📊 统计模块
|
||||||
|
- 接口访问热度统计
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🧰 环境要求
|
## 🏗️ 系统架构
|
||||||
|
|
||||||
| 组件 | 版本要求 |
|
```text
|
||||||
| ------ | ---- |
|
Client (Web / Mobile)
|
||||||
| Python | 3.12 |
|
│
|
||||||
| MySQL | 5.7 |
|
▼
|
||||||
| Redis | 7.x |
|
Nginx
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
FastAPI
|
||||||
|
┌───────┴────────┐
|
||||||
|
▼ ▼
|
||||||
|
MySQL Redis
|
||||||
|
(数据存储) (缓存/验证码)
|
||||||
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## ⚡ 快速开始
|
## 🛠️ 技术栈
|
||||||
|
|
||||||
### 1️⃣ 克隆代码
|
| 技术 | 版本 |
|
||||||
|
|------|------|
|
||||||
|
| Python | 3.12+ |
|
||||||
|
| FastAPI | 0.104+ |
|
||||||
|
| MySQL | 5.7+ |
|
||||||
|
| Redis | 7.x+ |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ⚙️ 环境变量
|
||||||
|
|
||||||
|
复制并修改:
|
||||||
|
|
||||||
```bash
|
```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
|
cd PerToolBoxServer
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2️⃣ 创建虚拟环境
|
### 2. 创建环境
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
python3.12 -m venv venv
|
python3.12 -m venv venv
|
||||||
source venv/bin/activate
|
source venv/bin/activate
|
||||||
```
|
```
|
||||||
|
|
||||||
### 3️⃣ 安装依赖
|
### 3. 安装依赖
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pip install -r requirements.txt
|
pip install -r requirements.txt
|
||||||
```
|
```
|
||||||
|
|
||||||
### 4️⃣ 配置环境变量
|
### 4. 初始化数据库
|
||||||
|
|
||||||
```bash
|
|
||||||
cp .env.example .env
|
|
||||||
```
|
|
||||||
|
|
||||||
编辑 `.env` 文件,填写数据库、Redis、短信等配置
|
|
||||||
|
|
||||||
### 5️⃣ 初始化数据库
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
mysql -u root -p < scripts/init_db.sql
|
mysql -u root -p < scripts/init_db.sql
|
||||||
```
|
```
|
||||||
|
|
||||||
### 6️⃣ 启动服务
|
### 5. 启动服务
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
uvicorn backend.main:app --host 0.0.0.0 --port 8000 --reload
|
uvicorn backend.main:app --host 0.0.0.0 --port 9999 --reload
|
||||||
```
|
|
||||||
|
|
||||||
### 7️⃣ 访问 API 文档
|
|
||||||
|
|
||||||
```
|
|
||||||
http://localhost:8000/api/v1/docs
|
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## ⚙️ 部署(systemd)
|
## 🌐 反向代理(Nginx)
|
||||||
|
|
||||||
### 创建服务文件
|
```nginx
|
||||||
|
location /api/ {
|
||||||
路径:`/etc/systemd/system/pertoolbox.service`
|
proxy_pass http://127.0.0.1:9999/api/;
|
||||||
|
proxy_set_header Host $host;
|
||||||
```ini
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
[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
|
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 📡 API 端点
|
## 📚 API 文档
|
||||||
|
|
||||||
| 模块 | 端点 | 说明 |
|
启动后访问:
|
||||||
| -- | --------------------------- | ----------- |
|
|
||||||
| 认证 | `/api/v1/auth/*` | 注册、登录、发送验证码 |
|
- http://your-server:9999/docs
|
||||||
| 用户 | `/api/v1/user/*` | 个人信息 |
|
- http://your-server:9999/redoc
|
||||||
| 待办 | `/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` | 热度统计 |
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🔧 配置说明
|
## 📁 项目结构
|
||||||
|
|
||||||
详见 `.env.example` 文件。
|
PerToolBoxServer/
|
||||||
|
├── backend/ # 核心代码
|
||||||
|
├── scripts/ # 数据库脚本
|
||||||
|
├── requirements.txt
|
||||||
|
└── .env.example
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 📜 许可证
|
## 📞 联系方式
|
||||||
|
|
||||||
本项目基于 **AGPL v3** 开源协议发布。
|
- Git:https://hz-gitea.sea-studio.top/Sea-Studio/PerToolBoxServer
|
||||||
|
- 邮箱:admin@sea-studio.top
|
||||||
|
|||||||
Reference in New Issue
Block a user