chore: 项目更名为 Verdaccio Mate
- 全站标识改为 Verdaccio Mate(登录页/顶部栏/关于页/浏览器标题) - 镜像名改为 verdaccio-mate:latest,README 构建与部署示例同步 - 后端包名 verdaccio-mate-backend - 修复 AppTopbar 模板多余闭合标签(Invalid end tag 导致 build 失败) - 数据卷路径保持不变,避免 NAS 数据丢失
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# Verdaccio 可视化治理面板(缓存 + 私有包)
|
||||
# Verdaccio Mate · 可视化治理面板(缓存 + 私有包)
|
||||
|
||||
对私有 npm Registry(Verdaccio)的**缓存目录与私有包**可视化治理面板:扫描缓存、来源识别(私有发布 / 上游缓存)、版本预警、清理低版本、拉取存量最新版本、维护 npm Top1000 榜单、README 预览、安装命令一键复制,并通过消息中心推送非实时通知。
|
||||
|
||||
@@ -114,8 +114,8 @@ npm run dev # http://localhost:5173(代理 /api -> 后端)
|
||||
|
||||
```bash
|
||||
cd frontend && npm install && npm run build # 先构建前端 dist
|
||||
cd .. && docker build --platform linux/amd64 -t verdaccio-cache-manager:latest .
|
||||
docker save -o verdaccio-cache-manager-amd64.tar verdaccio-cache-manager:latest
|
||||
cd .. && docker build --platform linux/amd64 -t verdaccio-mate:latest .
|
||||
docker save -o verdaccio-mate-amd64.tar verdaccio-mate:latest
|
||||
```
|
||||
|
||||
镜像基于 `node:20-slim`,仅含后端运行时依赖 + 前端静态产物,非 root 运行,监听 `3000`。
|
||||
@@ -124,8 +124,8 @@ docker save -o verdaccio-cache-manager-amd64.tar verdaccio-cache-manager:latest
|
||||
|
||||
```yaml
|
||||
services:
|
||||
verdaccio-cache-manager:
|
||||
image: verdaccio-cache-manager:latest
|
||||
verdaccio-mate:
|
||||
image: verdaccio-mate:latest
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "42338:3000"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "verdaccio-cache-manager-backend",
|
||||
"name": "verdaccio-mate-backend",
|
||||
"version": "1.0.0",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
|
||||
+2
-2
@@ -1,10 +1,10 @@
|
||||
# Verdaccio 缓存可视化管理面板(§12.2 Docker 部署)
|
||||
# Verdaccio Mate · 可视化管理面板(缓存 + 私有包治理,§12.2 Docker 部署)
|
||||
# Verdaccio 已独立部署,此处仅运行面板。
|
||||
# storage 需读写挂载:清理版本要删除 .tgz 并回写 package.json 元数据(只读会报 EROFS);
|
||||
# 容器以 root 运行以写入 verdaccio 卷(其属主为 verdaccio 用户 uid 10001,非本容器 uid 10000)
|
||||
services:
|
||||
verdaccio-manager:
|
||||
image: verdaccio-cache-manager:latest # 已导入的 amd64 镜像(docker load 后直接可用)
|
||||
image: verdaccio-mate:latest # 已导入的 amd64 镜像(docker load 后直接可用)
|
||||
restart: always
|
||||
user: "0:0" # root:清理需写 verdaccio 卷;vcm-data 命名卷 root 亦可写
|
||||
environment:
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
<meta charset="UTF-8" />
|
||||
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Verdaccio Manager · 你的缓存尽在掌握</title>
|
||||
<title>Verdaccio Mate · 你的缓存与私有包 · 尽在掌握</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
|
||||
@@ -111,11 +111,9 @@ onBeforeUnmount(() => document.removeEventListener('click', onDocClick))
|
||||
<template>
|
||||
<header class="topbar">
|
||||
<div class="brand" @click="go('/')">
|
||||
<div class="logo-emoji"><img class="logo-img" src="/logo.svg" alt="Verdaccio Manager" /></div>
|
||||
<div>
|
||||
<div class="brand-name">Verdaccio Manager</div>
|
||||
<div class="brand-sub">你的缓存 · 尽在掌握</div>
|
||||
</div>
|
||||
<div class="logo-emoji"><img class="logo-img" src="/logo.svg" alt="Verdaccio Mate" /></div>
|
||||
<div class="brand-name">Verdaccio Mate</div>
|
||||
<div class="brand-sub">你的缓存 · 尽在掌握</div>
|
||||
</div>
|
||||
|
||||
<nav class="nav">
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
<div class="about-page">
|
||||
<div class="about-card">
|
||||
<div class="ab-head">
|
||||
<img class="ab-logo" src="/logo.svg" alt="Verdaccio Manager" />
|
||||
<div class="ab-title">Verdaccio 可视化治理面板</div>
|
||||
<img class="ab-logo" src="/logo.svg" alt="Verdaccio Mate" />
|
||||
<div class="ab-title">Verdaccio Mate · 可视化治理面板</div>
|
||||
<div class="ab-sub">缓存 + 私有包 · 双重治理</div>
|
||||
</div>
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div class="ab-foot">Verdaccio Manager · 你的缓存与私有包 · 尽在掌握</div>
|
||||
<div class="ab-foot">Verdaccio Mate · 你的缓存与私有包 · 尽在掌握</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -37,8 +37,8 @@ async function login() {
|
||||
<button class="theme-toggle" @click="toggle">{{ theme === 'dark' ? '☀️ 亮色' : '🌙 暗色' }}</button>
|
||||
|
||||
<div class="login-card">
|
||||
<div class="login-logo"><img class="login-logo-img" src="/logo.svg" alt="Verdaccio Manager" /></div>
|
||||
<div class="login-title">Verdaccio Manager</div>
|
||||
<div class="login-logo"><img class="login-logo-img" src="/logo.svg" alt="Verdaccio Mate" /></div>
|
||||
<div class="login-title">Verdaccio Mate</div>
|
||||
<div class="login-sub">你的缓存 · 尽在掌握</div>
|
||||
|
||||
<div class="field">
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user