Skip to content

Releases: yjscloud/ProxCenter

v0.3.0

Choose a tag to compare

@yjscloud yjscloud released this 17 Oct 00:44

新增

  • IP 地址池归属支持多选:一个池可以分给多个用户,也可以直接给「全部用户」(任何登录用户都能用);不指定仍是公共池(仅管理员)
  • IP 地址池列表分页:每页 20 条可调,显示「第 1-20 条,共 N 条」

变更

  • 邮件通知并入「告警通知渠道」卡片,与飞书、通用 Webhook 并列;收件地址 / 重复提醒间隔 / 最多提醒次数 收在同一行,宽度与说明行长一并收敛
  • 监控告警页移除顶部吸顶的区块导航,正文按分组铺开

修复

  • 前端已更新、面板服务未重启时,保存地址池会把归属全部清空:现在会识别出旧后端并禁用保存,提示先重启服务
  • 老数据(单值归属)读取更稳:不再把 owners 为空、旧 owner 有值的行读成公共池
  • 新增地址池后自动跳到它所在的那一页

完整更新日志见 CHANGELOG.md。

v0.2.11

Choose a tag to compare

@yjscloud yjscloud released this 16 Oct 16:14

新增

  • 邮件告警可配置提醒节奏:新增「重复提醒间隔」(默认 30 分钟)与「最多提醒次数」(默认 3 次),不再只能跟着飞书的冷却时间一直重发
  • IP 地址池可绑定用户:创建虚拟机、新增网卡时可直接从自己的池里选地址,不必再手工抄

变更

  • 普通用户的告警规则不再提供「宿主机」对象类型(历史规则仍如实显示)
  • 普通用户没有「节点查看」权限时,创建虚拟机 / 容器仍能选择节点
  • 虚拟机 / 容器网卡补齐 PVE 全部参数:MTU、限速、多队列、链路状态、防火墙
  • 节点 / 网络 / 存储页固定三级树;普通用户顶栏不再显示「控制台状态」与「全部集群」

修复

  • 告警规则里「宿主机」下拉读不到节点时不再静默空着,会说明是 Proxmox 主机连不上

完整更新日志见 CHANGELOG.md。

0.2.10

Choose a tag to compare

@yjscloud yjscloud released this 14 Oct 14:53

修的是「一键更新」这条链路上碰到的三处卡点 —— 上一版发布漏改了后端版本号,结果更新其实做完了,面板却永远判不出「成功」。

  • 更新卡在「正在更新中」:v0.2.9 漏改 backend/app/__init__.py 的版本号(还写着 0.2.8),
    「更新完成」于是永远判不出来 —— 界面停在「正在更新中,请等面板重启」,一键更新的按钮跟着
    一起灰掉,30 分钟后还会被误判成更新失败并给管理员发一条假提醒。版本号已补上;判定也不再
    只认版本号:脚本成功退出并且面板进程确实重启过才算成功,进程没换的当场报失败并说清该
    执行哪条 systemctl restart。
  • 重启不到真正的服务:传给 deploy.sh --service 的是完整单元名,脚本自己还要拼一层
    .service,于是写出并重启了 proxcenter.service.service —— 代码换了,跑着的还是旧进程。
  • 工作区无端变脏:package-lock.json 里的版本号一直停在 0.2.8,每次部署 npm install
    都会重写它,下一次更新平白多一道「先 stash 本地改动」的门槛。锁文件已同步到 0.2.10,更新
    脚本收尾也会把这类改写复原。

顺手修了界面上两处小毛病:「未提交的改动」少显示第一个字母(package-lock.json 显示成
ackage-lock.json);「为什么不能一键更新」不再在「正在更新中」「当前已是最新版本」这类理由
下面挂一行无关的文件名。

升级:设置 → 面板更新 → 一键更新;或者在安装目录执行
git fetch --tags && git checkout v0.2.10 && sudo ./deploy.sh。

v0.2.9

Choose a tag to compare

@yjscloud yjscloud released this 14 Oct 14:34

v0.2.9 主要更新:

  • 顶栏「集群作用域」:可按用户 / 链接选择查看哪一套 PVE 集群(全部或指定一套),跟随 URL(?scope=)与服务端偏好,换设备也能恢复。
  • 任务列表 / 资源池列表未指定作用域时跨全部连接合并,并标注来源连接。
  • 机队状态统一为全机队口径(fleet-status);节点页仲裁告警改为逐连接检查并点名。
  • 修复多连接下的若干跨连接 bug:节点详情 SMART / 模板建机未带连接、归属 ref 对不上等。
  • 移除废弃的 GET /api/dashboard/summary 接口(多 PVE 下会误导)。

v0.2.8

Choose a tag to compare

@yjscloud yjscloud released this 13 Oct 14:25

新增

  • 资源额度可按人 / 按角色分配。 在全局台数上限之外新增第二层:给用户或角色配「名下总量 + 单台封顶」,覆盖虚拟机 / 容器 / 快照;改配置扩容、建快照同样受它约束。
  • 容器与虚拟机的权限、归属彻底拆开。 容器独立成 ct.* 权限与独立归属表,此前只勾了虚拟机权限的角色会顺带拿到容器能力。
  • 仪表盘与侧边栏按权限自适应。 没权限的卡片与菜单不渲染、请求也不发;普通用户只看到自己名下的机器。

修复与安全

  • 仪表盘「资源占用排行」对普通用户返回了全集群数据,能看到别人机器的名字;现在按归属过滤,缓存也按用户分档。
  • 面板级配置(飞书 / AI / 告警推送)不再挂在「用户与角色 · 管理」上,改要「系统设置 · 管理」;权限写入口加白名单校验并拒绝 *。
  • 修掉「勾了权限却点不动」和自定义角色显示内部 id(role_f195e975)两个问题。

v0.2.7

Choose a tag to compare

@yjscloud yjscloud released this 13 Oct 08:05
  • 新增:巡检结果落库与趋势卡片;节点/网络页改为「区域 → 连接 → 节点」三层树;IP 地址池支持 VLAN 标签。
  • 变更:关机/停止/重启/挂起与 Ctrl+Alt+Del 加二次确认;创建向导不再显示主机地址。
  • 修复:控制台/快照跳转的连接参数被拼坏;机型不再写死 pc,兼容 PVE 8 与 9。
  • 安全:连接接口按角色裁剪,主机地址、令牌与控制台凭据只发给管理员。

v0.2.6

Choose a tag to compare

@yjscloud yjscloud released this 12 Oct 14:03

上传的 qcow2 现在能直接落到存储上,建模板时也能被选到了。

存储页的上传对话框多了「磁盘镜像 (import)」一项,.qcow2 / .raw / .vmdk / .ova 走这里。之前只给了 iso、容器模板、备份、片段四个选项,而 PVE 的 iso 目录不收 .qcow2 —— 传上去会被以扩展名拒掉,只能绕到「导入虚拟机」里传。cloud-init 镜像列表现在也会扫存储的 import 目录,qcow2 不会再落到「传不上去、也选不着」的地步。

两个会挡住建模板的坑:

  • cloud-init 盘拼成了裸 cloudinit,PVE 回 unable to parse volume ID 'cloudinit',建机当场失败。它其实是一块小 qcow2,得带存储前缀(<存储>:cloudinit)。
  • 建模板时会把 vga 指到 serial0,虚拟机会因此失去图形控制台,而面板的控制台走 VNC,屏幕上就只剩客户机往串口写的内容。镜像内核参数里没有 console=ttyS0 的(不少自制 qcow2 都没有),GRUB 打完一句「starting serial terminal on interface serial0」就全黑。虚拟机本身没问题,坏的是控制台,现在改回默认图形控制台。

注意:克隆会继承模板的配置。之前建的模板和已下发的虚拟机还带着旧设置 —— 在 PVE 上 qm set <模板VMID> --delete vga 修一下模板,之后克隆出来的就正常了。顺带一提,上传前会先核对扩展名,选错文件当场提醒,不用等几 GB 传完才被拒。


升级:源码 git pull && sudo ./deploy.sh;Docker docker compose pull && docker compose up -d(等镜像构建完成)。

v0.2.5

Choose a tag to compare

@yjscloud yjscloud released this 09 Oct 04:57

升级时那个「工作区有改动」的提示,根子在 package-lock.json。

lock 里也记着根包自己的版本号,而之前几次发版只改了 package.json(0.2.2、0.2.3、0.2.4 都漏了),于是每次 npm install 都会把 lock 重写一遍。工作区一直是脏的,在线更新看到有改动就要二次确认,看着像代码有问题,其实跟用户的改动无关。

现在 lock 已同步到当前版本,npm run check:graph 里补了一条校验:版本号和两张依赖表跟 package.json 不一致会直接报错,发布前必跑的 npm run verify 会带上它。


升级:源码 git pull && sudo ./deploy.sh;Docker docker compose pull && docker compose up -d(等镜像构建完成)。

v0.2.4

Choose a tag to compare

@yjscloud yjscloud released this 09 Oct 04:44

在线更新之后,仓库不再停在 detached HEAD 上。

git 安装的机器更新时走 git checkout <tag>,完事 HEAD 不挂在任何分支上,而 README 教的升级命令是 git pull,在那种状态下第一句就报 You are not currently on a branch。

现在更新完会把分支快进到刚检出的 tag 再挂回去,代码内容完全不变。只在分支确实落后于该 tag、没有本地提交时才这么做;有本地提交就保持原样,日志里说明该怎么办。已经处于 detached 的部署会被这一步自愈。


升级:源码 git pull && sudo ./deploy.sh;Docker docker compose pull && docker compose up -d(等镜像构建完成)。

v0.2.3

Choose a tag to compare

@yjscloud yjscloud released this 09 Oct 04:32

修了更新链路上的两个问题。

  • 跳版本升级会漏装前端依赖。deploy.sh 以前只要看到 node_modules 在就跳过 npm install,0.2.0 一步升到 0.2.2 时新加的 @xterm/* 就没装上,构建直接报一排 Cannot find module。现在每次都检查依赖,没变化时几秒返回,跟后端那步 pip install 的做法一致。
  • 界面可能悄悄跑着旧前端。构建时往 dist/ 写版本标记,后端启动时比对,不一致会记日志,并在「设置 → 面板版本与更新」里写明界面上跑的是 vX、后端是 vY,以及该执行什么命令。会走到这个状态的路不止「依赖缺失」一条,所以这里校验的是结果,而不是逐个去堵过程。

另外,更新失败时如果日志里看得出是依赖没装齐,失败结论里会附上能照着做的命令。


升级:源码 git pull && sudo ./deploy.sh;Docker docker compose pull && docker compose up -d(等镜像构建完成)。