156 lines
2.5 KiB
Markdown
156 lines
2.5 KiB
Markdown
# PerToolBox Server - 后端服务
|
||
|
||
> 基于 FastAPI 的个人工具箱后端 API
|
||
|
||
---
|
||
|
||
## 📋 项目信息
|
||
|
||
- 项目名称:PerToolBox Server
|
||
- 项目类型:RESTful API 服务
|
||
- 版权所有:Sea Network Technology Studio
|
||
- 权利人:Canglan
|
||
- 开源协议:AGPL v3
|
||
- 联系方式:admin@sea-studio.top
|
||
|
||
---
|
||
|
||
## ✨ 功能模块
|
||
|
||
### 🔐 用户系统
|
||
- 手机验证码登录
|
||
- 邮箱验证码登录
|
||
|
||
### 📝 数据功能
|
||
- 待办事项管理
|
||
- 便签本
|
||
|
||
### 🧰 工具模块
|
||
- 密码生成器
|
||
- 二维码生成
|
||
- 加密工具箱(Hash / Base64 / URL / AES)
|
||
- JSON 校验与格式化
|
||
|
||
### 📊 统计模块
|
||
- 接口访问热度统计
|
||
|
||
---
|
||
|
||
## 🏗️ 系统架构
|
||
|
||
```text
|
||
Client (Web / Mobile)
|
||
│
|
||
▼
|
||
Nginx
|
||
│
|
||
▼
|
||
FastAPI
|
||
┌───────┴────────┐
|
||
▼ ▼
|
||
MySQL Redis
|
||
(数据存储) (缓存/验证码)
|
||
```
|
||
|
||
---
|
||
|
||
## 🛠️ 技术栈
|
||
|
||
| 技术 | 版本 |
|
||
|------|------|
|
||
| Python | 3.12+ |
|
||
| FastAPI | 0.104+ |
|
||
| MySQL | 5.7+ |
|
||
| Redis | 7.x+ |
|
||
|
||
---
|
||
|
||
## ⚙️ 环境变量
|
||
|
||
复制并修改:
|
||
|
||
```bash
|
||
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. 创建环境
|
||
|
||
```bash
|
||
python3.12 -m venv venv
|
||
source venv/bin/activate
|
||
```
|
||
|
||
### 3. 安装依赖
|
||
|
||
```bash
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
### 4. 初始化数据库
|
||
|
||
```bash
|
||
mysql -u root -p < scripts/init_db.sql
|
||
```
|
||
|
||
### 5. 启动服务
|
||
|
||
```bash
|
||
uvicorn backend.main:app --host 0.0.0.0 --port 9999 --reload
|
||
```
|
||
|
||
---
|
||
|
||
## 🌐 反向代理(Nginx)
|
||
|
||
```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 文档
|
||
|
||
启动后访问:
|
||
|
||
- http://your-server:9999/docs
|
||
- http://your-server:9999/redoc
|
||
|
||
---
|
||
|
||
## 📁 项目结构
|
||
|
||
PerToolBoxServer/
|
||
├── backend/ # 核心代码
|
||
├── scripts/ # 数据库脚本
|
||
├── requirements.txt
|
||
└── .env.example
|
||
|
||
---
|
||
|
||
## 📞 联系方式
|
||
|
||
- Git:https://hz-gitea.sea-studio.top/Sea-Studio/PerToolBoxServer
|
||
- 邮箱:admin@sea-studio.top
|