# Home4j 功能列表 > **版本**:v1.1 > **更新日期**:2026年2月3日 > **说明**:本文档定义 Home4j 的完整功能架构,从 MVP 到未来扩展,采用三级结构组织 --- ## 核心定位说明 **Home4j 是一个导航工具**,核心竞争力是: 1. **Java 技术栈**:基于 Quarkus,对 Java 开发者友好 2. **轻量部署体验**:Docker 一键部署,资源占用低 3. **离线友好**:所有资源本地化,支持内网部署 --- ## 功能优先级说明 | 标记 | 含义 | 版本规划 | |-----|------|---------| | 🔴 **P0** | 必须有,MVP 核心功能 | v0.1 | | 🟡 **P1** | 重要,体验优化功能 | v0.5 | | 🟢 **P2** | 增强,v1.0 完整功能 | v1.0 | | ⚪ **P3** | 未来,长期规划功能 | v1.x+ | --- ## 一、书签管理模块 🔖 > 核心价值:快速访问和组织用户的常用链接 ### 1.1 书签基础操作 | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 1.1.1 添加书签 | 支持手动输入 URL、名称、描述创建书签 | 🔴 P0 | | 1.1.2 编辑书签 | 修改书签的所有属性信息 | 🔴 P0 | | 1.1.3 删除书签 | 单个删除,需二次确认 | 🔴 P0 | | 1.1.4 批量删除 | 多选后批量删除书签 | 🟡 P1 | | 1.1.5 书签排序 | 拖拽调整书签顺序 | 🔴 P0 | | 1.1.6 书签复制 | 复制现有书签快速创建新书签 | 🟡 P1 | ### 1.2 书签属性配置 | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 1.2.1 基础信息 | 名称、URL、描述 | 🔴 P0 | | 1.2.2 图标设置 | 支持内置图标/URL图标/上传图标/自动获取favicon | 🔴 P0 | | 1.2.3 分组归属 | 选择书签所属分组 | 🔴 P0 | | 1.2.4 标签设置 | 为书签添加多个标签用于筛选 | 🟡 P1 | | 1.2.5 打开方式 | 新标签页/当前页/iframe嵌入 | 🟡 P1 | | 1.2.6 自定义颜色 | 书签卡片的强调色 | 🟢 P2 | | 1.2.7 访问密码 | 单个书签的访问保护 | 🟢 P2 | ### 1.3 书签高级功能 | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 1.3.1 URL 有效性检测 | 定期检查书签链接是否可访问 | 🟢 P2 | | 1.3.2 Favicon 自动获取 | 根据 URL 自动抓取网站图标 | 🟡 P1 | | 1.3.3 书签置顶 | 将重要书签置顶显示 | 🟡 P1 | | 1.3.4 书签隐藏 | 临时隐藏不常用书签 | 🟢 P2 | | 1.3.5 快捷访问编号 | 数字键 1-9 快速打开对应书签 | 🟢 P2 | | 1.3.6 访问统计 | 记录书签点击次数和最近访问时间 | 🟢 P2 | --- ## 二、分组管理模块 📁 > 核心价值:按场景/类型组织书签,提升查找效率 ### 2.1 分组基础操作 | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 2.1.1 创建分组 | 新建分组并设置名称、图标 | 🔴 P0 | | 2.1.2 编辑分组 | 修改分组名称、图标、描述 | 🔴 P0 | | 2.1.3 删除分组 | 删除分组(书签移至默认分组或一并删除) | 🔴 P0 | | 2.1.4 分组排序 | 拖拽调整分组显示顺序 | 🔴 P0 | | 2.1.5 分组折叠 | 折叠/展开分组内容 | 🔴 P0 | | 2.1.6 默认折叠状态 | 设置分组默认是否折叠 | 🟡 P1 | ### 2.2 分组属性配置 | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 2.2.1 分组名称 | 显示名称,支持中英文 | 🔴 P0 | | 2.2.2 分组图标 | 内置图标库选择或自定义 | 🔴 P0 | | 2.2.3 分组描述 | 可选的分组说明文字 | 🟡 P1 | | 2.2.4 分组颜色 | 分组标题栏的主题色 | 🟢 P2 | | 2.2.5 显示模式 | 网格/列表/紧凑三种布局 | 🟢 P2 | | 2.2.6 列数设置 | 分组内书签每行显示数量 | 🟡 P1 | ### 2.3 分组高级功能 | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 2.3.1 分组可见性 | 设置分组仅特定用户可见 | 🟢 P2 | | 2.3.2 分组标签页 | 多个分组作为 Tab 切换显示 | ⚪ P3 | | 2.3.3 嵌套分组 | 支持分组内创建子分组 | ⚪ P3 | | 2.3.4 分组独立页面 | 分组可作为独立页面访问 | ⚪ P3 | --- ## 三、搜索与筛选模块 🔍 > 核心价值:快速定位目标书签,提升使用效率 ### 3.1 全局搜索 | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 3.1.1 快捷键激活 | `Ctrl+K` 或 `/` 打开搜索框 | 🔴 P0 | | 3.1.2 实时搜索 | 输入即搜索,无需回车 | 🔴 P0 | | 3.1.3 多字段匹配 | 搜索名称、URL、描述、标签 | 🔴 P0 | | 3.1.4 模糊搜索 | 支持拼音首字母、模糊匹配 | 🟡 P1 | | 3.1.5 搜索高亮 | 匹配关键词高亮显示 | 🔴 P0 | | 3.1.6 键盘导航 | ↑↓ 选择,Enter 打开,Esc 关闭 | 🔴 P0 | ### 3.2 筛选功能 | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 3.2.1 按分组筛选 | 只显示特定分组的书签 | 🟡 P1 | | 3.2.2 按标签筛选 | 根据标签过滤书签 | 🟡 P1 | | 3.2.3 按访问频率 | 显示最常访问/最近访问的书签 | 🟢 P2 | | 3.2.4 组合筛选 | 多条件组合筛选 | 🟢 P2 | ### 3.3 搜索增强 | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 3.3.1 搜索历史 | 记录最近搜索词 | 🟢 P2 | | 3.3.2 搜索建议 | 输入时显示匹配建议 | 🟢 P2 | | 3.3.3 外部搜索引擎 | 未匹配时跳转到搜索引擎 | 🟡 P1 | | 3.3.4 搜索引擎切换 | 支持 Google/Bing/百度 等 | 🟡 P1 | --- ## 四、主题与外观模块 🎨 > 核心价值:满足个性化需求,提升视觉体验 ### 4.1 主题切换 | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 4.1.1 预设主题 | 提供 10+ 预设主题(light/dark/nord/dracula等) | 🔴 P0 | | 4.1.2 一键切换 | 点击即时切换,无需刷新 | 🔴 P0 | | 4.1.3 跟随系统 | 自动跟随操作系统深色/浅色模式 | 🔴 P0 | | 4.1.4 主题偏好保存 | 记住用户选择的主题 | 🔴 P0 | | 4.1.5 定时切换 | 按时间段自动切换主题 | 🟢 P2 | ### 4.2 自定义外观 | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 4.2.1 自定义背景 | 支持颜色/图片/渐变背景 | 🟡 P1 | | 4.2.2 背景模糊 | 背景图片模糊度调节 | 🟡 P1 | | 4.2.3 背景遮罩 | 背景透明度遮罩 | 🟡 P1 | | 4.2.4 自定义 CSS | 高级用户可注入自定义样式 | 🟡 P1 | | 4.2.5 字体设置 | 自定义字体和字号 | 🟢 P2 | | 4.2.6 圆角设置 | 卡片圆角大小调节 | 🟢 P2 | ### 4.3 布局配置 | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 4.3.1 布局模式 | 网格/列表/紧凑三种模式 | 🔴 P0 | | 4.3.2 列数设置 | 每行显示 2/3/4/5/6 列可选 | 🔴 P0 | | 4.3.3 卡片尺寸 | 小/中/大三种卡片尺寸 | 🟡 P1 | | 4.3.4 显示密度 | 紧凑/标准/宽松间距 | 🟡 P1 | | 4.3.5 响应式断点 | 参考 Tailwind 断点,移动端(<640px)单列 | 🔴 P0 | --- ## 五、配置管理模块 ⚙️ > 核心价值:灵活的配置方式,满足不同用户习惯 ### 5.1 Web UI 配置(主要方式) | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 5.1.1 可视化编辑器 | 通过界面修改所有配置项 | � P0 | | 5.1.2 实时预览 | 修改后即时预览效果 | 🟡 P1 | | 5.1.3 保存到数据库 | 所有配置保存到数据库 | � P0 | | 5.1.4 配置分类 | 常规/外观/数据/账号 Tab 分类 | � P0 | | 5.1.5 配置重置 | 恢复默认配置 | 🟡 P1 | ### 5.2 数据管理 | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 5.2.1 数据导出 | 导出所有数据为 JSON/YAML | 🟡 P1 | | 5.2.2 数据导入 | 从 JSON/YAML 导入数据 | 🟡 P1 | | 5.2.3 数据备份 | 定时自动备份数据 | 🟢 P2 | | 5.2.4 备份恢复 | 从备份文件恢复数据 | 🟢 P2 | | 5.2.5 数据清空 | 清空所有数据(需二次确认) | 🟡 P1 | | 5.2.6 竞品数据导入 | 支持从 Flame/Homer 导入数据 | ⚪ P3 | --- ## 六、图标系统模块 🖼️ > 核心价值:丰富的图标支持,提升视觉识别效率 ### 6.1 内置图标库 | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 6.1.1 基础图标集 | 内置 500+ 常用图标(基于 Lucide/Tabler) | 🔴 P0 | | 6.1.2 品牌图标集 | 常见网站/服务的 Logo 图标 | 🟡 P1 | | 6.1.3 图标搜索 | 在图标库中搜索图标 | 🔴 P0 | | 6.1.4 图标预览 | 选择前预览图标效果 | 🔴 P0 | | 6.1.5 最近使用 | 显示最近使用的图标 | 🟡 P1 | ### 6.2 自定义图标 | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 6.2.1 URL 图标 | 支持外部图片 URL 作为图标 | 🔴 P0 | | 6.2.2 URL 图标降级 | URL 不可访问时显示默认图标 | 🔴 P0 | | 6.2.3 图标上传 | 上传本地图片作为图标 | 🟡 P1 | | 6.2.4 Emoji 图标 | 支持使用 Emoji 作为图标 | 🟡 P1 | | 6.2.5 文字图标 | 使用文字首字母作为图标 | 🔴 P0 | | 6.2.6 SVG 图标 | 支持自定义 SVG 代码 | 🟢 P2 | ### 6.3 图标增强 | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 6.3.1 图标颜色 | 自定义图标颜色 | 🟡 P1 | | 6.3.2 图标大小 | 调整图标显示大小 | 🟡 P1 | | 6.3.3 图标背景 | 图标背景色/形状设置 | 🟢 P2 | | 6.3.4 Dashboard Icons | 集成 Dashboard Icons 图标集 | 🟢 P2 | --- ## 七、首页定制模块 🏠 > 核心价值:个性化首页展示,满足品牌和场景需求 ### 7.1 页面头部 | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 7.1.1 网站标题 | 自定义首页标题 | 🔴 P0 | | 7.1.2 副标题 | 可选的副标题/欢迎语 | 🔴 P0 | | 7.1.3 Logo 设置 | 自定义 Logo 图片 | 🟡 P1 | | 7.1.4 Favicon 设置 | 自定义浏览器标签图标 | 🟡 P1 | | 7.1.5 问候语 | 根据时间显示不同问候语 | 🟢 P2 | | 7.1.6 头部隐藏 | 可选择隐藏头部区域 | 🟡 P1 | ### 7.2 页面布局 | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 7.2.1 居中布局 | 内容区域居中显示 | 🔴 P0 | | 7.2.2 最大宽度 | 设置内容区域最大宽度 | 🟡 P1 | | 7.2.3 侧边栏模式 | 分组作为侧边栏导航 | 🟢 P2 | | 7.2.4 全屏模式 | 隐藏所有 UI 只显示书签 | 🟢 P2 | ### 7.3 页面底部 | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 7.3.1 版权信息 | 自定义底部版权文字 | 🟡 P1 | | 7.3.2 快捷链接 | 底部显示常用链接 | 🟢 P2 | | 7.3.3 底部隐藏 | 可选择隐藏底部区域 | 🟡 P1 | | 7.3.4 页脚自定义 HTML | 高级用户可自定义页脚内容 | ⚪ P3 | --- ## 八、用户与权限模块 👥 > 核心价值:保护编辑权限,支持简单的访问控制 ### 8.1 管理员登录(MVP) | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 8.1.1 首次设置账号 | 首次启动强制设置管理员账号密码 | � P0 | | 8.1.2 管理员登录 | 用户名密码登录 | � P0 | | 8.1.3 Session 保持 | 登录状态保持,支持记住登录 | � P0 | | 8.1.4 退出登录 | 退出管理员状态 | � P0 | | 8.1.5 修改密码 | 管理员修改自己的密码 | � P0 | ### 8.2 访问控制(MVP) | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 8.2.1 只读访问 | 未登录用户只能浏览,不能编辑 | 🔴 P0 | | 8.2.2 编辑权限保护 | 添加/编辑/删除操作需要登录 | 🔴 P0 | | 8.2.3 设置页面保护 | 设置页面需要登录才能访问 | 🔴 P0 | ### 8.3 多用户支持(v1.0+) | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 8.3.1 用户注册 | 管理员邀请注册新用户 | 🟢 P2 | | 8.3.2 用户列表 | 管理员查看所有用户 | 🟢 P2 | | 8.3.3 用户编辑 | 修改用户信息和权限 | 🟢 P2 | | 8.3.4 用户删除 | 删除用户账号 | � P2 | | 8.3.5 角色权限 | 管理员/普通用户角色区分 | 🟢 P2 | | 8.3.6 密码重置 | 管理员重置用户密码 | 🟢 P2 | ### 8.4 认证集成(未来) | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 8.4.1 OAuth2 登录 | 支持 GitHub/Google OAuth | ⚪ P3 | | 8.4.2 LDAP 集成 | 企业 LDAP/AD 认证 | ⚪ P3 | | 8.4.3 SSO 支持 | 单点登录集成 | ⚪ P3 | | 8.4.4 2FA 支持 | 两步验证(TOTP) | ⚪ P3 | --- ## 九、服务状态监控模块 📊 > 核心价值:简单了解服务可用性(非核心功能,保持轻量) ### 9.1 简单状态检测(v1.0) | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 9.1.1 HTTP 状态检测 | 检测 URL 返回状态码 | 🟢 P2 | | 9.1.2 状态图标显示 | 书签上显示红/绿状态点 | 🟢 P2 | | 9.1.3 自定义检测间隔 | 设置检测频率 | 🟢 P2 | ### 9.2 状态展示 | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 9.2.1 响应时间 | 显示服务响应延迟 | 🟢 P2 | | 9.2.2 状态汇总 | 首页显示服务整体健康度 | 🟢 P2 | | 9.2.3 故障提示 | 服务异常时醒目提示 | 🟢 P2 | **说明**: - 不保存历史数据 - 不生成报表 - 不支持告警通知 - 复杂监控需求可使用 Quarkus Dev UI 或专业工具 --- ## 十、Widget 组件模块 🧩 > 核心价值:丰富信息展示(非核心差异化,延后实现) ### 10.1 内置 Widget(v1.0 简化版) | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 10.1.1 时钟组件 | 显示当前时间/日期 | 🟢 P2 | | 10.1.2 搜索框组件 | 独立的搜索引擎入口 | � P2 | ### 10.2 Widget 管理(v1.0) | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 10.2.1 Widget 启用/禁用 | 选择显示哪些 Widget | 🟢 P2 | | 10.2.2 Widget 位置 | 设置 Widget 显示位置 | 🟢 P2 | ### 10.3 扩展 Widget(v1.x+) | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 10.3.1 天气组件 | 显示当前天气信息 | ⚪ P3 | | 10.3.2 快捷笔记 | 简单的便签/待办 | ⚪ P3 | | 10.3.3 系统信息 | 显示服务器 CPU/内存/磁盘 | ⚪ P3 | | 10.3.4 插件加载机制 | 基于 SPI 的插件加载 | ⚪ P3 | | 10.3.5 插件开发 SDK | 提供 Widget 开发工具包 | ⚪ P3 | | 10.3.6 插件市场 | 社区 Widget 分享平台 | ⚪ P3 | **说明**:Widget 系统不是 Home4j 的核心差异化点,v1.0 仅提供简单的时钟和搜索组件,复杂 Widget 延后到 v1.x 作为可选插件。 --- ## 十一、快捷操作模块 ⌨️ > 核心价值:键盘友好,提升操作效率 ### 11.1 全局快捷键 | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 11.1.1 搜索 | `Ctrl+K` 或 `/` 打开搜索 | 🔴 P0 | | 11.1.2 添加书签 | `Ctrl+N` 打开添加弹窗 | 🟡 P1 | | 11.1.3 设置 | `Ctrl+,` 打开设置 | 🟡 P1 | | 11.1.4 主题切换 | `Ctrl+T` 切换深色/浅色 | 🟡 P1 | | 11.1.5 帮助 | `?` 显示快捷键帮助 | 🟡 P1 | | 11.1.6 全屏 | `F11` 切换全屏模式 | 🟢 P2 | ### 11.2 导航快捷键 | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 11.2.1 数字键访问 | `1-9` 打开对应位置书签 | 🟢 P2 | | 11.2.2 分组跳转 | `G+数字` 跳转到对应分组 | 🟢 P2 | | 11.2.3 方向键导航 | 方向键在书签间移动 | 🟢 P2 | | 11.2.4 Tab 导航 | Tab 键在元素间切换 | 🔴 P0 | --- ## 十二、部署与运维模块 🚀 > 核心价值:简化部署,降低运维成本 ### 12.1 部署方式 | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 12.1.1 Docker 部署 | 官方 Docker 镜像 | 🔴 P0 | | 12.1.2 Docker Compose | 提供 compose 示例文件 | 🔴 P0 | | 12.1.3 JAR 直接运行 | 单 JAR 文件直接运行 | 🔴 P0 | | 12.1.4 Kubernetes | K8s 部署 YAML 和 Helm Chart | ⚪ P3 | | 12.1.5 一键脚本 | Linux 一键安装脚本 | 🟡 P1 | ### 12.2 数据库支持 | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 12.2.1 H2 数据库 | 默认嵌入式数据库,零配置 | 🔴 P0 | | 12.2.2 MySQL 支持 | 可选切换到 MySQL | 🟡 P1 | | 12.2.3 PostgreSQL | 可选切换到 PostgreSQL | 🟢 P2 | | 12.2.4 SQLite | 可选切换到 SQLite | 🟢 P2 | ### 12.3 运维功能 | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 12.3.1 健康检查端点 | `/health` 接口 | 🔴 P0 | | 12.3.2 就绪检查端点 | `/ready` 接口 | 🟡 P1 | | 12.3.3 Metrics 端点 | Prometheus 格式指标 | 🟢 P2 | | 12.3.4 日志配置 | 日志级别动态调整 | 🟡 P1 | | 12.3.5 版本信息 | `/info` 显示版本信息 | 🔴 P0 | --- ## 十三、API 接口模块 🔌 > 核心价值:支持自动化和二次开发 ### 13.1 RESTful API | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 13.1.1 书签 CRUD API | 书签的增删改查接口 | 🟢 P2 | | 13.1.2 分组 CRUD API | 分组的增删改查接口 | 🟢 P2 | | 13.1.3 配置 API | 读取和修改配置接口 | 🟢 P2 | | 13.1.4 导入导出 API | 数据导入导出接口 | 🟢 P2 | | 13.1.5 API 文档 | Swagger/OpenAPI 文档 | 🟢 P2 | ### 13.2 API 安全 | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 13.2.1 API Key 认证 | 使用 API Key 访问接口 | 🟢 P2 | | 13.2.2 速率限制 | API 调用频率限制 | ⚪ P3 | | 13.2.3 CORS 配置 | 跨域访问配置 | 🟢 P2 | --- ## 十四、国际化模块 🌍 > 核心价值:支持多语言,扩大用户群体 ### 14.1 语言支持 | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 14.1.1 中文(简体) | 默认语言 | 🔴 P0 | | 14.1.2 英文 | 完整英文支持 | 🔴 P0 | | 14.1.3 中文(繁体) | 繁体中文支持 | 🟢 P2 | | 14.1.4 日文 | 日语支持 | ⚪ P3 | | 14.1.5 社区翻译 | 支持社区贡献翻译 | ⚪ P3 | ### 14.2 语言切换 | 三级功能 | 描述 | 优先级 | |---------|------|--------| | 14.2.1 手动切换 | 设置中选择语言 | 🔴 P0 | | 14.2.2 浏览器检测 | 自动检测浏览器语言 | 🟡 P1 | | 14.2.3 语言偏好保存 | 记住用户语言选择 | 🔴 P0 | --- ## 功能统计汇总 | 版本 | P0 功能数 | P1 功能数 | P2 功能数 | P3 功能数 | |-----|----------|----------|----------|----------| | MVP (v0.1) | **50** | - | - | - | | v0.5 | 50 | **35** | - | - | | v1.0 | 50 | 35 | **35** | - | | v1.x+ | 50 | 35 | 35 | **25** | **总计**:约 145 个功能点 --- ## 版本交付物清单 ### MVP (v0.1) 交付物 - [ ] 完整的书签管理功能 - [ ] 分组管理功能 - [ ] 全局搜索功能 - [ ] 5+ 预设主题(DaisyUI 本地化) - [ ] 管理员登录与权限保护 - [ ] Web UI 配置管理 - [ ] Docker 镜像发布 - [ ] 基础文档(README、快速开始) ### v0.5 交付物 - [ ] 数据导入导出 - [ ] 图标库增强 - [ ] 自定义背景 - [ ] 快捷键系统 - [ ] MySQL 支持 - [ ] 完整使用文档 ### v1.0 交付物 - [ ] 多用户支持 - [ ] 简单服务状态监控 - [ ] RESTful API - [ ] 基础 Widget(时钟、搜索) - [ ] 访问统计 - [ ] API 文档 - [ ] 运维监控接口 --- > **文档结束** > 本功能列表将随项目进展持续更新