Files
2026-04-29 18:53:24 +08:00

92 lines
2.8 KiB
Markdown

# 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`: 存储文档信息和管理员账号