paper-burner/tests/QUICKSTART.md

406 lines
7.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Paper Burner X - 快速开始指南
## 🚀 快速部署
### 前置要求
- Docker 和 Docker Compose
- 或者 Node.js 20+ 和 PostgreSQL 16+
---
## 方式一:使用 Docker Compose推荐
### 1. 克隆或下载项目
```bash
git clone https://github.com/your-repo/paper-burner-x.git
cd paper-burner-x
```
### 2. 配置环境变量
复制示例配置文件:
```bash
cp .env.example .env
```
编辑 `.env` 文件,**务必修改以下关键配置**
```bash
# 数据库密码(必改)
DB_PASSWORD=your_secure_password_here
# JWT 密钥必改至少32字符
JWT_SECRET=your_super_secret_jwt_key_min_32_chars
# API Keys 加密密钥必改至少32字符
ENCRYPTION_SECRET=your_encryption_secret_min_32_chars
# 管理员账户(首次启动使用)
ADMIN_EMAIL=admin@yourdomain.com
ADMIN_PASSWORD=your_admin_password
```
**生成安全密钥的方法:**
```bash
# Linux/Mac
openssl rand -base64 32
# 或使用 Node.js
node -e "console.log(require('crypto').randomBytes(32).toString('base64'))"
# Windows PowerShell
[Convert]::ToBase64String((1..32 | ForEach-Object { Get-Random -Maximum 256 }))
```
### 3. 启动服务
```bash
docker-compose up -d
```
首次启动会自动:
- 拉取 PostgreSQL 和应用镜像
- 创建数据库
- 运行数据库迁移
- 创建管理员账户
### 4. 验证部署
访问:
- 应用主页http://localhost:3000
- 管理面板http://localhost:3000/admin
- API 健康检查http://localhost:3000/api/health
### 5. 登录管理员账户
使用 `.env` 中配置的管理员邮箱和密码登录管理面板。
**⚠️ 重要:首次登录后请立即修改管理员密码!**
---
## 方式二:本地开发部署
### 1. 安装依赖
```bash
# 安装前端依赖(如有)
npm install
# 安装后端依赖
cd server
npm install
```
### 2. 启动 PostgreSQL
```bash
# 使用 Docker 启动 PostgreSQL
docker run -d \
--name paperburner-db \
-e POSTGRES_USER=paperburner \
-e POSTGRES_PASSWORD=changeme \
-e POSTGRES_DB=paperburner \
-p 5432:5432 \
postgres:16-alpine
# 或使用本地 PostgreSQL 并创建数据库
createdb paperburner
```
### 3. 配置环境变量
```bash
cd server
cp ../.env.example ../.env
# 编辑 .env 文件
```
### 4. 运行数据库迁移
```bash
cd server
npx prisma generate
npx prisma migrate deploy
```
### 5. 启动后端服务
```bash
cd server
npm start
```
### 6. 访问应用
http://localhost:3000
---
## 📊 管理员功能
### 登录管理面板
访问 `/admin` 并使用管理员账户登录。
### 主要功能
1. **用户管理**
- 查看所有用户
- 启用/禁用用户账户
- 查看用户详细信息
2. **系统统计**
- 总用户数、活跃用户
- 文档处理量
- 存储使用情况
3. **配额管理**
- 设置用户文档数量限制
- 设置存储空间限制
- 查看当前使用量
4. **系统配置**
- 全局设置
- 自定义模型源站管理
---
## 👤 用户注册和使用
### 注册账户
如果允许用户注册(默认允许),用户可以:
1. 访问主页
2. 点击"注册"
3. 填写邮箱、密码、姓名
4. 提交注册
### 配置 API Keys
登录后:
1. 进入设置页面
2. 添加翻译服务的 API Keys如 DeepSeek、Gemini、Claude 等)
3. 配置 OCR 服务 API KeysMinerU 或 Doc2X
**注意:所有 API Keys 都会自动加密存储,确保安全。**
### 上传和处理文档
1. 上传 PDF 文件
2. 选择 OCR 服务和翻译模型
3. 开始处理
4. 查看结果、下载译文
### 查看历史记录
在历史记录页面可以:
- 查看所有处理过的文档
- 重新查看翻译结果
- 添加标注和高亮
- 导出为 DOCX、Markdown 等格式
---
## 🔧 高级配置
### Nginx 反向代理(生产环境)
如需使用 Nginx取消注释 `docker-compose.yml` 中的 nginx 服务:
```yaml
services:
nginx:
# ... nginx 配置
profiles:
- production
```
然后使用:
```bash
docker-compose --profile production up -d
```
### 自定义端口
`.env` 中修改:
```bash
APP_PORT=8080 # 应用端口
DB_PORT=5433 # 数据库端口
NGINX_PORT=80 # Nginx 端口
```
### CORS 配置
如果前后端分离部署,配置允许的域名:
```bash
CORS_ORIGIN=https://yourdomain.com,https://app.yourdomain.com
```
### 文件上传大小限制
```bash
MAX_UPLOAD_SIZE=100 # MB
```
---
## 🛠️ 常见问题
### 1. 数据库连接失败
**问题**: `Error: connect ECONNREFUSED`
**解决**:
- 检查 PostgreSQL 是否运行
- 检查 `DATABASE_URL` 配置是否正确
- 确认数据库端口没有被占用
### 2. 管理员账户未创建
**问题**: 无法登录管理面板
**解决**:
```bash
# 查看容器日志
docker-compose logs app
# 应该看到:
# ✓ Admin account created successfully
# Email: admin@paperburner.local
# Password: admin123456
# 如果未创建,手动创建:
docker-compose exec app node -e "require('./server/src/utils/initAdmin.js').initializeAdmin()"
```
### 3. 数据库迁移失败
**问题**: Prisma 迁移错误
**解决**:
```bash
# 重置数据库(开发环境)
docker-compose exec app npx prisma migrate reset
# 生产环境
docker-compose exec app npx prisma migrate deploy
```
### 4. API Keys 加密错误
**问题**: 解密失败
**解决**:
- 确保 `ENCRYPTION_SECRET` 没有改变
- 如果更换了密钥,需要重新添加所有 API Keys
### 5. 配额检查不生效
**问题**: 用户超出配额仍可创建文档
**解决**:
- 检查用户是否有配额设置:`GET /api/admin/users/:userId/quota`
- 设置配额:`PUT /api/admin/users/:userId/quota`
---
## 📝 数据备份
### 备份数据库
```bash
# 使用 Docker
docker-compose exec postgres pg_dump -U paperburner paperburner > backup.sql
# 或使用 pg_dump
pg_dump -U paperburner -h localhost -p 5432 paperburner > backup.sql
```
### 恢复数据库
```bash
# 使用 Docker
docker-compose exec -T postgres psql -U paperburner paperburner < backup.sql
# 或使用 psql
psql -U paperburner -h localhost -p 5432 paperburner < backup.sql
```
### 备份上传文件
```bash
# 备份 Docker Volume
docker run --rm \
-v paperburner_app_uploads:/data \
-v $(pwd):/backup \
alpine tar czf /backup/uploads-backup.tar.gz -C /data .
```
---
## 🔐 安全建议
### 生产环境部署清单
- [ ] 修改所有默认密码
- [ ] 使用强随机密钥JWT_SECRET、ENCRYPTION_SECRET
- [ ] 配置 HTTPS使用 Nginx + Let's Encrypt
- [ ] 设置防火墙规则
- [ ] 定期备份数据库
- [ ] 监控系统日志
- [ ] 启用访问日志
- [ ] 限制管理员 IP 范围(可选)
- [ ] 配置邮件通知(可选)
### HTTPS 配置示例
`docker/nginx.conf` 中配置 SSL
```nginx
server {
listen 443 ssl http2;
server_name yourdomain.com;
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/key.pem;
location / {
proxy_pass http://app:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
```
---
## 📚 下一步
- 阅读 [BACKEND_IMPROVEMENTS.md](BACKEND_IMPROVEMENTS.md) 了解详细功能
- 查看 [API_REFERENCE.md](API_REFERENCE.md) 学习 API 使用
- 参考 [schema.prisma](server/prisma/schema.prisma) 了解数据模型
---
## 💬 获取帮助
- GitHub Issues: https://github.com/your-repo/paper-burner-x/issues
- 文档: https://docs.yourproject.com
- Email: support@yourproject.com
---
**祝使用愉快!🎉**