狸花云 v5 完整版发布:从界面到多节点,30 多个版本的全部改动

一、v5 做了什么

从 v5.0 到 v5.7,一共 30 多个版本迭代。如果要用一句话概括:

把每天都会用到的地方,一个个磨到你愿意用为止。

维度 v4 v5
侧栏 一长串菜单,滚不到底 分组折叠 + 抽屉 + 平滑指示器
登录页 居中卡片 左右分栏 + 照片背景
移动端 侧栏铺满顶部 抽屉 + 汉堡 + 用户菜单
个人主页 无 头像 / 背景 / 主题色 / 动态同步博客
服务器管理 只有基础操作 安全中心 + 脚本执行
多节点 单机 主从架构,子节点一键接入
文章发布 手写 Markdown(乱码) 自动转 HTML + 每日定时发布

二、界面:从「能用」到「顺手」

侧栏改造

之前:


一长串菜单,滚不到底
高亮块切换时瞬间跳过去
底部用户区被挤出屏幕

现在:


● 概览 ──────────
    📊 仪表盘
● 我的 ──────────
    🙋 我的主页
    🖥️ 我的服务器
    🔗 我的链接
    🌐 我的域名
● 商城 ──────────
▸ 运营 ── [4]        ← 可折叠
▸ 系统 ── [7]

四个改进:

改动 效果
分组折叠(记忆状态) 默认收起的组不占空间
选中块 220ms 平滑滑动 从旧位置滑到新位置
点击水波纹 从鼠标位置扩散
三段式布局 品牌固定 / 导航滚动 / 底部固定

踩的坑:.sidebar 同时写了 top:0; bottom:0 和 height:100vh,导致高度按 100vh 算(含手机地址栏),底部溢出。最终用绝对定位三段式解决。

登录页重做


┌──────────────────────────┬──────────────┐
│  [你的插画照片 + 遮罩]      │   🐱         │
│                          │   欢迎回来     │
│  让每一台设备              │   登录狸花云    │
│  都有身份                 │              │
│                          │   用户名       │
│  设备 ID 下发 · 云托管     │   [________] │
│                          │   密码         │
│  ✓ 自动创建容器           │   [________] │
│  ✓ 多租户子域名           │              │
│  ✓ 在线支付 / 自动开通     │   [  登 录  ] │
│                          │              │
│  48      21      99.9%   │   立即注册 →   │
│  设备代码 接入链接 可用性    │              │
└──────────────────────────┴──────────────┘
              60%                   40%

设计细节:

  • 深色渐变 + 网格纹理 + 三个浮动光球
  • 「身份」两字用蓝紫渐变填充
  • 左右分栏在手机上也保持(38% : 62%)
  • 照片双层遮罩:左侧文字区暗(可读),右侧通透(看得到图)

踩的坑:两层遮罩叠加后暗度到 0.95,照片几乎全黑。调整为 0.52 + 0.58,左 0.80 / 右 0.25。

移动端


顶部栏:[☰] 🐱 狸花云       admin 🐾
                             ↑ 点它弹菜单

点 ☰ → 侧栏从左侧滑出(带遮罩)
        ↓
┌─────────────┐
│ 🐱 狸花云    │  ← 固定顶部
├─────────────┤
│ ▼ 概览      │
│ ▼ 我的      │  ← 唯一滚动区
│ ...         │
├─────────────┤
│ 🐾 admin    │  ← 固定底部
│ [🌙][🚪退出] │
└─────────────┘

用户菜单:


点右上角头像
  ↓
┌──────────────────┐
│ admin · 管理员    │
├──────────────────┤
│ 👤 编辑个人资料    │
│ 🚪 退出登录        │
└──────────────────┘

三、新功能

安全中心(Lynis)


🛡 安全中心
  → 安装引擎(GitHub 拉 Lynis,1MB)
  → 开始扫描(1~3 分钟)

输出:


加固指数  68/100   中等
██████████████░░░░░░░

⚠️ 警告 12    💡 建议 18

· SSH 允许 root 直接登录
· 未检测到防火墙规则
· /tmp 无独立分区

Lynis 是:GitHub 上最流行的 Linux 安全审计工具(20k+ star),检查 200+ 项系统配置。

脚本执行

给服务器装工具:


🧰 脚本执行
  → 选容器 → 勾选工具 → 执行

📦 系统工具:基础 / 网络诊断 / 监控 / 安全 / 压缩
💻 开发工具:Python / 编译环境 / Node.js 20 / Java 17 / Docker / 数据库客户端 / Nginx

管理员还能配置「新建容器时自动装哪些」,一次设置长期生效。

特点:

  • 只显示运行中的、自己名下的容器
  • 多个脚本可叠加
  • 输出完整(退出码 + 耗时 + 日志)
  • 自定义命令仅管理员可用

多节点(主从架构)


┌──────────────────────────┐
│ 主节点(控制台 + 博客)    │
└────────┬─────────────────┘
         │ PVE API
    ┌────┴────┐
    ▼         ▼
  子节点A    子节点B
(只装 PVE)(只装 PVE)

子节点接入(一条命令):


bash -c "$(curl -fsSL https://id.woiov.cn/deploy/pve-init.sh)" -- --node-id hz01

脚本自动完成:

1. 环境检查

2. apt 源加速(清华镜像)

3. 创建 API 用户 + Token

4. 下载容器模板

5. 输出接入信息

升级跟从主:子节点没有独立代码,主节点升级 = 系统升级完成。

个人主页


https://id.woiov.cn/u/你的用户名
配置项 说明
昵称 展示名
头像 URL / 媒体库选 / 直接上传
资料卡背景 同上
简介 200 字
主题色 5 种
自定义链接 8 个
WP 账号 绑定后展示你的文章

发动态同步博客:


我的主页 → 发动态 → [🚀 发布到博客]
  ↓
直接写入 WordPress(分类「用户动态」)
  ↓
立刻出现在官网

四、后端改进

vmid 号段池

之前:号一直往上加(200 → 201 → … → 213),删了也不复用

现在:


号段:200 ~ 999
分配:从 200 起找最小空闲号
回收:已取消/退款订单的号自动释放
每天:自动回收一次

效果:号段永不耗尽,回收的号立即复用。

订单密码必填


容器 root 密码 *
至少 8 位,需同时包含字母和数字

理由:留空自动生成时用户经常忘了去哪儿找密码。

初始化脚本通用性

问题:Ubuntu 26.04 用 deb822 源格式(sources.list.d/*.sources),老脚本只认 sources.list → 换源失败 → 初始化 275 秒

修复:

  • 同时支持两种格式
  • 按 Debian/Ubuntu/未知分别处理
  • 非 apt 系统快速失败(不白等)

实测:Ubuntu 26.04 换源后 apt update = 29.3MB / 9 秒,初始化从 275 秒降到 60 秒内。

五、踩过的坑(都记录了)

问题 根因
整页白屏 CSS 变量写 --ink,主题里是 --fg-1 → 深色模式文字与背景同色
蓝条跑到侧栏底部 .sidebar-nav 缺 position: relative
文章”慢慢消失” 入场动画的 IntersectionObserver 条件太苛刻
背景图不显示 JSON.stringify 双引号破坏 HTML style 属性
文章表格变乱码 发 Markdown 原文,WP 不解析
初始化 275 秒 Ubuntu 用 deb822 源,脚本没处理
root 密码没设上 init 脚本提前删了公钥
插件装完消失 容器重启覆盖 plugins 目录
抽屉底部不显示 height:100vh 与 top/bottom:0 冲突
登录页底部白条 body { padding-top: 56px } 登录页没重置

共同教训:node --check 只查语法,查不到”引用了不存在的模块/函数”(https is not defined、shop.saveOrders is not a function)——这类错误只在运行时暴露。

六、下一步

方向 说明
模板加速 预装工具打进系统模板,初始化 90 秒 → 30 秒
DNS 自动解析 加子域名后自动创建解析记录
VNC 控制台 浏览器直接看机器屏幕(系统挂了也能救)
应用市场 一键部署 Nginx / MySQL / Docker
监控告警 服务挂了自动通知,而不是等客户投诉
异地备份 备份推到云端,防整机丢失

最后

v5 没有炫目的新功能,只有一件事:

把每天都要点的地方,磨到你愿意点。

侧栏不再滚不到底,登录页不再占满屏幕,手机上能正常用了,发内容不用切后台,装工具点两下就行。

这些事单看都很小,加起来就是「顺手」。


狸花网络 · 让每一台设备都有身份 🐾

💬 留下你的爪印