更新readme文档

This commit is contained in:
lei 2024-11-19 12:23:35 +08:00
parent 6959d47984
commit 74e994dd31
4 changed files with 591 additions and 95 deletions

272
DEPLOY.md Normal file
View File

@ -0,0 +1,272 @@
# AiPan NetDisk Search 部署文档
本文档详细说明了如何部署 AiPan NetDisk Search 项目。项目支持两种部署方式Docker 部署和传统部署。
## 环境要求
- Node.js v20.18.0
- PostgreSQL 数据库(版本 12+
- pnpm 包管理器
- Docker & Docker Compose (如果使用 Docker 部署)
## 1. Docker 部署(推荐)
### 1.1 准备工作
1. 确保安装了 Docker 和 Docker Compose
2. 复制环境变量文件:
```bash
cp .env.example .env
```
3. 修改 `.env` 文件,配置必要的环境变量:
```bash
# 数据库配置PostgreSQL
DATABASE_URL="postgresql://username:password@host:5432/database_name"
DATABASE_SCHEMA="public"
SHADOW_DATABASE_URL="postgresql://username:password@host:5432/shadow_database_name"
# 管理员配置
ADMIN_USER="admin"
ADMIN_PASSWORD="your_password"
ADMIN_EMAIL="admin@example.com"
# JWT配置
JWT_SECRET="your_jwt_secret"
```
### 1.2 使用 Docker Compose 部署
1. 数据库迁移:
```bash
# 生成 Prisma 客户端
npx prisma generate
# 执行数据库迁移
npx prisma migrate deploy
```
2. 构建并启动容器:
```bash
docker-compose up -d
```
3. 查看容器运行状态:
```bash
docker-compose ps
```
4. 查看应用日志:
```bash
docker-compose logs -f aipan-netdisk-search
```
### 1.3 更新部署
1. 拉取最新代码:
```bash
git pull origin main
```
2. 执行数据库迁移(如果有新的迁移):
```bash
npx prisma migrate deploy
```
3. 重新构建并启动容器:
```bash
docker-compose up -d --build
```
## 2. 传统部署
### 2.1 环境准备
1. 安装 Node.js (v20.18.0)
```bash
# 使用 nvm 安装 Node.js
nvm install 20.18.0
nvm use 20.18.0
```
2. 安装 pnpm
```bash
npm install -g pnpm
```
3. 安装并配置 PostgreSQL 数据库:
- 创建数据库和用户
- 设置适当的访问权限
- 确保数据库可以从应用服务器访问
### 2.2 项目部署
1. 克隆项目:
```bash
git clone <项目地址>
cd aipan-netdisk-search
```
2. 安装依赖:
```bash
pnpm install
```
3. 配置环境变量:
```bash
cp .env.example .env
# 编辑 .env 文件,配置必要的环境变量
```
4. 数据库设置:
```bash
# 生成 Prisma 客户端
npx prisma generate
# 执行数据库迁移
npx prisma migrate deploy
```
5. 构建项目:
```bash
npm run build
```
6. 启动服务:
```bash
# 使用 PM2 启动(推荐)
cp ecosystem.config.cjs.example ecosystem.config.cjs
# 编辑 ecosystem.config.cjs 配置文件
pm2 start ecosystem.config.cjs
# 或直接启动
npm run start
```
## 3. 环境变量说明
必要的环境变量配置:
```env
# 数据库配置
DATABASE_URL="postgresql://username:password@host:5432/database_name"
DATABASE_SCHEMA="public"
SHADOW_DATABASE_URL="postgresql://username:password@host:5432/shadow_database_name"
# 管理员配置
ADMIN_USER="admin"
ADMIN_PASSWORD="your_password"
ADMIN_EMAIL="admin@example.com"
# JWT配置
JWT_SECRET="your_jwt_secret"
# 应用配置
NUXT_HOST="0.0.0.0"
NUXT_PORT=3000
```
## 4. 数据库管理
### 4.1 数据模型
项目使用 Prisma ORM主要数据模型包括
- User用户
- ResourceType资源类型
- Resource资源
- Post文章
- PostCategory文章分类
- AlistAlist 源)
### 4.2 数据库维护
1. 查看迁移状态:
```bash
npx prisma migrate status
```
2. 创建新的迁移:
```bash
npx prisma migrate dev --name your_migration_name
```
3. 重置数据库:
```bash
npx prisma migrate reset
```
### 4.3 数据库备份
建议定期备份数据库:
```bash
pg_dump -U username -h hostname database_name > backup.sql
```
## 5. 常见问题
### 5.1 数据库连接问题
- 检查数据库连接字符串格式
- 确认数据库服务器防火墙设置
- 验证数据库用户权限
### 5.2 端口占用问题
如果 3000 端口被占用,可以通过以下方式修改:
- Docker 部署:修改 `docker-compose.yml` 中的端口映射
- 传统部署:修改 `.env` 文件中的 `NUXT_PORT`
### 5.3 性能优化
- 使用连接池管理数据库连接
- 配置适当的 PM2 实例数
- 优化数据库查询和索引
- 考虑使用 Prisma Accelerate
## 6. 监控和维护
### 6.1 应用监控
1. 使用 PM2 监控:
```bash
pm2 monit
```
2. 查看应用日志:
```bash
# PM2 日志
pm2 logs
# Docker 日志
docker-compose logs -f
```
### 6.2 数据库监控
- 监控连接数
- 监控查询性能
- 监控磁盘使用情况
### 6.3 定期维护
1. 更新依赖包
2. 检查安全更新
3. 数据库备份
4. 日志清理
5. 性能优化
## 7. 安全建议
1. 数据库安全:
- 使用强密码
- 限制数据库访问IP
- 定期更新数据库版本
- 加密敏感数据
2. 应用安全:
- 使用 HTTPS
- 定期更新依赖
- 使用安全的 JWT 密钥
- 实施速率限制
3. 服务器安全:
- 配置防火墙
- 定期安全更新
- 监控异常访问
- 限制端口访问
如有任何问题,请查看:
- 应用日志
- Prisma 错误日志
- 数据库日志
- Docker 日志

View File

@ -1,5 +1,5 @@
# 第一阶段:构建阶段
FROM node:18-alpine AS builder
FROM node:20.18.0-alpine AS builder
LABEL authors="Lei"
# 设置工作目录
@ -24,7 +24,7 @@ RUN npx prisma generate
RUN npm run build
# 第二阶段:运行阶段
FROM node:18-alpine
FROM node:20.18.0-alpine
LABEL authors="Lei"
# 设置工作目录

213
README.md
View File

@ -1,121 +1,148 @@
# 爱盼-网盘资源搜索Web [欢迎打赏](https://www.aipan.me/donate)
🔥 爱盼-网盘资源搜索:是一个免费开源项目!
[欢迎打赏](https://www.aipan.me/donate)
-------------------
👉 [爱盼-网盘资源搜索](https://www.aipan.me)
### 🔥更新日志
- tv播放
- 新增Alist源聚合播放
- 新增批量删除功能
- 新增博客功能 (分支:[feat-admin-panel](https://github.com/unilei/aipan-netdisk-search/tree/feat-add-admin-panel)
- 新增批量上传数据 [csv示例](/assets//readme//demo/demo-multi.csv) [xlsx 示例](https://r2cf.aipan.me/readme/demo/demo-multi.xls)
- 增加后台管理, 访问路径:`/login` | `/admin/dashboard` | `/admin/clouddrive`
- 后台可以增加自己的网盘资源
----
### 建议
项目使用的是第三方的API对ip有访问限制建议自己部署使用。
## 快速开始
### 在 Vercel 上部署
`手动安装一样的只需要配置对应的env就行了`
[Vercel部署文档](/README_VERCEL.md)
# 爱盘-网盘资源搜索 Web
[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/unilei/aipan-netdisk-search.git&project-name=aipan-netdisk-search&repository-name=aipan-netdisk-search)
### Docker执行推荐使用docker compose
#### Docker-compose
🔥 爱盘-网盘资源搜索是一个开源的网盘资源聚合搜索平台。
##### 第一步
## 功能特点
```在项目根目录创建.env文件```
- 🎯 多源聚合搜索
- 📺 在线视频播放
- 🗄️ Alist 源聚合
- 📝 博客系统
- 🔐 后台管理系统
- 📊 资源管理
- 🚀 批量导入导出
##### 编译
## 技术栈
- 💻 Frontend
- Nuxt.js 3
- Vue 3
- TailwindCSS
- Element Plus
- 🛠 Backend
- Node.js v20.18.0
- PostgreSQL
- Prisma ORM
- JWT Authentication
## 在线演示
- 👉 [爱盘-网盘资源搜索](https://www.aipan.me)
- 💝 [欢迎打赏](https://www.aipan.me/donate)
## 快速开始
### 环境要求
- Node.js v20.18.0
- PostgreSQL 12+
- pnpm 包管理器
### 部署方式
1. **Vercel 部署**(推荐)
- 查看 [Vercel 部署文档](/VERCEL.md)
- 点击上方 "Deploy with Vercel" 按钮一键部署
2. **Docker 部署**(推荐)
- 查看 [Docker 部署文档](/DEPLOY.md#docker-部署推荐)
```bash
# 1. 配置环境变量
cp .env.example .env
# 2. 构建并运行
docker compose up -d
```
3. **传统部署**
- 查看 [传统部署文档](/DEPLOY.md#传统部署)
## 最新更新
- ✨ TV 播放功能
- 🔄 Alist 源聚合播放
- 🗑️ 批量删除功能
- 📝 博客功能
- 📤 批量上传数据
- [CSV 示例](/assets/readme/demo/demo-multi.csv)
- [XLSX 示例](https://r2cf.aipan.me/readme/demo/demo-multi.xls)
- 🔐 后台管理系统
- 访问路径:`/login`、`/admin/dashboard`、`/admin/clouddrive`
- 支持自定义网盘资源管理
## 项目结构
```bash
docker compose build
```
##### 运行
```bash
docker compose up -d
aipan-netdisk-search/
├── assets/ # 静态资源
├── components/ # Vue 组件
├── layouts/ # 布局组件
├── pages/ # 页面组件
├── prisma/ # 数据库模型和迁移
├── public/ # 公共文件
├── server/ # 服务端 API
├── stores/ # Pinia 状态管理
└── utils/ # 工具函数
```
##### 停止
## 开发指南
```bash
docker compose down
```
## 自己部署(不推荐)
### 1. 克隆项目
```bash
git clone https://github.com/unilei/aipan-netdisk-search.git
```
### 2. 安装依赖
```bash
# npm
npm install
# pnpm
# 1. 安装依赖
pnpm install
# yarn
yarn install
```
### 3. 设置prisma
```bash
# 2. 配置环境变量
cp .env.example .env
# 3. 数据库设置
npx prisma generate
npx prisma migrate deploy
```
### 3. 运行到浏览器
```bash
# npm
npm run dev
# pnpm
# 4. 启动开发服务器
pnpm run dev
# yarn
yarn dev
```
### 4. 在浏览器打开 [http://localhost:3001](http://localhost:3001)
## API 说明
![success_deploy.jpg](https://r2cf.aipan.me/readme/screen-6.png)
![success_deploy.jpg](https://r2cf.aipan.me/readme/screen-5.png)
后台管理 API 路径:
- 登录:`/login`
- 仪表盘:`/admin/dashboard`
- 网盘管理:`/admin/clouddrive`
#### 如何部署到自己服务器? NUXT.JS 打包部署文档
## 注意事项
[部署文档](https://nuxt.com/docs/getting-started/deployment)
- 项目使用第三方 API对 IP 有访问限制
- 建议自行部署使用
- 确保数据库配置正确
- 定期备份重要数据
Copyright (C) <2024> <aipan.me>
## 贡献指南
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
1. 创建特性分支:`git checkout -b feature/AmazingFeature`
2. 提交更改:`git commit -m 'Add some AmazingFeature'`
3. 推送分支:`git push origin feature/AmazingFeature`
4. 提交 Pull Request
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
## 许可证
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情
## 截图展示
![部署成功截图](https://r2cf.aipan.me/readme/screen-6.png)
## 支持项目
如果这个项目对你有帮助,欢迎:
1. 🌟 给项目点个 Star
2. 💝 [打赏支持](https://www.aipan.me/donate)
## 联系方式
- 项目地址:[GitHub](https://github.com/unilei/aipan-netdisk-search)
- 问题反馈:[Issues](https://github.com/unilei/aipan-netdisk-search/issues)
- 功能建议:[Discussions](https://github.com/unilei/aipan-netdisk-search/discussions)

197
VERCEL.md Normal file
View File

@ -0,0 +1,197 @@
# Vercel 部署指南
本文档详细说明了如何将 AiPan NetDisk Search 项目部署到 Vercel 平台。
## 1. 准备工作
### 1.1 Vercel 账号准备
1. 访问 [Vercel 官网](https://vercel.com)
2. 使用 GitHub 账号登录或注册新账号
3. 如果是新账号,完成邮箱验证
### 1.2 项目准备
1. 确保你的项目已经推送到 GitHub 仓库
2. 确保项目根目录包含以下文件:
- `vercel.json`(已配置)
- `package.json`
- `.env.example`
## 2. 部署步骤
### 2.1 导入项目
1. 登录 Vercel 控制台
2. 点击 "Import Project" 或 "New Project"
3. 选择你的 GitHub 仓库
4. 如果没有看到你的仓库,点击 "Configure GitHub App" 添加仓库访问权限
### 2.2 配置部署选项
1. **项目名称**:输入你想要的项目名称
2. **Framework Preset**:选择 "Nuxt.js"
3. **Root Directory**:保持默认(如果你的项目在根目录)
### 2.3 环境变量配置
在 Vercel 项目设置中配置以下环境变量:
```bash
# 数据库配置PostgreSQL
DATABASE_URL="postgresql://username:password@host:5432/database_name"
DATABASE_SCHEMA="public"
SHADOW_DATABASE_URL="postgresql://username:password@host:5432/shadow_database_name"
# 管理员配置
ADMIN_USER="admin"
ADMIN_PASSWORD="your_password"
ADMIN_EMAIL="admin@example.com"
# JWT配置
JWT_SECRET="your_jwt_secret"
# 其他必要的环境变量
```
注意:
- 确保使用生产环境的 PostgreSQL 数据库 URL
- 数据库需要支持 Prisma 的所有功能,建议使用:
- [Vercel Postgres](https://vercel.com/docs/storage/vercel-postgres)
- [Supabase](https://supabase.com/)
- [Railway](https://railway.app/)
- 所有密码和密钥都要使用强密码
- 不要使用开发环境的配置
### 2.4 数据库迁移
在首次部署前,需要确保数据库已经完成迁移:
1. 本地运行迁移命令:
```bash
# 确保本地环境变量配置正确
npx prisma migrate deploy
```
2. 或者在部署后通过 Vercel CLI 运行:
```bash
vercel env pull .env.production
npx prisma migrate deploy
```
### 2.5 部署配置
1. **构建命令**
```bash
npx prisma generate && npm run build
```
2. **输出目录**
```bash
.output
```
3. **Node.js 版本**
- 在项目设置中将 Node.js 版本设置为 20.18.0
4. **数据库连接**
- 确保数据库允许来自 Vercel 服务器的连接
- 如果使用外部数据库,配置适当的防火墙规则
- 建议使用连接池优化性能
## 3. 部署
1. 点击 "Deploy" 开始部署
2. 等待部署完成
3. 部署完成后Vercel 会提供一个默认域名例如your-project.vercel.app
## 4. 部署后配置
### 4.1 自定义域名(可选)
1. 在项目设置中点击 "Domains"
2. 添加你的自定义域名
3. 按照 Vercel 的说明配置 DNS 记录
### 4.2 环境变量更新
如果需要更新环境变量:
1. 进入项目设置
2. 点击 "Environment Variables"
3. 添加或修改环境变量
4. 重新部署项目以应用更改
### 4.3 自动部署
默认情况下Vercel 会:
- 自动部署 main/master 分支的更改
- 为每个 PR 创建预览部署
- 可以在项目设置中修改这些行为
## 5. 监控和维护
### 5.1 部署监控
1. 查看部署状态和日志
2. 监控项目性能
3. 查看访问分析
### 5.2 常见问题处理
1. 部署失败:
- 检查构建日志
- 验证环境变量配置
- 确认依赖项版本兼容性
2. 性能问题:
- 使用 Vercel Analytics 监控性能
- 检查数据库连接
- 优化API响应时间
### 5.3 回滚部署
如果新部署出现问题:
1. 在 Deployments 页面找到之前的稳定版本
2. 点击 "..." 菜单
3. 选择 "Promote to Production"
## 6. 最佳实践
1. **环境变量管理**
- 使用不同的环境变量用于开发和生产
- 定期更新敏感信息
- 不要在代码中硬编码敏感信息
2. **部署策略**
- 使用 Git 分支进行功能开发
- 在合并到主分支前测试预览部署
- 保持依赖包更新
3. **监控和日志**
- 定期检查部署日志
- 监控性能指标
- 设置警报通知
## 7. 注意事项
1. **数据库注意事项**
- 确保 PostgreSQL 数据库版本兼容(建议 12+
- 定期备份数据库
- 监控数据库连接数
- 设置适当的连接池大小
- 考虑使用 Prisma Accelerate 优化性能
2. **环境变量**
- 所有必需的环境变量都已配置
- 数据库连接字符串格式正确
- 生产环境使用独立的数据库
3. **API和数据模型**
- 所有 Prisma 模型都已正确迁移
- API 路由正确配置
- CORS 设置适当(已在 vercel.json 中配置)
4. **性能优化**
- 使用适当的数据库索引
- 优化查询性能
- 考虑使用缓存策略
5. **监控和日志**
- 监控数据库查询性能
- 设置数据库告警
- 记录关键操作日志
如遇到问题,请查看:
- Vercel 部署日志
- Prisma 错误日志
- 数据库日志
- 项目 GitHub Issues
- Vercel 文档中心