Files
Fnos-Havline/README.md
T

139 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Havline fnOS 应用打包
本目录保存 Havline 的飞牛 fnOS 应用工程。
- 应用工程:[`havline/`](havline/)
- 官方工具:`fnpack`
- 当前工具版本:`1.2.3`
- 主程序仓库:`F:\Fonu-main\havline`
## 当前状态
已经完成:
- 使用 `fnpack create havline --template docker` 生成官方 Docker 应用骨架;
- 配置 `manifest`、应用入口、Docker Compose、权限和资源;
- 增加安装向导、配置向导和卸载向导;
- 增加安装、升级、配置和卸载生命周期脚本;
- 支持通过环境变量 `HAVLINE_INITIAL_ADMIN_PASSWORD` 初始化管理员。
仍需完成:
- 将 Havline 多架构镜像推送到 Gitea 容器仓库;
- 在飞牛测试设备验证安装、启动、入口、升级和卸载;
- 验证 amd64 与 arm64 镜像均可用。
## 镜像地址
当前应用使用:
```text
45.207.223.190:10082/mrlee/havline:${TRIM_APPVER}
```
对应标签需要包含:
```text
linux/amd64
linux/arm64
```
如果 Gitea 容器仓库使用 HTTP 而不是 HTTPS,飞牛设备还需要把该地址加入 Docker
`insecure-registries`,否则 `docker compose pull` 会失败。
错误示例:
```text
Get "https://45.207.223.190:10082/v2/": http: server gave HTTP response to HTTPS client
```
飞牛设备处理方式:
1. 编辑 Docker 配置:
```bash
sudo vi /etc/docker/daemon.json
```
2. 如果文件为空,写入:
```json
{
"insecure-registries": [
"45.207.223.190:10082"
]
}
```
如果已有 `daemon.json`,只合并 `insecure-registries` 字段,不要删除已有配置。
3. 重启 Docker 并验证:
```bash
sudo systemctl restart docker
docker pull 45.207.223.190:10082/mrlee/havline:1.9.0
```
4. 如果 Gitea 仓库不是公开可拉取,先登录:
```bash
docker login 45.207.223.190:10082
```
5. 拉取成功后重新安装 `havline-1.9.0.fpk`。
正式发布建议:给 Gitea 容器仓库配置 HTTPS,并使用域名或 HTTPS 端口作为镜像地址。
这样用户可以安装应用,而不需要修改 Docker daemon 配置。
## 打包
Windows PowerShell:
```powershell
cd F:\Fonu-main\fnos
.\build.ps1
```
脚本会先复制一份不含 `.DS_Store` 的干净工程,再调用 `fnpack` 打包,输出到:
```text
fnos/dist/havline-<version>.fpk
```
如果 `fnpack` 已在 PATH 中,也可以传入路径:
```powershell
.\build.ps1 -FnpackPath fnpack
```
## 测试安装
```bash
appcenter-cli install-fpk havline.fpk
```
安装后检查:
1. 应用中心显示 Havline;
2. Docker 镜像可以拉取;
3. Havline 容器能够启动;
4. 桌面入口可以打开管理界面;
5. 数据写入 `${TRIM_PKGVAR}`;
6. 卸载默认保留数据。
## 当前默认端口
| 用途 | 安装向导默认值 | 容器端口 |
| --- | ---: | ---: |
| 管理界面 | `6893` | `6893` |
| HTTP 反向代理 | `18080` | `80` |
| HTTPS 反向代理 | `9443` | `443` |
## 首发边界
- 不挂载 Docker Socket。
- 不启动 Havline 自带 updater。
- 不使用 host 网络。
- 不共享数据库、证书、密钥、Nginx、FRP 和 cloudflared 目录。
- 应用中心负责安装、升级、启动、停止和卸载。