Files
deep/pdf-preview-site/README.md
T
2026-04-29 18:53:24 +08:00

2.8 KiB

PDF 预览系统 (PDF Preview Site)

这是一个安全、现代化的 PDF 预览系统,具有管理员后台和公共预览功能。

🖥 本地开发

前后端分开运行:

# 终端 1:启动后端(API 服务)
cd backend && npm install && npm start
# → http://localhost:3000

# 终端 2:启动前端(开发服务器,支持热更新)
cd frontend && npm install && npm run dev
# → http://localhost:5173

📦 打包 & 部署到服务器

只需要上传 backend 文件夹即可,步骤如下:

第一步:在本地打包前端

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 即可。

第三步:在服务器上启动

cd backend
npm install     # 仅首次或依赖变更时需要
npm start       # 启动服务

访问 http://服务器IP:3000 即可看到网站,前后端都由这一个进程提供服务

第四步(推荐):用 PM2 长期运行

npm install pm2 -g          # 全局安装 PM2(仅首次)
pm2 start server.js --name pdf-site   # 后台启动
pm2 save && pm2 startup     # 设置开机自启

常用管理命令:

pm2 status                  # 查看运行状态
pm2 logs pdf-site           # 查看日志
pm2 restart pdf-site        # 重启服务

🔐 管理后台

  • 后台地址: http://服务器IP:3000/admin
  • 默认用户名: admin
  • 默认密码: 123456

Warning

生产环境请务必修改默认密码!详见修改方法:在 backend 目录运行以下命令(替换新用户名/密码):

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