Havline Native fnOS 应用

本目录保存 Havline 的飞牛 Native 应用工程,不依赖 Docker。

本仓库完全独立,包含:

  • app-src/:Havline 主程序源码副本
  • havline/:飞牛 Native 应用打包工程
  • fnpack.exe:飞牛打包工具
  • build.ps1:从 app-src 构建双架构二进制并打包

构建过程不再引用 F:\Fonu-main\havline。

阶段三范围:

  • Go 主程序原生运行
  • 统一网关 /app/havline
  • Unix Socket app.sock
  • cmd/main 启动、停止和状态检查
  • amd64 与 arm64 双架构二进制
  • Nginx amd64 与 arm64 双架构二进制
  • Nginx 依赖库与 mime.types
  • HTTP 18080 与 HTTPS 9443
  • frpc 与 cloudflared 按需下载,不打包进 FPK

按需下载位置:

${TRIM_PKGVAR}/frp/bin/<version>/frpc
${TRIM_PKGVAR}/cloudflared/bin/cloudflared

首次使用 FRP 或 Cloudflare Tunnel 时需要联网。主程序支持 GitHub 镜像源,可在应用界面切换。

构建前置条件

构建脚本需要本地存在用于提取 Nginx 的 Havline 镜像:

jayhub.top/mrlee/havline:1.9.0    amd64
havline:1.9.0                     arm64

如果本地没有对应架构镜像,先加载 amd64 与 arm64 镜像归档。

构建

cd F:\Fonu-main\fnos-native
.\build.ps1

输出:

dist/havline-native-1.9.0.fpk

构建脚本会:

  1. 使用 VITE_BASE_PATH=/app/havline/ 构建前端;
  2. 从本地镜像提取 amd64 与 arm64 Nginx 及依赖库;
  3. 交叉编译 amd64 与 arm64 Go 二进制;
  4. 调用 fnpack build 打包。

frpc 与 cloudflared 不进入构建产物,由运行中的应用按需下载。

真机注意

当前 Nginx 来自 Debian 12,依赖目标系统 glibc。飞牛设备建议满足:

glibc >= 2.36

如果目标设备 glibc 版本较低,需要改为静态编译 Nginx 或打包完整 loader 与 libc。

S
Description
No description provided
Readme
12 MiB
Languages
Go 55%
Vue 36.2%
TypeScript 4.3%
HTML 2.5%
Shell 1%
Other 0.9%