Commit Graph
10 Commits
Author SHA1 Message Date
yinjun.chen1 a00a58af30 feat: 我的缓存页支持一键拉取存量包最新版本
CI / Backend tests (push) Canceled after 0s
CI / Frontend build (push) Canceled after 0s
- 后端新增 sync-latest 模块:经 Verdaccio 查询包元数据取 latest,跳过已缓存版本,未缓存版本走 Verdaccio 代拉落盘;异步状态机 + POST /api/sync/latest + GET /api/sync/progress
- 前端 SearchView 工具栏新增拉取按钮,轮询进度并汇总成功/跳过/失败明细
- 上游路由交由 Verdaccio 自身 uplinks(npm/淘宝/华为)处理,仅需 VERDACCIO_BASE_URL 配置
- docker-compose 补充私服地址环境变量;忽略 .dumate/.tmp 中间产物
2026-09-21 14:06:22 +08:00
陈银军 2e4977a090 perf(scan): 增量扫描缓存 + libuv 线程池扩容
- scanner.js: 包目录 mtime(+package.json mtime) 指纹缓存扫描结果,
  两次扫描间未变化的包直接复用,只重扫有增删/改写的包目录,
  大量长期不变的缓存包几乎零 IO
- server.js: 入口兜底 UV_THREADPOOL_SIZE=8(libuv IO 线程池默认仅 4,
  磁盘 stat/readFile 并发是扫描主瓶颈,NAS 四核安全)
- docker-compose.yml: 同步注入 UV_THREADPOOL_SIZE=8
2026-09-21 00:55:46 +08:00
chenxuan 1df91c17ff 。。。 2026-09-20 23:38:08 +08:00
陈银军 5861b25847 feat(deploy): 数据目录默认 bind mount 到 NAS 宿主机
默认数据目录改为 /volume2/docker/verdaccio-manager/data,开箱即在
NAS 文件管理器里可见、可备份、可修改 manager.db,不再用命名卷。
仍保留 VCM_DATA_DIR 环境变量覆盖路径。
2026-09-20 00:05:49 +08:00
陈银军 70b9ec4a60 feat(deploy): 支持自定义持久化数据目录 VCM_DATA_DIR
默认仍使用 vcm-data 命名卷(不破坏现有部署);在 .env 设置
VCM_DATA_DIR=宿主机绝对路径即切换为 bind mount,便于直接在
NAS 文件系统里查看/备份 manager.db。后端 DATA_DIR 不变。
2026-09-20 00:01:08 +08:00
陈银军 02ac744e13 feat(auth): 内置账号密码登录,Docker 部署可通过环境变量覆盖
- 后端读取 VCM_USERNAME/VCM_PASSWORD(默认 admin/admin123),新增 /api/login、/api/logout,Bearer token 中间件保护全部 /api/*(登录/登出除外)
- 前端登录接真实接口,token 存 localStorage(记住我)/ sessionStorage;401 自动清除会话跳登录页
- 修复 App.vue 初始路由未就绪导致登录页误触发数据加载;退出登录先清会话再跳转
- docker-compose 增加 VCM_USERNAME/VCM_PASSWORD 环境变量(可用宿主机 .env 覆盖)
2026-09-19 22:49:32 +08:00
陈银军 d5074d0ff4 fix(deploy): storage 读写挂载 + root 运行以修复清理版本 EROFS
清理版本需删除 .tgz 并原子回写 package.json 元数据,原 :ro 只读挂载导致
EROFS;且 verdaccio 卷属主为 uid 10001,容器默认 uid 10000 即使读写也会
EACCES,故以 root(user 0:0)运行容器。
2026-09-19 21:52:08 +08:00
陈银军 8a54fb2d5c feat: 包信息展示与扫描数据修正
- scanner: 版本数只统计实际存在的 .tgz(修复 playwright-core 5113 版本虚高),解析 description/homepage/repository/author/license 元数据字段
- 前端: 新增 PkgLogo 首字母徽标组件,详情抽屉展示包 logo(主页 favicon 加载失败自动回退)、介绍与主页/仓库/许可胶囊,优化抽屉头部布局
- 全量 UI 改进: 毛玻璃扫描遮罩与进度、头像菜单重新扫描、主题切换、移动端 Tabbar/StatMini/Top30Panel 响应式、列表瘦身与详情按需加载
- compose: TZ=Asia/Shanghai + 命名卷 vcm-data 解决 SQLite 权限
- 更新 amd64 镜像 tar
2026-09-19 21:07:27 +08:00
陈银军 f84f21574f fix: 扫描缓存与真实大小计算,解决页面加载慢与数据虚增
- scanner: 大小改为统计实际 .tgz 文件(兼容 {version}.tgz 与 {pkg}-{version}.tgz 命名),
  不再用 unpackedSize 兜底虚增数倍
- server: 扫描结果内存缓存(首次懒扫描,后续请求秒回),新增 POST /api/scan 手动重扫,
  /api/packages 返回 scannedAt 时间戳,clean/删版本后自动失效缓存
- 前端: 概览页新增「重新扫描」按钮 + 「基于 xxx 扫描」时间展示;Top30 在真实环境
  (无访问统计)降级为「缓存占用 Top 30」按大小排序
- compose: 数据卷改 named volume,修复非 root 容器 SQLITE_CANTOPEN
2026-09-19 17:57:58 +08:00
陈银军 0a9ca8894a feat: Verdaccio 缓存可视化管理面板(前端 + 后端 + Docker)
- 前端 Vue3+Vite+Element Plus 按需引入,双主题(bright/dark)CSS 变量
- 三端响应式(桌面/平板/手机),登录/概览/检索/阈值/忽略/动态 6 页面
- 后端 Express + better-sqlite3,目录扫描 + demo 模式,清理原子写入
- Dockerfile 多阶段构建 + docker-compose(storage 只读挂载)
2026-09-19 15:00:04 +08:00