最近半个月,我基于 RuoYi 项目二次开发鼓捣了一个叫"数巢私有云"的东西。写出来自己都觉得离谱——一个人,前后端、数据库、文档、架构图,ai(workbuddy)全干了。今天开始把这个过程的坑和想法整理成一系列文章,发出来给同样喜欢自己折腾私有部署的朋友参考。
一、先说清楚这东西是什么
简单讲,数巢私有云是一套跑在你自己机器上的"家庭 / 小团队数字中枢"。它不追求上云,核心诉求恰好相反:
数据主权:数据放在自己手里,不依赖任何第三方服务。
局域优先:PC 当服务端,手机连同一个 WiFi 就能用,内网通了就能跑。
场景丰富:备份同步、家庭生活、健康管理、协作办公、商业经营、互动任务、内容发布……先想清楚要覆盖哪些,再动手。
轻量精简:能不拆表就不拆表,能复用就复用。
无限扩展:新模块按统一规范往里挂就行。
技术底座用的是 RuoYi v4.8.3(Thymeleaf + Shiro + MyBatis 纯 XML,JDK 21 + Maven 3.8.1)。数巢的所有业务代码统一放在 com.ruoyi.datanest 包下,表名统一 dn_模块_业务。
下图是给ai的对话指令:
二、半个月做了哪些模块
说出来不怕大家笑话,这半个月基本是"想到哪做到哪,但每个都做透了":
门户登录页 + 控制台首页:一个能扫码、能看在线用户、能看公告的登录门户,前后改了十几轮。
文件管理:文件夹树 + 文件元数据 + 标签,支持批量上传、扫描导入、EXIF 提取、多条件检索、接入File Viewer纯前端文件预览组件实现浏览器内在线预览。
内容发布:留言板、信息发布、站点发布(传 HTML/解压 ZIP 自动出站点)。
Excel 协同编辑:接 luckysheet-crdt,多人在线编辑同一张表,带光标同步。
家庭生活:族谱(带可视化的族谱树)、家庭资产、家庭收支记账。
健康管理:成员 + 成长记录 + 各类健康记录。
商店经营:商品、门店、库存、出入库、销售订单、过期预警,一整套进销存。
互动任务:签到、投票、评论、抽奖。
工具服务 / 扫码记录等零散模块。
三、关于文档和架构图
动手写代码前,我把两样东西先定下来:需求文档和数据库设计文档。这不是走形式——后面每加一个模块、每改一张表,我都回过头去同步文档,保证文档和 dn_schema.sql 永远对得上。这点非常重要,否则半个月下来你自己都记不清哪张表有哪些字段。
架构图本来想用画布工具直接画,结果环境里那个 MCP 工具没连上,最后用 SVG 手画了一张七层分层架构图(使用场景 / 终端 / 通信 / 平台底座 / 业务模块 / 扩展 / 客户端),照样能用。
四、这套文章怎么读
后面我会按模块拆成几篇:
门户页是怎么从"能看"磨到"顺眼"的(十轮迭代的血泪史)
文件管理:一个看似简单的模块,藏着多少细节
内容发布与站点发布
Excel 协同编辑:怎么把一个现成前端接进自己的后端
族谱模块:用 SVG 画一棵能放大缩小的家族树
商店经营:从商品到客退回收的完整进销存
踩坑实录:那些让我编译报错、启动失败的坑
H2 兼容与 Flyway 迁移:怎么让项目既能跑 MySQL 也能跑内存库
每篇都会尽量讲清楚"为什么这么设计"以及"踩了什么坑",而不是只贴代码。毕竟对读者有用的,是思路和可复用的经验。
下一篇预告:一个登录页,我改了十几轮。从配色、布局到扫码、留言板,讲讲前端打磨的那些细节。