# html-preview-system
**Repository Path**: li7hai26/html-preview-system
## Basic Information
- **Project Name**: html-preview-system
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-12-01
- **Last Updated**: 2025-12-01
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# HTML 预览系统启动指南
## 🚀 快速启动
### 1. 环境准备
确保您的系统中已安装以下软件:
- Java 17+
- Node.js 20.19+ (当前是 20.18.0,可能会有警告但仍可工作)
- PostgreSQL 数据库
- Redis (可选,用于缓存)
### 2. 数据库配置
```sql
-- 连接到 PostgreSQL
psql -U postgres
-- 创建数据库
CREATE DATABASE html_preview_db;
-- 运行初始化脚本
\i /home/admin/workspace/html-preview-system/backend/src/main/resources/db/migration/V1__Initialize_Database.sql
```
### 3. 后端启动
```bash
cd /home/admin/workspace/html-preview-system/backend
# 开发模式启动
mvn spring-boot:run -Dspring-boot.run.profiles=dev
# 或者使用生产配置
mvn spring-boot:run -Dspring-boot.run.profiles=prod
```
后端将在 `http://localhost:8080` 启动
### 4. 前端启动
```bash
cd /home/admin/workspace/html-preview-system/frontend
# 安装依赖(如果还没有安装)
npm install
# 启动开发服务器
npm run dev
```
前端将在 `http://localhost:5173` 启动
## 📋 默认账户
系统预设了以下测试账户:
### 管理员账户
- **用户名**: admin
- **密码**: admin123
- **权限**: 管理员
### 演示账户
- **用户名**: demo
- **密码**: user123
- **权限**: 普通用户
## 🔧 配置说明
### 环境变量配置
创建 `.env` 文件或在启动时设置以下环境变量:
```bash
# 数据库配置
DB_HOST=localhost
DB_PORT=5432
DB_NAME=html_preview_db
DB_USERNAME=postgres
DB_PASSWORD=your_password
# Redis 配置
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=
# AWS S3 配置
AWS_REGION=us-east-1
S3_BUCKET=html-preview-files
AWS_ACCESS_KEY_ID=your_access_key
AWS_SECRET_ACCESS_KEY=your_secret_key
# JWT 配置
JWT_SECRET=your_jwt_secret_key_here
JWT_EXPIRATION=86400000
# 文件上传配置
MAX_FILE_SIZE=104857600
MAX_STORAGE_PER_USER=10737418240
```
### 开发环境配置
开发环境使用 H2 内存数据库,无需额外配置:
- 数据库控制台: http://localhost:8080/h2-console
- JDBC URL: `jdbc:h2:mem:testdb`
- 用户名: `sa`
- 密码: 空
## 🧪 功能测试
### 1. 用户认证测试
1. 访问 `http://localhost:5173`
2. 使用默认账户登录
3. 测试注册新用户功能
### 2. 项目管理测试
1. 登录后创建新项目
2. 添加项目成员
3. 测试权限控制
### 3. 文件上传测试
1. 选择项目
2. 上传 ZIP/RAR/7Z/TAR/GZ 文件
3. 查看上传状态和进度
### 4. 文件解压测试
1. 对已上传的文件触发解压
2. 查看解压进度和状态
3. 测试解压失败的错误处理
### 5. 文件预览测试
1. 在解压完成后查看文件列表
2. 预览 HTML 文件
3. 查看图片和其他文档
## 📊 API 端点
### 认证相关
- `POST /api/auth/login` - 用户登录
- `POST /api/auth/register` - 用户注册
- `GET /api/auth/me` - 获取当前用户信息
### 项目管理
- `GET /api/projects` - 获取项目列表
- `POST /api/projects` - 创建项目
- `GET /api/projects/{id}` - 获取项目详情
- `PUT /api/projects/{id}` - 更新项目
- `DELETE /api/projects/{id}` - 删除项目
### 文件管理
- `POST /api/files/upload` - 上传文件
- `GET /api/files/project/{projectId}` - 获取项目文件列表
- `GET /api/files/{id}/download` - 下载文件
- `DELETE /api/files/{id}` - 删除文件
### 解压管理
- `POST /api/extractions/extract/{fileId}` - 触发解压
- `GET /api/extractions/status/{fileId}` - 获取解压状态
- `GET /api/extractions/files/{extractionId}` - 获取解压文件列表
### 文件预览
- `GET /api/preview/file/{extractedFileId}` - 获取文件预览
- `GET /api/preview/tree/{extractionId}` - 获取目录树
- `GET /api/preview/search/{extractionId}` - 搜索文件
## 🐛 故障排除
### 常见问题
1. **前端构建失败**
- 确保 Node.js 版本 >= 20.19
- 删除 `node_modules` 重新安装依赖
2. **后端启动失败**
- 检查数据库连接配置
- 确保端口 8080 未被占用
3. **文件上传失败**
- 检查 S3 配置
- 确认文件大小限制
4. **解压失败**
- 检查磁盘空间
- 确认文件格式支持
### 日志查看
- 后端日志: `/logs/html-preview.log`
- 前端开发服务器日志: 终端输出
## 📝 开发注意事项
1. **安全性**: 生产环境中请更改默认密码和 JWT 密钥
2. **性能**: 大文件处理可能需要调整 JVM 参数
3. **存储**: 确保 S3 存储桶有足够的存储空间
4. **备份**: 定期备份数据库和重要文件
## 🎯 下一步开发
1. 完善文件上传和管理界面
2. 实现预览和历史记录页面
3. 添加项目和版本管理界面
4. 集成测试和性能优化
5. Docker 容器化部署
---
如有问题,请查看日志文件或联系开发团队。