项目/工具
工具 · 运行中

家庭主页与导航

Homer 单页导航:15+ 个自建服务入口,手机电脑一页直达。

Homer导航NPM

它是什么

Homer 是一个由一份 YAML 驱动的静态导航页。我把家里 15 个以上自建服务的入口全收在这一个页面上,手机和电脑打开同一个地址,点一下就能进去。

为什么做

服务一多,问题就很明显:书签栏塞满、端口记不住、域名想不起来,每次找服务都要翻聊天记录。Homer 的做法很朴素——用一份 config.yml 描述分组、名称、图标和链接,页面完全由这份配置生成,改完刷新就生效。

解决了什么

  • 入口分散:一个页面替代一堆书签,按“运维 / 媒体 / 工具”这类分组排开。
  • 地址记不住:卡片上直接写清名称和副标题,端口、域名不用背。
  • 手机不好用:响应式布局,手机上同样一屏可点,不用缩放。

现在的状态

运行中。静态文件放在 /opt/web/homer-assets,配置文件是 config.yml,前面用 NPM 做反向代理和 HTTPS 证书。日常维护就是改 YAML、刷新页面,不涉及数据库和后端进程,重启也不丢状态。

功能

  • 15 个以上自建服务入口,按分组一页直达
  • 整站由单份 config.yml 驱动,改完刷新即生效
  • 响应式布局,手机与电脑共用同一地址
  • 通过 NPM 统一域名与 HTTPS 证书
  • 纯静态托管,无数据库、无后端进程

技术栈

HomerYAMLNginx Proxy ManagerNginx静态托管HTTPS

使用 / 部署教程

部署步骤

1. 准备静态目录

把 Homer 的发布包解压,得到 index.html 和 assets/ 等静态文件,整体放到 /opt/web/homer-assets。真正需要你维护的只有 assets/config.yml 这一份配置。

2. 编写 config.yml

基本结构是 services 下挂若干分组,每个分组里列条目,常用字段包括 name、subtitle、logo、tag、url。建议先搭两三个分组跑通,再批量往里加,避免一次写错定位半天。缩进用空格,层级错一格页面就会空白。

3. 配置 Web 服务与反向代理

在 NPM 里新建一个 Proxy Host,域名填你自己的导航域名,上游指向承载静态文件的 Web 服务;如果直接用 Nginx,把 root 指到 /opt/web/homer-assets 即可。顺手在 SSL 页签申请证书并开启强制 HTTPS。

4. 验证

先用电脑浏览器打开域名,确认分组、图标、链接都正常;再用手机打开同一地址,检查卡片是否自动折行、点击区域够不够大。任何一项不对,回 config.yml 找对应条目。

5. 备份与维护

config.yml 是唯一有信息量的文件,把它纳入 Git 或定期复制一份出来。以后新增服务,只需要在配置里加一条,刷新页面生效,不用重新部署。

注意

  • config.yml 里通常会写内网地址和端口,这份配置不要提交到公开仓库。
  • 图标尽量放在本地 assets 目录,长期依赖外部 CDN 容易出现图标加载不出来。
  • 页面本身没有鉴权,能访问域名的人就能看到全部入口,必要时在 NPM 上加 Access List 或基础认证。