作者:LifeIsKillingMe
自组NAS最大的乐趣就是安装各种Docker(容器)了,之前在Rock 5B上利用各种Docker搭建了一整套豆瓣自动追剧系统,花了不少时间,但是最终实现了想要的功能,还是颇有成就感的。
不过好景不长,在清理日志释放空间的时候,错误的修改了系统权限,导致系统崩溃,SSH也无法正常使用。于是,又花了更长的时间重装系统,还给外接的SATA存储扩充到8T空间。
这次意外让我意识到了NAS日常维护的重要性,自组NAS因为都是自己搭建,系统比较复杂。之前管理运行的众多Docker都是依靠Portainer,各个容器一般IP地址都是一个,只是以不同访问的端口区分,平时记忆颇有不便。
本来想自己用Apache做个简单的Web Server,把这些容器的访问地址以链接的形式放到主页上。后来在G站浏览了一下,已经有不少大佬开发了不少类似的项目,并且分享了出来。这里就推荐一个比较容易上手的,名字就叫做Homepage。这是一个现代的、完全静态的、快速的、安全的、完全代理的、高度可定制的应用程序仪表板,集成了100多种服务,支持多种语言。可以通过 YAML 文件或 docker 标签发现轻松配置。

Homepage的安装
Homepage本身也是一个Docker,安装方法和其他容器差不多。
使用 docker compose:
version: "3.3"
services:
homepage:
image: ghcr.io/gethomepage/homepage:latest
container_name: homepage
environment:
PUID: 1000
PGID: 1000
ports:
- 3000:3000
volumes:
- /path/to/config:/app/config # 本地配置路径
- /var/run/docker.sock:/var/run/docker.sock:ro # 可选,用于集成Docker
restart: unless-stopped
或者 docker run:
docker run --name homepage
-e PUID=1000
-e PGID=1000
-p 3000:3000
-v /path/to/config:/app/config
-v /var/run/docker.sock:/var/run/docker.sock:ro
--restart unless-stopped
ghcr.io/gethomepage/homepage:latest
当然你也可以用用git的方法直接部署项目,这里就不赘述了。
安装完成后,即可浏览器打开默认的3000端口,访问导航页。下图中我在配置里做了端口映射到3333端口,相应的访问时也要改成对应端口。

为了便于理解,我将默认起始页用绿框分成了三个部分,分别是Widget(小工具)、Service(服务)和Bookmarks(书签)。

相应地,这三个部分有独立的YAML配置文件来控制。配置文件为homepageconfig文件夹下的widgets.yaml,services.yaml和bookmarks.yaml。

用你喜欢的文本编辑软件打开yaml文件,我这里使用的是Notepad++。
Homepage Service的配置
services.yaml默认设置里将服务分成了三个组,每个组可以包含数个不同的服务(Docker)。

我这里将第一个组重命名为Media Servers,然后添加了第一个服务Radarr。

icon:在导航页中服务显示的图标,作者已经将常用的Docker服务都集成到了项目中,我们直接输入radarr.png即会自动显示radarr的图标。
href: Docker服务的访问地址,实例中访问192.168.1.66的7878端口。
siteMonitor: 加入这一字段即可在导航页中显示访问站点的运行情况,默认会显示站点的ping值。你也可以使用statusStyle来自定义显示,比如标注"dot",如果站点可正常访问,就会显示为一个绿点。
description:服务的描述说明。
除了这些基本的信息,我还希望在起始页上显示服务的一些详细信息,比如Radarr监控了多少电影,有多少在下载等等。那么就需要利用Service Widget调用服务的API了。
Radarr的API可以在Settings->General->API Key里获取,然后将这串数值填到配置文件的字段中。

保存配置文件,刷新网页,显示效果如下:

还有一些服务是通过账号密码来访问详细信息的,比如Qbittorrent。

对于Emby甚至直接可以在页面中直接控制媒体播放。

其他服务的配置文件格式可以参见Widgets - homepage (gethomepage.dev)。
Homepage Widget的配置
默认的Widget会显示系统资源消耗情况,还有一个duckduckgo搜索栏。
当然我们也可以根据需求自定义,比如我这里就将搜索引擎改成了Google,并且在搜索栏右侧调用openmeteo服务显示当前天气。

最后显示效果如下:

Homepage Bookmark的配置
我们还可以在页面底部加入经常访问网址的链接,这一部分比较简单。

至此最后显示效果如下:

这里仅仅是展示了一些基本功能,其实Homepage的功能非常强大,还可以自动发现Docker,管理Kubernetes等,有待大家去发掘。











