132 lines
2.5 KiB
Markdown
132 lines
2.5 KiB
Markdown
# 百盘搜 (BPS)
|
|
|
|
一个聚合网盘资源搜索的 Web 应用程序。
|
|
|
|
## 功能特点
|
|
|
|
- 支持多个网盘源(百度网盘、夸克网盘、UC网盘、迅雷网盘)
|
|
- 实时搜索和结果过滤
|
|
- 一键获取临时分享链接
|
|
- 自动清理过期资源
|
|
|
|
## 技术栈
|
|
|
|
- 前端:Nuxt.js (Vue 3) + TypeScript + Tailwind CSS
|
|
- 后端:Express.js + TypeScript
|
|
- 数据库:MySQL 8.0 + Prisma ORM
|
|
- 缓存:Redis
|
|
- 部署:Docker + Docker Compose
|
|
|
|
## 开发环境设置
|
|
|
|
### 前置要求
|
|
|
|
- Node.js 20+
|
|
- Docker 和 Docker Compose
|
|
- MySQL 8.0
|
|
- Redis 7.0
|
|
|
|
### 安装步骤
|
|
|
|
1. 克隆仓库:
|
|
```bash
|
|
git clone https://github.com/yourusername/bps.git
|
|
cd bps
|
|
```
|
|
|
|
2. 安装依赖:
|
|
```bash
|
|
# 安装前端依赖
|
|
cd frontend
|
|
npm install
|
|
|
|
# 安装后端依赖
|
|
cd ../backend
|
|
npm install
|
|
```
|
|
|
|
3. 配置环境变量:
|
|
```bash
|
|
# 后端
|
|
cp backend/.env.example backend/.env
|
|
# 编辑 .env 文件,填入必要的配置信息
|
|
```
|
|
|
|
4. 初始化数据库:
|
|
```bash
|
|
cd backend
|
|
npx prisma migrate dev
|
|
```
|
|
|
|
5. 启动开发服务器:
|
|
```bash
|
|
# 启动前端(在 frontend 目录下)
|
|
npm run dev
|
|
|
|
# 启动后端(在 backend 目录下)
|
|
npm run dev
|
|
```
|
|
|
|
## 使用 Docker 部署
|
|
|
|
1. 构建和启动所有服务:
|
|
```bash
|
|
docker-compose up -d
|
|
```
|
|
|
|
2. 初始化数据库(首次部署时):
|
|
```bash
|
|
docker-compose exec backend npx prisma migrate deploy
|
|
```
|
|
|
|
3. 查看日志:
|
|
```bash
|
|
docker-compose logs -f
|
|
```
|
|
|
|
## 项目结构
|
|
|
|
```
|
|
bps/
|
|
├── frontend/ # Nuxt.js 前端应用
|
|
├── backend/ # Express.js 后端服务
|
|
│ ├── src/
|
|
│ │ ├── adapters/ # 网盘适配器
|
|
│ │ ├── api/ # API 路由
|
|
│ │ ├── services/ # 业务逻辑
|
|
│ │ └── utils/ # 工具函数
|
|
│ └── prisma/ # 数据库模型和迁移
|
|
├── doc/ # 项目文档
|
|
└── docker-compose.yml # Docker 配置
|
|
```
|
|
|
|
## API 文档
|
|
|
|
### 搜索接口
|
|
|
|
```
|
|
GET /api/search?keyword={keyword}
|
|
```
|
|
|
|
### 获取链接接口
|
|
|
|
```
|
|
POST /api/generate-link
|
|
Content-Type: application/json
|
|
|
|
{
|
|
"itemId": "string"
|
|
}
|
|
```
|
|
|
|
## 贡献指南
|
|
|
|
1. Fork 项目
|
|
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
|
|
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
|
|
4. 推送到分支 (`git push origin feature/AmazingFeature`)
|
|
5. 创建 Pull Request
|
|
|
|
## 许可证
|
|
|
|
MIT License - 详见 [LICENSE](LICENSE) 文件 |