前言
NAS刚开始折腾时,服务少还不觉得麻烦:影音一个端口、下载一个端口、相册一个端口,浏览器里记几个书签就够了。但等Docker服务越装越多,真正影响使用体验的往往不是“服务跑不起来”,而是入口越来越难记,页面也越来越散。
这次我把 Homarr 部署到飞牛NAS,用 Docker Compose 把它运行在7575端口,再通过首次初始化创建账号、设置语言和面板,然后实际添加测试链接、天气组件和应用卡片,看看它能不能把分散的入口集中到一个页面。
本地导航页跑通以后,再给7575增加外部访问入口,从随机公网地址切换到固定二级子域名。
整篇重点不是把Homarr写成“万能NAS总控台”,而是把飞牛NAS → Homarr → 导航面板 → 应用卡片/组件 → 7575 → 远程访问这条链真正跑通,同时把“导航入口”和“真正控制后端服务”这两个概念分开。
这类导航面板真正值得长期维护的地方,也不只是“看起来整齐”,而是以后新增服务时只需要继续往同一个面板里补入口,不必再给每台电脑和每个浏览器分别整理一套书签。服务数量一多,这种统一入口的价值会越来越明显。

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 这次实际要完成哪些步骤
整条链可以拆成:
- 飞牛开启SSH;
- 确认Docker;
- 创建Homarr目录;
- Docker Compose启动Homarr;
- 访问7575;
- 首次初始化;
- 添加测试链接;
- 添加组件和应用;
- 通过cpolar做远程访问。
先把Homarr本地功能跑通,再增加公网入口。
5 先开启飞牛SSH
在设置里开启SSH:

继续确认:

终端登录:

后面的Docker操作都通过SSH完成。
6 验证Docker环境
执行:
docker -v
systemctl status -v
也可以直接从飞牛主页查看:

确认Docker环境可用以后,再开始部署Homarr。
7 创建Homarr目录
执行:
mkdir -p /docker/Homarr
cd /docker/Homarr
结果:

这次目录使用:
/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
页面:

这份配置主要包括:
- 镜像:
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
结果:

13 检查容器状态
执行:
docker ps
结果:

看到Homarr容器运行以后,还要继续打开7575确认Web页面。
14 浏览器访问Homarr
访问:
http://飞牛IP:7575
页面:

能够打开初始化页面以后,可以确认:
浏览器 → 飞牛7575 → Homarr
已经跑通。
15 第一次使用先切换中文
页面:

如果习惯中文界面,可以先把语言切换成中文。
16 初始化时选择从零开始
页面:

这次没有导入旧配置,所以直接选择:
从零开始。
17 创建第一个用户
页面:

这一步建立Homarr自己的登录账号。
如果后面准备公网访问,账号密码不要继续使用测试强度。
18 选择初始偏好
页面:

完成以后进入正式面板。
19 Homarr首页跑起来了
登录成功:

做到这里,本地部署已经完成。
接下来才是真正把NAS里的服务入口放进去。
20 先添加一个测试项目
页面:

配置完成以后跳转面板:

点击以后:

这一步证明的是:
Homarr可以作为统一导航入口跳转到其他服务或网站。
21 再创建新的项目
页面:

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

对于NAS来说,这类入口更适合按用途整理。
例如:
- 影音;
- 下载;
- 相册;
- 文件;
- 监控;
- 笔记;
- 运维。
22 组件不一定都是“应用入口”
例如这次继续添加天气信息:

这说明Homarr除了应用卡片,还可以放信息组件。
所以它既可以当:
服务导航页
也可以当:
家庭服务器信息首页。
23 面板本身可以继续调整
设置页面:

这里可以继续围绕:
- 布局;
- 外观;
- 面板;
- 组件;
做调整。
真正长期使用时,建议按自己的访问频率排布局。
高频服务放前面,偶尔使用的服务放后面。
24 创建应用入口
页面:

继续配置:

添加以后:

这样常用服务就可以逐步集中到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
结果:

然后检查状态:
sudo systemctl status cpolar
结果:

确认服务正常以后,再进入Web管理页面。
29 打开cpolar Web UI
浏览器访问:
飞牛IP:9200
页面:

登录以后开始给Homarr创建隧道。
30 给7575创建随机公网地址
创建参数:
- 隧道名称:
Homarr - 协议:HTTP
- 本地地址:
7575 - 域名类型:随机域名
- 地区:
China Top
页面:

这里映射的就是Homarr Web使用的7575端口。
31 查看随机公网地址
进入在线隧道列表:

从其他网络访问:

能够正常打开以后,可以确认:
外部浏览器 → 公网地址 → 飞牛7575 → Homarr
已经跑通。
32 随机地址适合先验证
随机公网地址更适合:
- 临时测试;
- 偶尔使用;
- 验证链路。
如果准备把Homarr长期设成远程导航首页,再继续配置固定二级子域名。
33 保留固定二级子域名
预留页面:

本次示例使用:
Homarr
结果:

实际使用时,以自己账号最终成功保留的名称为准。
34 编辑Homarr隧道
回到隧道列表:

修改:
- 域名类型:二级子域名;
- Sub Domain:已保留名称;
- 地区:
China Top。
更新:

35 查看固定地址
进入在线隧道列表:

可以看到随机地址已经切换成固定二级子域名形式。
36 最后从外部设备访问
使用固定公网地址:

能够正常进入以后,长期远程入口完成。
整条链现在变成:
外部浏览器 → 固定公网地址 → 飞牛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




