一句话定位:自托管服务统一入口仪表盘,把你NAS上所有容器(Dozzle、Jellyfin、Vaultwarden、DTK等)集中放一个页面,一键跳转,还能实时看容器运行状态、读取服务API数据,无数据库,轻量,yaml配置,非常适合群晖。

官网:gethomepage.dev 镜像:ghcr.io/gethomepage/homepage:latest

✅ 核心亮点(对你的环境很实用)

  1. Docker自动发现(王牌功能) 给容器加一行label标签,Homepage自动识别、自动加到面板,不用手动写链接;读取docker.sock,实时显示容器是运行/停止状态。
  2. 超多服务内置对接组件 Jellyfin、Vaultwarden、qBittorrent、UptimeKuma等,不仅是跳转链接,还能直接展示实时指标(资源、任务、状态)。
  3. 小组件Widgets:系统资源、天气、搜索框、服务器信息,自由排布。
  4. 书签分组:内网工具、外网网站,分类管理。
  5. 主题自定义、暗色模式、支持PWA、可选密码登录
  6. 资源占用低:镜像很小,内存占用几十MB;不需要数据库,全部配置存yaml文本,备份只需要复制文件夹。

和Dozzzle搭配:首页点Dozzzle卡片直接跳转日志面板,一套homelab运维入口。

📁 群晖 Container Manager:文件夹准备(必须手动建)

路径:/volume2/docker/homepage

volume2
└── docker
    └── homepage        ← 手动新建文件夹
        └── config      ← 里面放4个yaml配置文件,容器初次启动自动生成

操作:File Station进入/volume2/docker,新建homepage文件夹,空文件夹即可,容器启动自动在内部生成config目录与4个yaml文件:

  • services.yaml:服务链接与docker自动发现配置(最常用)
  • widgets.yaml:小组件
  • bookmarks.yaml:网页书签
  • settings.yaml:全局设置、标题、语言、主题

📌 端口说明

容器内部端口:3000 宿主机映射默认:3000:3000

检查端口占用:SSH执行 sudo netstat -tulpn | grep 3000 如果3000占用,改为 3001:3000,访问地址:http://NASIP:3001

📄 Compose yaml(群晖Container Manager项目直接粘贴)

services:
  homepage:
    image: ghcr.io/gethomepage/homepage:latest
    container_name: homepage
    restart: unless-stopped
    ports:
      - "3000:3000"
    volumes:
      - /volume2/docker/homepage:/app/config
      - /var/run/docker.sock:/var/run/docker.sock:ro
    environment:
      HOMEPAGE_ALLOWED_HOSTS: localhost,127.0.0.1,192.168.0.51

/var/run/docker.sock:ro 只读挂载,安全!只读取docker信息,不能操作容器,比Dozzzle挂载更安全。 192.168.0.51 替换成你的NAS内网IP。

🚀 Container Manager 创建项目完整步骤

  1. Container Manager → 左侧【项目】→【创建】
  2. 项目名称:homepage(小写)
  3. 撰写文件:选择【新建撰写文件】,粘贴上面yaml
  4. 【环境】保持默认
  5. 【网络】默认bridge
  6. 勾选【启动项目】→下一步→完成

访问地址

http://NASIP:3000

🧩 配置示例(直接写进 services.yaml,把你现有服务加到首页)

进入 /volume2/docker/homepage/config/services.yaml,写入分组示例:

- 运维工具:
  - Dozzle:
      icon: dozzle
      href: [http://192.168.0.51:8080](http://192.168.0.51:8080)
      description: 容器实时日志
  - Homepage:
      icon: homepage
      href: [http://192.168.0.51:3000](http://192.168.0.51:3000)
      description: 服务导航面板
- 自建服务:
  - Vaultwarden:
      icon: vaultwarden
      href: [https://home.511yj.com](https://home.511yj.com)
      description: 密码管理器
  - Jellyfin:
      icon: jellyfin
      href: [http://192.168.0.51:8096](http://192.168.0.51:8096)
      description: 媒体库

修改yaml保存后,重启homepage容器,页面立刻生效

⚠️ 安全要点

  1. sock用:ro只读,Homepage只能读取容器状态,不能启停容器,安全。
  2. 内网裸奔没问题;公网访问,必须套群晖反向代理+HTTPS,建议开启Homepage密码认证。
  3. 所有配置是纯文本yaml,备份直接复制整个/volume2/docker/homepage文件夹。

✨ 进阶:Docker标签自动发现(推荐后续给Dozzzle等容器加上)

以Dozzzle为例,在Dozzzle的compose环境增加labels,Homepage自动识别,不用手动写services.yaml:

labels:
  - homepage.group=运维工具
  - homepage.name=Dozzzle
  - homepage.icon=dozzle
  - homepage.href=[http://192.168.0.51:8080](http://192.168.0.51:8080)
  - homepage.description=容器实时日志

❓ 常见报错

  1. Bind mount failed:/volume2/docker/homepage不存在 → File Station手动新建文件夹
  2. 打开页面空白/无法加载:检查HOMEPAGE_ALLOWED_HOSTS,NASIP填写正确
  3. 看不到docker容器状态:确认/var/run/docker.sock:ro挂载没有漏写