随着 NAS 里的服务越来越多,Docker 容器、虚拟机、网盘、路由后台……每次都要在浏览器书签里翻找,或者手打 IP 和端口,实在有点烦人。今天我们就来聊聊如何利用飞牛NAS(fnOS)自带的 Docker 能力,部署一个轻量级、高颜值的导航门户——Homepage。它不仅能聚合你所有服务链接,还能实时显示系统资源、Docker 容器状态,甚至集成天气和搜索框,让你的 NAS 真正成为家庭网络的“总入口”。
为什么选择 Homepage?
市面上的导航面板不少,比如 Heimdall、Dashy,但 Homepage 有几个独特优势:
- 轻量级:单容器,内存占用通常不到 100MB,对 NAS 资源极为友好。
- 零数据库:配置基于 YAML 文件,改完即生效,无需重启容器(刷新页面即可)。
- 深度集成:原生支持 Docker、Proxmox、TrueNAS 等 API,能直接显示容器运行状态、CPU/内存占用。
- 美观现代:默认暗色主题,支持图标库(如 Font Awesome、Simple Icons),界面干净利落。
前置准备
在飞牛NAS上完成部署,你只需要准备:
- 一台已安装并正常运行的飞牛NAS(fnOS 0.8.6 或更新版本)。
- Docker 服务已启动(飞牛NAS 自带 Docker 管理界面,也支持命令行)。
- 一个用于存放配置文件的路径,例如
/vol1/docker/homepage(请根据你的实际存储池调整)。
第一步:创建配置目录
我们可以通过 SSH 登录飞牛NAS,或者直接在终端里操作。建议使用 SSH,因为后续写配置更高效。
mkdir -p /vol1/docker/homepage/config
你也可以在飞牛NAS的文件管理器里手动创建 docker/homepage/config 文件夹,效果一样。
第二步:编写基础配置文件
Homepage 的配置核心是 config/ 目录下的几个 YAML 文件。我们至少需要 settings.yaml(全局设置)和 services.yaml(服务分组)。先创建一个最小的 settings.yaml:
# config/settings.yaml
title: "我的 NAS 导航"
theme: dark
language: zh-CN
接着创建 services.yaml,定义第一个服务组和链接。例如,我们把 Docker 管理、飞牛NAS后台和路由器放在“核心设备”组里:
# config/services.yaml
- 核心设备:
- 飞牛NAS管理:
href: http://192.168.1.10:5666
description: fnOS 后台
icon: sh-fnOS
- Docker管理:
href: http://192.168.1.10:8080
description: Portainer 容器管理
icon: sh-portainer
- 路由器:
href: http://192.168.1.1
description: 小米路由器
icon: fas fa-wifi
注意:icon 支持两种写法,sh- 前缀代表 Simple Icons 图标,fas fa- 是 Font Awesome 图标。如果你不确定图标名称,先去 Simple Icons 官网查一下。
第三步:通过 Docker 命令运行容器
飞牛NAS支持 docker-compose,我们直接写一个 docker-compose.yml 文件放到 /vol1/docker/homepage/ 目录下,内容如下:
version: "3.3"
services:
homepage:
image: ghcr.io/gethomepage/homepage:latest
container_name: homepage
ports:
- "3000:3000"
volumes:
- /vol1/docker/homepage/config:/app/config
restart: unless-stopped
然后在 SSH 终端里执行:
cd /vol1/docker/homepage
docker-compose up -d
如果你的飞牛NAS版本较老,不支持 docker-compose,也可以直接用 docker run:
docker run -d \
--name=homepage \
-p 3000:3000 \
-v /vol1/docker/homepage/config:/app/config \
--restart=unless-stopped \
ghcr.io/gethomepage/homepage:latest
容器启动后,访问 http://你的NASIP:3000 就能看到基础页面了。此时只有一个组,没有任何动态数据,接下来我们让它“活”起来。
第四步:接入 Docker 状态监控
Homepage 的最大亮点是能直接展示 Docker 容器运行状态。我们需要在 settings.yaml 里配置 Docker 连接信息。由于 Homepage 容器默认没有挂载 Docker 套接字,我们需要先修改 docker-compose.yml,加入 socket 挂载:
volumes:
- /vol1/docker/homepage/config:/app/config
- /var/run/docker.sock:/var/run/docker.sock
然后重启容器:
docker-compose down && docker-compose up -d
接着在 settings.yaml 中添加 Docker 配置:
docker:
- host: unix:///var/run/docker.sock
label: 我的NAS Docker
保存后刷新页面,你会看到每个服务卡片下方出现了 Docker 容器状态指示点(绿=运行,红=停止)。但只有那些以 homepage 标签标记的容器才会被显示出来。我们需要在启动每个容器时加上标签,例如修改 docker-compose.yml 中的 homepage 服务本身:
labels:
- "homepage.group=核心设备"
- "homepage.name=Homepage导航"
- "homepage.icon=sh-homepage"
- "homepage.href=http://192.168.1.10:3000"
对于其他已存在的容器,你可以在飞牛NAS的 Docker 管理里找到对应容器,编辑它的“标签”或“环境变量”,手动添加 homepage.group 和 homepage.name 即可。这样 Homepage 就会自动拉取这些容器并显示状态。
第五步:进阶美化与信息卡片
Homepage 支持很多信息组件,比如天气、系统资源、搜索栏。我们可以通过 widgets 参数在 settings.yaml 中启用。例如添加一个天气组件和系统信息栏:
# settings.yaml 追加
background: "/assets/images/background.png" # 可选自定义背景
widgets:
- weather:
label: "上海"
units: metric
- resources:
cpu: true
memory: true
disk: / # 显示根分区占用
同时,在 services.yaml 里,每个服务还可以加 widget 字段,比如给飞牛NAS管理加上一个简单的存储空间显示:
- 飞牛NAS管理:
href: http://192.168.1.10:5666
description: fnOS 后台
icon: sh-fnOS
widget:
type: custom
html: "<p>存储池使用率:42%</p>"
当然,更复杂的 API 集成需要查阅官方文档,但以上已足够日常使用。
第六步:设置开机自启与访问
我们已经设置了 restart: unless-stopped,所以飞牛NAS重启后 Homepage 会自动启动。如果你希望局域网内其他设备也能访问,确保飞牛NAS防火墙放行 3000 端口即可。
如果不想用 IP+端口访问,还可以在飞牛NAS的应用中心里配置反向代理,设置域名或子路径,但这属于进阶话题,本节不再展开。
总结
通过以上步骤,你在飞牛NAS上成功部署了 Homepage,拥有了一个动态、美观且实用的导航门户。它不仅能聚合所有服务链接,还能实时监控 Docker 容器状态,配合天气、资源监控等小组件,极大提升了日常使用效率。后续你可以不断编辑 config/ 下的 YAML 文件来扩充分组、添加新服务,所有修改即时生效,无需重启容器。如果你有多个飞牛NAS或者服务器,甚至可以在一台 Homepage 上集中管理所有主机的 Docker 状态,真正实现“一站式导航”。享受你的 NAS 新门户吧!