NodeQuality 性能测试报告阅读器 (Vue 3 + Node.js 零外部依赖容器)
74
NodeQuality 报告阅读器。读取 nodeseek tabs 格式的 NodeQualityResult.md,以文档阅读的方式呈现服务器性能测试报告。
ansi 终端输出彩色渲染(终端窗口样式)nqsee/
server/ # 后端(Node.js 原生 http,零依赖)
index.js # 入口:路由分发
api.js # /api/reports 系列接口
static.js # 静态资源(web/dist + public/reports)
web/ # 前端(Vue 3 + Vite)
src/
api/client.js # 接口封装
store/index.js # 全局状态
markdown/engine.js # 章节解析、marked/DOMPurify/ANSI
markdown/enhance.js # 终端窗口、图片路径改写
components/ # SideBar / ReportView / ToastStack / DeleteDialog
styles/main.css
dist/ # 构建产物
public/
reports/ # 报告数据目录
index.json
<报告名>/
report.md
2026-05-15.md
*.webp
scripts/ # 清单生成、webp 缓存、报告时间解析
docker-compose.yml
nginx.conf
GET /api/reports # 报告清单(同 index.json 结构)
POST /api/reports # 上传报告(X-File-Name 头,body 为 md 内容)
POST /api/reports/cache?path=<路径> # 重新缓存远程 webp
DELETE /api/reports?path=<路径> # 删除指定日期归档
上传限制:最大 10MB,文件名需为 .md,内容必须包含 ::: tab-item。
服务支持通过环境变量 AUTH_TOKEN 保护写入与删除接口:
# 启动时配置鉴权 Token
AUTH_TOKEN="your-secret-token" node server/index.js
配置 AUTH_TOKEN 后,所有 POST / DELETE 接口均需携带以下任意一种凭证,否则返回 401 Unauthorized:
Authorization: Bearer <AUTH_TOKEN>X-Auth-Token: <AUTH_TOKEN>?token=<AUTH_TOKEN>未设置 AUTH_TOKEN 时默认运行在无鉴权兼容模式。建议暴露于公网时务必配置。
cd web
npm install
npm run dev # 开发模式,代理 /api 和 /reports 到 127.0.0.1:8080
npm run build # 构建到 web/dist
cd web && npm install && npm run build && cd ..
node server/index.js
访问:http://<服务器IP>:8080
只需一个 docker-compose.yml,在任意服务器即可一键启动(免安装 Node.js、免手动编译前端):
services:
nqsee:
image: rwnode/nqsee:latest
container_name: nqsee
restart: unless-stopped
ports:
- "8080:8080"
environment:
- PORT=8080
# - AUTH_TOKEN=your-secret-token # 可选接口密钥
volumes:
- ./public/reports:/app/public/reports
启动命令:
docker compose up -d
服务自动生成 public/reports/index.json,宿主机只需保留报告目录。Cloudflared 可指向 http://localhost:8080。
网页左上角点击"上传报告"选择 .md 文件。服务按"硬件质量体检报告"里的"报告时间"保存为 public/reports/<报告名>/YYYY-MM-DD.md(解析不到时用当前日期),随后自动缓存远程 .webp 并改写为本地路径。同名上传追加为新归档,不覆盖旧文件。
也可以手动放置报告后执行:
node scripts/build-report-index.js
docker compose --profile build run --rm build,或本地 cd web && npm run buildnode scripts/build-report-index.js,确认 public/reports/index.json 存在::: tab-itemContent type
Image
Digest
sha256:b0192decd…
Size
55.1 MB
Last updated
about 1 month ago
docker pull rwnode/nqsee