Skip to content

Manifest 配置

apps/<appname>/manifest 是 fnOS 应用的基础清单,使用对齐的 INI 风格键值格式。它描述应用身份、版本、平台、桌面入口和运行约束。应用目录、app/ui/configconfig/wizard/ 和生命周期脚本必须与 Manifest 保持一致。

新建或重建应用前,先查阅 fnnas-docs Skill 和飞牛应用开放平台文档。本文是本仓库的维护约定,不替代平台对字段的最新定义。

文件格式

text
apps/<appname>/
├── manifest
├── app/
├── cmd/
├── config/
└── wizard/

示例(字段之间使用空格对齐,不要改成 JSON):

ini
appname               = fn-deepseek-harness
version               = 5.4.2
display_name          = DeepSeek Harness
desc                  = DeepSeek AI 开源的插件化智能代理工具,通过 Web UI 提供 dsh 操作界面。
platform              = x86
source                = thirdparty
maintainer            = DeepSeek AI
maintainer_url        = https://github.com/deepseek-ai/deepseek-harness
distributor           = tnnevol
distributor_url       = https://github.com/FNOSP/fnos-dsh
os_min_version        = 1.1.3100
desktop_uidir         = ui
desktop_applaunchname = fn-deepseek-harness.Application
install_dep_apps      = nodejs_v24

常用字段

字段作用维护要求
appname应用唯一标识与应用目录名及相关入口 ID 保持一致
version应用版本号使用根 fn-apps-cli version 项目/FPK 流程维护
display_name应用中心显示名称面向用户,避免包含内部构建信息
desc应用描述说明用途和核心能力,不写无法验证的承诺
platform目标架构按实际 FPK 产物填写,例如 x86armall
source应用来源第三方应用通常使用 thirdparty
maintainer / maintainer_url原始项目维护者和地址指向真实上游项目
distributor / distributor_url当前分发者和仓库地址与发布主体保持一致
os_min_version最低 fnOS 版本使用已验证的系统版本,不凭构建机版本推断
desktop_uidir桌面入口资源目录必须对应 app/ui/ 下实际目录
desktop_applaunchname桌面启动项 ID必须能在 app/ui/config 中找到对应键
service_port服务监听端口与应用启动脚本、向导字段和入口配置一致
install_dep_apps安装前置依赖只填写应用中心可提供且确实需要的依赖
micro_app是否作为微应用运行与入口类型和网关方案一起验证

其他字段(例如 checkportdisable_authorization_pathchangelog)应只在应用确实需要时增加,并以平台文档和同类已验证应用为准。

与其他配置的对应关系

Manifest 里的关键字段必须在别处真实成立,否则安装后才会暴露问题:

Manifest对应文件需要保持一致的内容
desktop_uidirapp/ui/UI 目录存在且包含入口资源
desktop_applaunchnameapp/ui/config.url 下存在同名入口
service_portcmd/mainwizard/*服务监听端口和用户配置来源一致
install_dep_appsconfig/、安装回调依赖确实由 fnOS 管理或已声明
os_min_version测试记录在最低版本设备上完成基础验证
version发布 Tag、FPKFPK、升级说明和仓库版本保持一致

提交前检查

bash
# 检查 Manifest 与目录、入口和资源
pnpm run check -- --all

# 构建单个应用
cd apps/<appname>
fnpack build

逐项确认:

  • appname、应用目录名、桌面入口 ID 没有拼写漂移。
  • version 是合法版本号,并符合项目或 FPK 的版本策略。
  • platform 与实际构建架构一致。
  • desktop_uidirdesktop_applaunchname 和入口文件真实存在。
  • 端口、网关前缀、授权路径和健康检查配置能串联工作。
  • 不把密钥、个人路径、临时构建信息或未经验证的版本写入 Manifest。

最终应在测试 NAS 上通过应用中心完成安装、启动、停止、升级和卸载验证;本地 fnpack build 只证明清单和包结构可以构建。

相关页面

基于 VitePress 构建