@@ -0,0 +1,91 @@
|
||||
# PDF 预览系统 (PDF Preview Site)
|
||||
|
||||
这是一个安全、现代化的 PDF 预览系统,具有管理员后台和公共预览功能。
|
||||
|
||||
## 🖥 本地开发
|
||||
|
||||
前后端分开运行:
|
||||
|
||||
```bash
|
||||
# 终端 1:启动后端(API 服务)
|
||||
cd backend && npm install && npm start
|
||||
# → http://localhost:3000
|
||||
|
||||
# 终端 2:启动前端(开发服务器,支持热更新)
|
||||
cd frontend && npm install && npm run dev
|
||||
# → http://localhost:5173
|
||||
```
|
||||
|
||||
## 📦 打包 & 部署到服务器
|
||||
|
||||
只需要上传 `backend` 文件夹即可,步骤如下:
|
||||
|
||||
### 第一步:在本地打包前端
|
||||
|
||||
```bash
|
||||
cd frontend
|
||||
npm run build
|
||||
```
|
||||
|
||||
执行后,前端产物会自动输出到 `backend/public/` 目录中。
|
||||
|
||||
### 第二步:上传 backend 文件夹到服务器
|
||||
|
||||
将整个 `backend/` 文件夹上传到服务器(通过 FTP/SCP/Git 均可)。
|
||||
|
||||
> [!IMPORTANT]
|
||||
> 上传时注意包含以下内容:
|
||||
> - `backend/public/`(前端打包产物,刚才 build 生成的)
|
||||
> - `backend/uploads/`(已上传的 PDF 文件)
|
||||
> - `backend/database.sqlite`(数据库文件,包含管理员账号和文档记录)
|
||||
>
|
||||
> 可以把 `backend/node_modules/` 排除,在服务器上重新 `npm install` 即可。
|
||||
|
||||
### 第三步:在服务器上启动
|
||||
|
||||
```bash
|
||||
cd backend
|
||||
npm install # 仅首次或依赖变更时需要
|
||||
npm start # 启动服务
|
||||
```
|
||||
|
||||
访问 `http://服务器IP:3000` 即可看到网站,**前后端都由这一个进程提供服务**。
|
||||
|
||||
### 第四步(推荐):用 PM2 长期运行
|
||||
|
||||
```bash
|
||||
npm install pm2 -g # 全局安装 PM2(仅首次)
|
||||
pm2 start server.js --name pdf-site # 后台启动
|
||||
pm2 save && pm2 startup # 设置开机自启
|
||||
```
|
||||
|
||||
常用管理命令:
|
||||
```bash
|
||||
pm2 status # 查看运行状态
|
||||
pm2 logs pdf-site # 查看日志
|
||||
pm2 restart pdf-site # 重启服务
|
||||
```
|
||||
|
||||
## 🔐 管理后台
|
||||
|
||||
- **后台地址**: `http://服务器IP:3000/admin`
|
||||
- **默认用户名**: `admin`
|
||||
- **默认密码**: `123456`
|
||||
|
||||
> [!WARNING]
|
||||
> 生产环境请务必修改默认密码!详见修改方法:在 `backend` 目录运行以下命令(替换新用户名/密码):
|
||||
> ```bash
|
||||
> node -e "const db=require('./database');const bcrypt=require('bcryptjs');const h=bcrypt.hashSync('新密码',10);db.prepare('UPDATE users SET username=?,password=? WHERE id=1').run('新用户名',h);console.log('已更新');"
|
||||
> ```
|
||||
|
||||
## 🛠 技术栈
|
||||
- **前端**: Vue 3 + Vite + Glassmorphism UI
|
||||
- **后端**: Node.js + Express(同时托管前端静态文件)
|
||||
- **数据库**: SQLite (better-sqlite3)
|
||||
- **PDF 处理**: 提取前两页进行预览
|
||||
|
||||
## 📁 目录结构
|
||||
- `/frontend`: Vue 3 源码(本地开发用,部署后不需要上传)
|
||||
- `/backend`: Node.js 服务 + 前端打包产物(部署只需上传这个)
|
||||
- `/backend/public/`: 前端 build 产物(由 `npm run build` 自动生成)
|
||||
- `/backend/database.sqlite`: 存储文档信息和管理员账号
|
||||
Reference in New Issue
Block a user