我想给 NAS 换个首页,Hearth 没登录先把天气摊开了
家里 NAS Docker一多,要记的就太多了,去找了一圈,发现一个新的项目:Hearth。 Hearth 把自己写成:a lightweight home dashboard for self-hosted on home server。口号听起来已经像给中文用户留了一扇带拼音搜索的门。口号不等于你家那台小盒子已经变成每天打开的那一个标签。
这点很重要。我缺的往往不是再一个仪表盘,是一个愿意承认「我想每天看一眼」和「我想把所有服务都收进同一张玻璃」中间还隔着登录、套接字和你自己懒得再写 YAML 的地方。今天这篇不讲概念。我在本机(ARM64、大约 4C / 3.8G 内存、根盘大约 115G)拉的是 cailurus/hearth:latest,仓库 cailurus/Hearth,采集时公开大约 ★7。镜像标签写 0.8.1,构建时间 2026-09-09,digest 以 47d6c110 开头。二进制对得上 AArch64。容器起来了。8787 开了。健康检查回 ok。下面都是空桌附近的实话,不是假装已经把 Jellyfin、下载器和每一只容器的开关都钉在壁炉上。
它和 Homepage、Glance、昨天那只 ZettNAS 都不在同一句话里。Homepage 管的是 YAML 和一百多个集成。Glance 更像一份新闻墙。ZettNAS 管的是「一块像操作系统的工作台」。Hearth 管的是「一扇中文的家用门」——分组应用、拼音 Cmd+K、天气、世界时钟、节气、一块系统状态,外加可选的 Docker 监控。一只容器,默认端口 8787,数据 /data。家用可以试。买之前最好先把这句摆正:官方 compose 还想要 Docker 套接字。今天这只入口对你就是「首页自己还活着」,不是已经替你发现完全家服务的启动器。README 自己也写:套接字是可选的;不挂,其它功能照样转。
第一次让我愣住的,不是空卡片。是开机顺序。浏览器标题已经写成 Hearth:My Home,问候语是「早上好」,日期是周日上午。页面中间没有登录墙。天气卡片写 Shanghai,21.3°C,晴,风 13.0 km/h,下面五天预报。世界时钟四块:Tokyo、Paris、New York、London。系统状态更直:CPU 写成 Cortex-A53,内存 1GiB/4GiB,磁盘 12GiB/114GiB。右上角才是一个人形按钮,title 写「登录」。我预想中的「装上先改密码」,实际看见的是一张已经愿意值班的客厅看板。
未登录的 Hearth 首页:早上好、上海天气、世界时钟和一块系统状态8787 开了,壁炉已经在烧。烧的是天气和这块板子自己的数字,不是已经钉好的应用墙。
这点我能接受——家用工具如果一打开就是空白,我会先怀疑自己是不是进错门。可这也是边界:未登录就能看见 CPU、内存、磁盘和网卡速率。本机映射只绑在 127.0.0.1。8787 不要直接丢给光猫。v0.8.1 的 README 把初始口令写得很直:设了 HEARTH_INITIAL_PASSWORD 就用它;不设就生成 16 位随机数,只在 stdout 打一次。本机我图省事,把口令写进了环境变量,日志回 must_change=false。门是有的。门不挡看板。
我点那个人形按钮,弹出的不是设置,是一张小登录卡。标题「登录」,两栏用户名和密码,底下一个按钮还是「登录」。没有中文向导,没有「欢迎来到你的私人壁炉」。卡片叠在已经亮着的天气上面,像客厅灯开着、却要你再报一次名字。
登录卡片叠在首页上:用户名、密码,按钮仍写登录看板已经在值班。值班的是未认证的一面,认证只是把「早上好」改成「早上好, admin」。
我填了 admin 和自己的一串。点完登录,它没有把我丢进应用列表,而是弹出 快速设置。原文几乎不翻译成英文:第 1 / 4 步,选择语言,中文 / English,随时可在「设置」中修改。两个出口,一个「跳过这步」,一个「保存并继续」,右上角「稍后再说」。问候语这时才改成「早上好, admin」。Hitokoto 还在滚杜甫或者洪仁玕。应用分组仍是空的。Docker 监控也是空的——本机没把套接字喂进去。
首次快速设置:第 1 / 4 步,先选语言四步向导把预期摊开了。你要的如果只是一块首页,语言这一步可以以后再说;应用卡片不会因为你登了名就自己长出来。
我按了 Escape,「稍后再说」那种心情。进门之后,顺手的地方其实很轻。标题仍是 My Home。天气仍是上海。世界时钟仍按默认四城转。系统状态仍读这台 Cortex-A53。空载时这只容器大约 3.3MB,截图时大约 9MB,CPU 多数时候是 0。镜像在 docker images 里大约 75.6MB,内容层大约 18.6MB。4G 的板子对这一只首页宽裕得很。宽裕不等于墙上已经挂好你的服务。默认首页更像一张「今天天气如何、这台盒子还活着没有」的纸条,不是 Portainer 旁边那份启动清单。
登录后的首页:问候语多了 admin,应用墙仍是空的名字加上了。加上的是称呼,不是已经替你分组的 Jellyfin 和下载器。
点开设置,预期落差才具体。窗口标题 系统设置,左侧五个入口:通用、时间、背景、账户、数据。通用页能改标题、语言、默认天气城市、是否显示问候语。时间页管时钟。背景页把野心摊得更开:动态背景可以从必应每日、随机图、Unsplash、Picsum 或者视频里选,底下还有「季节氛围」那种会下雪、会樱花的开关。账户才是口令。数据才是备份。本机没有把 Docker 套接字挂进去,所以这里看不见容器开关,也看不见 hearth.* 标签自动发现。官方说它也能读 Homepage 那套 homepage.* 标签。读得见的,取决于你有没有把钥匙递进去。我今天没递。
系统设置通用页:标题、语言、天气城市、问候语设置布置好了。布置的是这块壁炉自己的脾气,不是已经扫完的服务目录。
背景这一页最容易想多。预览框里能看见模糊的风景,下拉框写着必应每日、随机、Unsplash。家用如果把 8787 理解成「每天自动换壁纸的客厅电视」,会把流量和第三方图源听成已经包含在一只 18MB 的容器里。它不是没用。它把「首页好看一点」放在「首页能打开服务」前面。对我来说这很合适——我本来就不是来找第二套 NAS 系统的。可这也是边界:好看是设置项,服务还是你自己加。拼音搜索、拖拽分组、健康检查小圆点,都写在 README 里。写在 README 里,不等于今天这只 8787 已经变成启动器。
背景设置:必应每日、随机图和季节氛围,预览还是一张风景壁纸的开关在。开的是心情,不是已经挂好的家庭入口。
原理其实不神秘。这只容器可以当一只很轻的面板自己活着:未登录看板、登录、四步快速设置、系统设置。它真正答应的「分组应用、拼音搜索、Docker 启停」,要先有你点进去的链接,最好再有 Docker 套接字,以及你是否接受一块能对宿主机容器点停止的面板。没有这些,8787 仍能亮,天气仍能报上海,时钟仍能转东京。本机是 RK 的 ARM64,镜像对得上,内存对这一只首页几乎看不见。官方还专门写了群晖 / 飞牛那类「只能挂目录、不能挂单个 sock 文件」的土办法:把 /var/run 挂成 /host-run,再设 HEARTH_DOCKER_SOCKET。家用如果照着 NAS 面板原样粘贴却看不见容器,踩的可能不是「镜像坏了」,是「套接字根本没进去」。
还有两件开机时才碰到的土事。第一,未登录看板和登录后的首页几乎是同一张纸。差别是问候语多了个名字,以及右上角从「登录」变成设置。把「已经能看 CPU」听成「已经锁好了」,会把 8787 暴露在不该暴露的地方。第二,快速设置是 1/4,语言只是第一扇门;后面大概还有城市、外观一类选择。本机我没有走完四步。走完也不等于应用墙会从空气里长出来。Hitokoto 要出网,Open-Meteo 要出网,行情组件若打开还要去碰 Yahoo。盒子在客厅,数据不一定只在客厅。
如果你已经有一台在跑 Docker 的家用盒子、缺的是「每天打开一次的中文首页」、接受「未登录就能看见这块板子的数字、8787 留在局域网、应用要自己加或靠标签发现、Docker 监控今天只是可选项、镜像很轻、第一次登录会先问语言」,也接受第一周墙上仍是天气和四座城市的钟,可以考虑。本机镜像对得上 arm64,面板空载几 MB,活着。还没有 Docker、只想要一个「装上就是群晖套件中心」按钮的,现在这只入口对你就是「壁炉很暖,服务在隔壁」,不必为了「换个皮肤」再养一只看板。已经有 Homepage 的 YAML、而且缺的就是拼音和节气的,官方自己也把定位写成中文家用口味,不是去替代那一百个集成。
不适合的人也清楚。把拉取成功听成「已经发现全家人的服务、已经能在面板里开关每一只容器」的,今天这条镜像对你就是「首页在,钥匙不在」,不是「再改一下主题色」。完全不想管套接字、又把 8787 理解成可以丢给孩子随便点的公共电视的,这里多出来的不是壁炉,是一块未登录就报 CPU 的客厅纸。指望它替代 Immich 做相册、替代 Jellyfin 做客厅、就把玻璃拟态听成「第二个群晖」、就把上海天气理解成「定位已经校准」的,会把启动顺序听漏。把「能搜应用」听成「我已经有私人启动器且应用都在」的,风险不在 Docker,在预期。Homepage 那种靠标签自动铺满一墙的仓库,也不是这一只轻容器今天该扛的活。
对我来说,真正改变习惯的不是 8787 这个数字,是我开始把「我想要一个首页」和「我想再装一套仪表盘系统」拆开。以前我会怪自己标签页太多,怪五个网页来回切,怪小盒子看起来不像一台成品。现在至少有一个仓库能告诉我:懒不是唯一原因,壁炉也可能先报天气,门也可能只挡编辑、不挡看板,Docker 盒子上的「首页」可能只是一张还没钉上服务、也还没接到套接字的纸条。这句话听起来没有那么刺激,但可能更真实。买之前最好先把预期摆正:它给的是一台只值班的中文首页、不替你发现服务、不把空墙听成已经挂满的启动器,不是一座已经装满的私人门户。我这台 ARM 小盒子,今天进了门廊,墙上还没有一份被它标成已经分组完的家庭入口。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~


登录