2026-10-02 14:59:57 +08:00
|
|
|
|
# Havline Native fnOS 应用
|
|
|
|
|
|
|
|
|
|
|
|
本目录保存 Havline 的飞牛 Native 应用工程,不依赖 Docker。
|
|
|
|
|
|
|
2026-10-02 15:19:09 +08:00
|
|
|
|
本仓库完全独立,包含:
|
|
|
|
|
|
|
|
|
|
|
|
- `app-src/`:Havline 主程序源码副本
|
|
|
|
|
|
- `havline/`:飞牛 Native 应用打包工程
|
|
|
|
|
|
- `fnpack.exe`:飞牛打包工具
|
|
|
|
|
|
- `build.ps1`:从 `app-src` 构建双架构二进制并打包
|
|
|
|
|
|
|
|
|
|
|
|
构建过程不再引用 `F:\Fonu-main\havline`。
|
|
|
|
|
|
|
2026-10-02 15:49:19 +08:00
|
|
|
|
阶段四范围:
|
2026-10-02 14:59:57 +08:00
|
|
|
|
|
|
|
|
|
|
- Go 主程序原生运行
|
|
|
|
|
|
- 统一网关 `/app/havline`
|
|
|
|
|
|
- Unix Socket `app.sock`
|
|
|
|
|
|
- `cmd/main` 启动、停止和状态检查
|
|
|
|
|
|
- amd64 与 arm64 双架构二进制
|
2026-10-02 15:32:37 +08:00
|
|
|
|
- Nginx amd64 与 arm64 双架构二进制
|
|
|
|
|
|
- Nginx 依赖库与 `mime.types`
|
|
|
|
|
|
- HTTP 18080 与 HTTPS 9443
|
2026-10-02 15:42:46 +08:00
|
|
|
|
- frpc 与 cloudflared 按需下载,不打包进 FPK
|
2026-10-02 15:49:19 +08:00
|
|
|
|
- Native 版本 1.9.1
|
|
|
|
|
|
- Docker 版数据目录兼容
|
|
|
|
|
|
- 旧 `data/` 布局自动迁移
|
|
|
|
|
|
- 升级前数据库备份
|
2026-10-02 14:59:57 +08:00
|
|
|
|
|
2026-10-02 15:42:46 +08:00
|
|
|
|
按需下载位置:
|
2026-10-02 14:59:57 +08:00
|
|
|
|
|
2026-10-02 15:42:46 +08:00
|
|
|
|
```text
|
|
|
|
|
|
${TRIM_PKGVAR}/frp/bin/<version>/frpc
|
|
|
|
|
|
${TRIM_PKGVAR}/cloudflared/bin/cloudflared
|
|
|
|
|
|
```
|
2026-10-02 14:59:57 +08:00
|
|
|
|
|
2026-10-02 15:42:46 +08:00
|
|
|
|
首次使用 FRP 或 Cloudflare Tunnel 时需要联网。主程序支持 GitHub
|
|
|
|
|
|
镜像源,可在应用界面切换。
|
2026-10-02 14:59:57 +08:00
|
|
|
|
|
2026-10-02 15:32:37 +08:00
|
|
|
|
## 构建前置条件
|
|
|
|
|
|
|
|
|
|
|
|
构建脚本需要本地存在用于提取 Nginx 的 Havline 镜像:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
jayhub.top/mrlee/havline:1.9.0 amd64
|
|
|
|
|
|
havline:1.9.0 arm64
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
如果本地没有对应架构镜像,先加载 amd64 与 arm64 镜像归档。
|
|
|
|
|
|
|
2026-10-02 15:49:19 +08:00
|
|
|
|
Nginx 提取镜像版本默认固定为 `1.9.0`,与应用版本解耦。需要时可传入:
|
|
|
|
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
|
|
.\build.ps1 -NginxImageVersion 1.9.0
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 升级与迁移
|
|
|
|
|
|
|
|
|
|
|
|
详细步骤见:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
docs/upgrade-and-migration.md
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
推荐路径:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
卸载 Docker 版时保留数据
|
|
|
|
|
|
安装 Native 1.9.1
|
|
|
|
|
|
启动后自动迁移数据库和旧数据布局
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-10-02 14:59:57 +08:00
|
|
|
|
## 构建
|
|
|
|
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
|
|
cd F:\Fonu-main\fnos-native
|
|
|
|
|
|
.\build.ps1
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
输出:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
2026-10-02 15:49:19 +08:00
|
|
|
|
dist/havline-native-1.9.1.fpk
|
2026-10-02 14:59:57 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
构建脚本会:
|
|
|
|
|
|
|
|
|
|
|
|
1. 使用 `VITE_BASE_PATH=/app/havline/` 构建前端;
|
2026-10-02 15:32:37 +08:00
|
|
|
|
2. 从本地镜像提取 amd64 与 arm64 Nginx 及依赖库;
|
|
|
|
|
|
3. 交叉编译 amd64 与 arm64 Go 二进制;
|
|
|
|
|
|
4. 调用 `fnpack build` 打包。
|
|
|
|
|
|
|
2026-10-02 15:42:46 +08:00
|
|
|
|
frpc 与 cloudflared 不进入构建产物,由运行中的应用按需下载。
|
|
|
|
|
|
|
2026-10-02 15:32:37 +08:00
|
|
|
|
## 真机注意
|
|
|
|
|
|
|
|
|
|
|
|
当前 Nginx 来自 Debian 12,依赖目标系统 glibc。飞牛设备建议满足:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
glibc >= 2.36
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
如果目标设备 glibc 版本较低,需要改为静态编译 Nginx 或打包完整
|
|
|
|
|
|
loader 与 libc。
|