小尘要自信头像
NAS服务越装越多入口太乱?我用Homarr把常用应用和组件集中到一个首页封面图

NAS服务越装越多入口太乱?我用Homarr把常用应用和组件集中到一个首页

前言

NAS刚开始折腾时,服务少还不觉得麻烦:影音一个端口、下载一个端口、相册一个端口,浏览器里记几个书签就够了。但等Docker服务越装越多,真正影响使用体验的往往不是“服务跑不起来”,而是入口越来越难记,页面也越来越散。

这次我把 Homarr 部署到飞牛NAS,用 Docker Compose 把它运行在7575端口,再通过首次初始化创建账号、设置语言和面板,然后实际添加测试链接、天气组件和应用卡片,看看它能不能把分散的入口集中到一个页面。

本地导航页跑通以后,再给7575增加外部访问入口,从随机公网地址切换到固定二级子域名。

整篇重点不是把Homarr写成“万能NAS总控台”,而是把飞牛NAS → Homarr → 导航面板 → 应用卡片/组件 → 7575 → 远程访问这条链真正跑通,同时把“导航入口”和“真正控制后端服务”这两个概念分开。

这类导航面板真正值得长期维护的地方,也不只是“看起来整齐”,而是以后新增服务时只需要继续往同一个面板里补入口,不必再给每台电脑和每个浏览器分别整理一套书签。服务数量一多,这种统一入口的价值会越来越明显。

image-20260728160135166

1 Homarr真正适合解决什么问题

Homarr更适合被理解成:

面向NAS、Homelab和自建服务的可视化导航仪表盘。

当家里已经有:

  • Jellyfin;
  • qBittorrent;
  • Immich;
  • FileBrowser;
  • Uptime Kuma;
  • Memos;
  • WBO;
  • 其他Docker服务;

真正麻烦的是:

每个服务都有自己的IP和端口。

Homarr的价值,就是把这些入口集中到一个页面里。

2 它和普通浏览器收藏夹有什么区别

浏览器书签解决的是:

保存网址。

Homarr更偏向:

  • 卡片式服务入口;
  • 可视化布局;
  • 组件展示;
  • 天气等信息模块;
  • 自定义面板;
  • 多服务集中管理入口。

所以它更适合长期放在:

NAS首页 / 浏览器首页 / 家庭服务器入口页。

3 “能放进面板”不等于“能直接管理后端服务”

Homarr本身可以围绕不同应用做集成。

但具体能不能看到状态、读取数据、控制容器,要看:

  • 有没有配置对应Integration;
  • 有没有提供API;
  • 有没有挂载Docker Socket;
  • 有没有填写凭据;
  • 当前部署方式是否授予了对应权限。

这篇实际验证的是:

导航面板、组件和应用入口。

当前Compose里只挂载了:

./appdata:/appdata

并没有挂载:

/var/run/docker.sock

所以正文不会把“直接启停Docker容器”写成这篇已经跑通的功能。

4 这次实际要完成哪些步骤

整条链可以拆成:

  1. 飞牛开启SSH;
  2. 确认Docker;
  3. 创建Homarr目录;
  4. Docker Compose启动Homarr;
  5. 访问7575;
  6. 首次初始化;
  7. 添加测试链接;
  8. 添加组件和应用;
  9. 通过cpolar做远程访问。

先把Homarr本地功能跑通,再增加公网入口。

5 先开启飞牛SSH

在设置里开启SSH:

463c5f2aa280d7887420494b8b8f852e

继续确认:

27abe7f94baeaebc1738b60b1ba78933

终端登录:

e16c7480a399e50f627439329422c5a7

后面的Docker操作都通过SSH完成。

6 验证Docker环境

执行:

docker -v 
systemctl status -v

也可以直接从飞牛主页查看:

bc2a0952beed8ca143a171bb000b2b23

确认Docker环境可用以后,再开始部署Homarr。

7 创建Homarr目录

执行:

mkdir -p /docker/Homarr
cd /docker/Homarr

结果:

image-20260728155351414

这次目录使用:

/docker/Homarr

后面的Compose配置和数据目录都围绕这里保存。

8 创建docker-compose.yml

配置保持如下:

services:
  homarr:
    image: ghcr.io/homarr-labs/homarr:latest
    container_name: homarr
    ports:
      - 7575:7575
    environment:
      - SECRET_ENCRYPTION_KEY=7a2f4d8c1e3b596d0a8f2c4e6b0d1f3a5c7e9b1d3f5a7c9e1b3d5f7a9c1e3b5d
    volumes:
      - ./appdata:/appdata
    restart: unless-stopped

页面:

image-20260728155404939

这份配置主要包括:

  • 镜像:ghcr.io/homarr-labs/homarr:latest
  • 容器名:homarr
  • 端口:7575:7575
  • 数据目录:./appdata:/appdata
  • 重启策略:unless-stopped
  • SECRET_ENCRYPTION_KEY

9 7575端口负责什么

这里是:

7575:7575

也就是说:

  • 容器内部Homarr运行在7575;
  • 飞牛NAS外部也通过7575访问。

后面浏览器和cpolar都围绕这个端口继续配置。

10 appdata为什么要映射出来

Compose里保留了:

./appdata:/appdata

这样Homarr的配置和数据不会只存在于容器内部。

它的意义是:

容器和数据分开。

后面即使需要重建容器,面板配置也更容易继续保留。

但持久化目录不等于自动备份。

如果面板已经长期维护,还是建议对appdata做额外备份。

11 SECRET_ENCRYPTION_KEY不要直接照抄示例

当前Compose里写入了一个:

SECRET_ENCRYPTION_KEY

这个值属于敏感配置。

不建议把文章里的示例值直接拿去长期使用。

更稳妥的做法是:

给自己的部署单独生成一个随机值,并妥善保存。

这篇为了保持已经跑通的Compose不变,不修改代码块本身,但使用时要注意这一点。

12 启动Homarr

执行:

docker compose up -d

结果:

image-20260728155413570

13 检查容器状态

执行:

docker ps

结果:

image-20260728155509424

看到Homarr容器运行以后,还要继续打开7575确认Web页面。

14 浏览器访问Homarr

访问:

http://飞牛IP:7575

页面:

image-20260728155517110

能够打开初始化页面以后,可以确认:

浏览器 → 飞牛7575 → Homarr

已经跑通。

15 第一次使用先切换中文

页面:

image-20260728155558236

如果习惯中文界面,可以先把语言切换成中文。

16 初始化时选择从零开始

页面:

image-20260728155655706

这次没有导入旧配置,所以直接选择:

从零开始。

17 创建第一个用户

页面:

image-20260728155740342

这一步建立Homarr自己的登录账号。

如果后面准备公网访问,账号密码不要继续使用测试强度。

18 选择初始偏好

页面:

image-20260728155946798

完成以后进入正式面板。

19 Homarr首页跑起来了

登录成功:

image-20260728160115465

做到这里,本地部署已经完成。

接下来才是真正把NAS里的服务入口放进去。

20 先添加一个测试项目

页面:

image-20260728160804295

配置完成以后跳转面板:

image-20260728160824807

点击以后:

image-20260728160856427

这一步证明的是:

Homarr可以作为统一导航入口跳转到其他服务或网站。

21 再创建新的项目

页面:

image-20260728161035495

Homarr里可以继续选择不同类型的卡片或应用:

image-20260728161140349

对于NAS来说,这类入口更适合按用途整理。

例如:

  • 影音;
  • 下载;
  • 相册;
  • 文件;
  • 监控;
  • 笔记;
  • 运维。

22 组件不一定都是“应用入口”

例如这次继续添加天气信息:

image-20260728161106783

这说明Homarr除了应用卡片,还可以放信息组件。

所以它既可以当:

服务导航页

也可以当:

家庭服务器信息首页。

23 面板本身可以继续调整

设置页面:

image-20260728161249544

这里可以继续围绕:

  • 布局;
  • 外观;
  • 面板;
  • 组件;

做调整。

真正长期使用时,建议按自己的访问频率排布局。

高频服务放前面,偶尔使用的服务放后面。

24 创建应用入口

页面:

image-20260728161449450

继续配置:

image-20260728161433565

添加以后:

image-20260728161518066

这样常用服务就可以逐步集中到Homarr里。

25 本地使用到这里已经跑通

现在已经完成:

飞牛NAS

↓

Docker Compose

↓

Homarr:7575

↓

用户初始化

↓

测试链接

↓

面板

↓

天气组件

↓

应用入口

如果只在局域网里使用,到这里已经足够。

26 一个重要边界:Homarr入口能打开,不代表里面所有服务都能外网访问

例如Homarr里保存:

192.168.x.x:端口

这样的内网服务。

即使Homarr本身已经可以从公网打开,人在外面点击这些局域网地址时,目标服务仍然可能打不开。

所以:

Homarr公网可达 ≠ 所有内网服务自动公网可达。

如果确实需要远程访问某个具体服务,还要单独解决那个服务的网络入口。

27 远程访问前先考虑Homarr里的内容

Homarr面板可能会暴露:

  • NAS服务名称;
  • 内网IP;
  • 内部端口;
  • 管理后台;
  • 家庭服务结构;
  • 监控入口。

所以公网开放以后,要同时注意:

  • Homarr账号密码;
  • 面板是否公开;
  • 固定地址传播范围;
  • 高权限后台是否直接放在首页。

cpolar负责网络入口。

Homarr自己负责账号和面板权限。

28 安装cpolar

执行:

sudo curl https://get.cpolar.sh | sh

结果:

image-20250725104019896

然后检查状态:

sudo systemctl status cpolar

结果:

22e5adfaf290a17fc3384bb296055259

确认服务正常以后,再进入Web管理页面。

29 打开cpolar Web UI

浏览器访问:

飞牛IP:9200

页面:

8a6698b1bf26d64ba3645827fbfb1c29

登录以后开始给Homarr创建隧道。

30 给7575创建随机公网地址

创建参数:

  • 隧道名称:Homarr
  • 协议:HTTP
  • 本地地址:7575
  • 域名类型:随机域名
  • 地区:China Top

页面:

image-20260728170452651

这里映射的就是Homarr Web使用的7575端口。

31 查看随机公网地址

进入在线隧道列表:

image-20260728170520038

从其他网络访问:

image-20260728170534254

能够正常打开以后,可以确认:

外部浏览器 → 公网地址 → 飞牛7575 → Homarr

已经跑通。

32 随机地址适合先验证

随机公网地址更适合:

  • 临时测试;
  • 偶尔使用;
  • 验证链路。

如果准备把Homarr长期设成远程导航首页,再继续配置固定二级子域名。

33 保留固定二级子域名

预留页面:

image-20250918151358733

本次示例使用:

Homarr

结果:

image-20260728170628968

实际使用时,以自己账号最终成功保留的名称为准。

34 编辑Homarr隧道

回到隧道列表:

image-20260728170738178

修改:

  • 域名类型:二级子域名;
  • Sub Domain:已保留名称;
  • 地区:China Top。

更新:

image-20260728170801373

35 查看固定地址

进入在线隧道列表:

image-20260728170824545

可以看到随机地址已经切换成固定二级子域名形式。

36 最后从外部设备访问

使用固定公网地址:

image-20260728170846650

能够正常进入以后,长期远程入口完成。

整条链现在变成:

外部浏览器 → 固定公网地址 → 飞牛7575 → Homarr导航面板

37 固定地址解决的是“Homarr入口稳定”

固定二级子域名主要解决:

  • 手机长期收藏;
  • 浏览器设置首页;
  • 外出时不需要查随机地址;
  • 多设备使用同一个入口。

它解决的是:

Homarr自身的访问入口。

并不代表:

  • 面板里的所有应用都自动打通公网;
  • Docker容器已经能直接启停;
  • 所有监控组件都已经接入;
  • 高权限后台可以无保护公开。

38 这篇真正验证了哪些能力

已经实际跑通:

  • Homarr容器;
  • 7575访问;
  • 首次初始化;
  • 用户创建;
  • 测试链接;
  • 面板跳转;
  • 天气组件;
  • 应用创建;
  • 随机公网访问;
  • 固定公网地址。

没有在这组步骤里完整验证:

  • Docker容器启停;
  • Jellyfin实时状态;
  • qBittorrent下载队列;
  • 系统资源监控;
  • LDAP/OIDC;
  • 多用户权限分板。

这些功能如果后面继续配置,可以再单独做对应实操。

39 这套方案更适合什么人

比较适合:

  • NAS里已经有很多服务;
  • 经常记不住端口;
  • 想做一个家庭服务首页;
  • 不想手写大量导航配置;
  • 想用可视化方式组织入口;
  • 希望多设备共享同一套导航。

如果只有两三个服务,浏览器书签已经够用。

Homarr真正体现价值,通常是在:

服务数量越来越多,而且入口需要长期维护以后。

40 最后把完整技术链重新看一遍

基础环境:

飞牛NAS → SSH → Docker

部署目录:

/docker/Homarr

镜像:

ghcr.io/homarr-labs/homarr:latest

端口:

7575:7575

数据:

./appdata:/appdata

安全配置:

SECRET_ENCRYPTION_KEY

本地使用:

初始化 → 用户 → 面板 → 项目 → 组件 → 应用

随机远程:

公网随机地址 → 7575

固定远程:

固定二级子域名 → 7575

实际完成:

  • SSH开启;
  • Docker检查;
  • Homarr目录;
  • Compose配置;
  • appdata持久化;
  • SECRET_ENCRYPTION_KEY;
  • 容器启动;
  • 7575本地访问;
  • 中文界面;
  • 从零初始化;
  • 用户创建;
  • 项目测试;
  • 页面跳转;
  • 天气组件;
  • 面板设置;
  • 应用创建;
  • cpolar安装;
  • 随机公网访问;
  • 固定二级子域名;
  • 外部设备访问。

这样Homarr才真正从“又一个导航页”,变成一套可以长期维护NAS服务入口、并支持多设备访问的家庭服务器首页。

总结

这次真正跑通的是一条完整的Homarr使用链:先在飞牛NAS里确认SSH和Docker环境,通过Docker Compose把Homarr运行在7575端口,并把appdata目录映射出来,让面板配置和容器本身分开保存。

功能验证没有停在“页面能打开”,而是继续完成首次初始化、创建用户、添加测试链接、天气组件、面板设置和应用入口。这样才能确认Homarr确实可以承担NAS服务导航首页,而不只是一个空白容器。

需要特别区分的是,Homarr可以作为统一入口,但这篇并没有验证Docker容器启停、Jellyfin状态、qBittorrent队列等深度集成功能;而且当前Compose没有挂载Docker Socket,所以不能把“直接控制Docker”写成已经完成的结果。

远程部分是在本地导航正常以后再增加的能力。随机公网地址先验证7575链路,固定二级子域名再解决长期入口变化的问题;但Homarr公网可达,不等于面板里所有内网服务都会自动公网可达,真正需要远程访问的高权限服务仍然应该单独处理网络和认证边界。

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/qq_54796785/article/details/168535416

文章来源转载

评论

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--