小说搜索 - 终极导航(终极道在线阅读)
在浏览器里敲上 NAS 的 IP 加端口,Homepage 页面就能直接打开,所有常用服务、书签和小工具都摆在一页上,能立刻用。
后面我是一步步折腾出来的。用的是 QNAP 的 Container Station,把写好的 Docker Compose 配置直接粘到它的图形界面里创建应用,过程很直观:Container Station 右上角有个小箭头,点开选“创建应用程序”,把修改过的 Compose 内容贴进去,提交就完事。容器跑起来后,相关的映射目录会自动在 NAS 上生成,不用先手动去建目录。那路径是在 Container->container-station-data->application->应用名称,所有映射的文件都会放在这里,管理起来比较方便。
要注意几项必须改的配置。默认 Homepage 监听的是 端口,如果你的 NAS 上已经有服务占着这个端口,要换个别的端口。卷映射这块一定要把配置目录映射出来,不然你对 setting、widgets、bookmarks 做的修改都不会被保存。我的做法是把 config 映射成 ./config:/app/config。起初我没映射图片目录,结果本地图片加载不了,所以后来又加了
./images:/app/public/images。还有个很关键的环境变量是 HOMEPAGE_ALLOWED_HOSTS,必须写上你用来访问的地址,格式像 NAS_IP:端口,否则页面可能被拒绝访问或静态资源不加载。把这些地方改好,创建容器后 Homepage 就能访问了。
打开页面会先看到一个很基础的界面,默认内容不多,需要自己填那几个 YAML 文件才能变成实用的首页。Homepage 的页面配置主要由四个 YAML 文件控制:setting.yaml、widgets.yaml、services.yaml、bookmarks.yaml。每个文件负责不同的区域:setting 控制整体页面和一些开关;widgets 管理头部那些小组件;services 是要显示的服务项;bookmarks 就是网址收藏。
setting.yaml 能调的东西不少。title 控制导航页标题,favicon 是浏览器标签小图标,language 改成 zh-CN 就全部中文化。background 可以填外网图片,也可以用 NAS 上的本地图片(这就要用到前面映射的 images 文件夹),还能对背景做模糊、饱和、亮度、不透明度等调整,想要更顺眼的都可以微调。headerStyle 有几种风格可选,像 underlined、boxed、clean、boxedWidgets 之类,选一个喜欢的就行。quicklaunch 是个搜索快捷功能,不仅能在页面内部搜,还能指定外部搜索引擎去搜,能设 bing、baidu、google。layout 决定分组怎么排,默认是列布局,也能改成按行排并设每行显示多少个元素,目的是把常用的东西放到一页内打通。
我在 widgets.yaml 里改了搜索项,顺手加了日期时间和天气。搜索引擎按你习惯换,时间显示几乎不用动。天气我用 openmeteo 的免费接口,要做的就是填上本地的纬度经度,就能按地点显示天气了。头部既能搜东西又能看时间天气,日常用起来更直观。
services.yaml 是把各种服务放进首页的地方,格式很简单:给每个服务写名字、URL、图标等。图标可以用系统自带的,也能引用 NAS 本地的图标文件(路径同 background 那种映射方式)。进阶一点的服务还能配服务小组件来显示状态、响应时间之类,不过那块设置比较复杂,要按每个服务的 API 来写监控项,我这次主要是先把常用入口补齐,监控模块会后续再加。
bookmarks.yaml 就像浏览器书签,按格式把网址和显示名称、图标加进去就能在页面里看到快捷入口。四个 YAML 编辑好后放到映射出来的 config 目录,Homepage 会按这些文件渲染页面,改完刷新就见效果。
部署上我建议走 Docker Compose 的方式,配置文件清晰,后面维护和搬迁都方便。我没用命令行,因为 QNAP 的 Container Station 图形化把镜像拉取、容器创建、端口和卷映射都做得很顺手,省去了不少 CLI 的细活。容器创建后,相关目录会自动出现在 Container Station 的数据路径里,这一点挺贴心,不像以前得先自己建一堆目录。
硬件方面我用的是 QNAP Qu405,这台四盘位 NAS 搭 Intel N355 处理器,配 DDR5 内存,实际体验是多任务处理顺手,传大文件或偶尔做 4K 转码也够用。系统可以选 QTS 或 QuTS hero,根据场景切换。Container Station 在这平台上跑得很稳,系统自带的 Qsirch、Qfiling、File Station 这些服务可以在后台一起工作,整体负担不会太高,日常操作会轻松一些。
折腾中踩了几处坑,记录下来给别人省点事。第一个是端口冲突,碰到就改 Homepage 端口或把已有服务的端口换掉。第二个是忘了映射 config 目录,结果所有自定义都丢了,得重新创建容器。第三个坑是图片没映射,本地背景和图标取不出来,后来专门加了 images 映射就解决了。还有一点小细节,HOMEPAGE_ALLOWED_HOSTS 不写对会导致资源加载失败,这点容易被忽略。
可优化的地方也不少。服务那块可以按需要补监控模块,显示服务状态和响应时间更直观;图标和背景用 NAS 本地资源会更稳定;如果多人访问,别忘了把每个访问地址都写进 HOMEPAGE_ALLOWED_HOSTS。日常调整里,最常动的还是 layout 和 widgets,把最常用的内容放显眼的位置,减少翻页查找的时间。
我这次折腾下来,最大的收获是两点:一是理解了映射配置的重要性,所有自定义都靠映射保存;二是域名/地址限制那块,写错了会让页面看着有问题但难定位。接下来准备把 services 里补齐自己平常用的条目,按需扩展些监控模块,把这页做成家里和办公时的“一键入口”。