# 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 - Native 版本 1.9.1 - Docker 版数据目录兼容 - 旧 `data/` 布局自动迁移 - 升级前数据库备份 按需下载位置: ```text ${TRIM_PKGVAR}/frp/bin//frpc ${TRIM_PKGVAR}/cloudflared/bin/cloudflared ``` 首次使用 FRP 或 Cloudflare Tunnel 时需要联网。主程序支持 GitHub 镜像源,可在应用界面切换。 ## 构建前置条件 构建脚本需要本地存在用于提取 Nginx 的 Havline 镜像: ```text jayhub.top/mrlee/havline:1.9.0 amd64 havline:1.9.0 arm64 ``` 如果本地没有对应架构镜像,先加载 amd64 与 arm64 镜像归档。 Nginx 提取镜像版本默认固定为 `1.9.0`,与应用版本解耦。需要时可传入: ```powershell .\build.ps1 -NginxImageVersion 1.9.0 ``` ## 升级与迁移 详细步骤见: ```text docs/upgrade-and-migration.md ``` 推荐路径: ```text 卸载 Docker 版时保留数据 安装 Native 1.9.1 启动后自动迁移数据库和旧数据布局 ``` ## 构建 ```powershell cd F:\Fonu-main\fnos-native .\build.ps1 ``` 输出: ```text dist/havline-native-1.9.1.fpk ``` 构建脚本会: 1. 使用 `VITE_BASE_PATH=/app/havline/` 构建前端; 2. 从本地镜像提取 amd64 与 arm64 Nginx 及依赖库; 3. 交叉编译 amd64 与 arm64 Go 二进制; 4. 调用 `fnpack build` 打包。 frpc 与 cloudflared 不进入构建产物,由运行中的应用按需下载。 ## 真机注意 当前 Nginx 来自 Debian 12,依赖目标系统 glibc。飞牛设备建议满足: ```text glibc >= 2.36 ``` 如果目标设备 glibc 版本较低,需要改为静态编译 Nginx 或打包完整 loader 与 libc。