ec88ac9d2cb7d02237681a8ee15b00a706daf328
Havline fnOS 应用打包
本目录保存 Havline 的飞牛 fnOS 应用工程。
- 应用工程:
havline/ - 官方工具:
fnpack - 当前工具版本:
1.2.3 - 主程序仓库:
F:\Fonu-main\havline
当前状态
已经完成:
- 使用
fnpack create havline --template docker生成官方 Docker 应用骨架; - 配置
manifest、应用入口、Docker Compose、权限和资源; - 增加安装向导、配置向导和卸载向导;
- 增加安装、升级、配置和卸载生命周期脚本;
- 支持通过环境变量
HAVLINE_INITIAL_ADMIN_PASSWORD初始化管理员。
仍需完成:
- 修复 Gitea Registry 的 HTTP token realm,使 Docker 能正常 push/pull;
- 确认飞牛设备是否可以匿名拉取,或在安装前配置 Registry 登录;
- 在飞牛测试设备验证安装、启动、入口、升级和卸载;
- 验证 amd64 与 arm64 镜像均可在真实设备上拉取。
当前阻塞
jayhub.top/mrlee/havline:1.9.0 已经包含 amd64 与 arm64 多架构索引,
但当前 Gitea 返回的认证地址仍是 HTTP:
WWW-Authenticate: Bearer realm="http://jayhub.top/v2/token", ...
Docker 会在 HTTP 到 HTTPS 的跳转过程中丢失换取 token 所需的认证信息,
因此 docker pull 和 docker push 都会报:
failed to fetch oauth token:
authorization server did not include a token in the response
在 Gitea ROOT_URL 改成 https://jayhub.top/ 并确认反向代理传递
X-Forwarded-Proto: https 之前,飞牛设备无法稳定拉取该镜像。
详细修复步骤见主程序仓库:
docs/gitea-registry-fix.md
镜像地址
当前应用使用:
jayhub.top/mrlee/havline:${TRIM_APPVER}
对应标签需要包含:
linux/amd64
linux/arm64
新地址已经使用 HTTPS,不需要再配置 insecure-registries。
验证镜像:
docker pull jayhub.top/mrlee/havline:1.9.0
如果仓库不是公开可拉取,先登录:
docker login jayhub.top
拉取成功后重新安装 havline-1.9.0.fpk。
打包
Windows PowerShell:
cd F:\Fonu-main\fnos
.\build.ps1
脚本会先复制一份不含 .DS_Store 的干净工程,再调用 fnpack 打包,输出到:
fnos/dist/havline-<version>.fpk
如果 fnpack 已在 PATH 中,也可以传入路径:
.\build.ps1 -FnpackPath fnpack
测试安装
appcenter-cli install-fpk havline.fpk
安装后检查:
- 应用中心显示 Havline;
- Docker 镜像可以拉取;
- Havline 容器能够启动;
- 桌面入口可以打开管理界面;
- 数据写入
${TRIM_PKGVAR}; - 卸载默认保留数据。
当前默认端口
| 用途 | 安装向导默认值 | 容器端口 |
|---|---|---|
| 管理界面 | 6893 |
6893 |
| HTTP 反向代理 | 18080 |
80 |
| HTTPS 反向代理 | 9443 |
443 |
首发边界
- 不挂载 Docker Socket。
- 不启动 Havline 自带 updater。
- 不使用 host 网络。
- 不共享数据库、证书、密钥、Nginx、FRP 和 cloudflared 目录。
- 应用中心负责安装、升级、启动、停止和卸载。
Languages
PowerShell
62.8%
Shell
37.2%