Back to home@tnnevol

fn-os-apps

飞牛 fnOS 应用 Monorepo

Stars
23
Language
TypeScript
Created
May 15, 2026
Updated
Sep 1, 2026

Introduction

fnOS Apps

飞牛 fnOS 应用 Monorepo,包含上架到 fnOS 应用商店的第三方应用打包。

项目结构

.
├── apps/
│   ├── fn-reader/                  # 阅读 - 在线电子书阅读器
│   ├── fn-xiaoya-only/             # 小雅 - 网盘聚合工具
│   ├── fn-bitwarden/               # Bitwarden - 密码管理器
│   ├── fn-mysql_v8/                # MySQL v8 - 关系型数据库(原生应用)
│   ├── fn-halo/                    # Halo - 建站系统
│   ├── fn-quark-auto-save/         # 夸克转存 - 夸克网盘自动化工具
│   ├── fn-new-api/                 # New API - AI API 管理平台
│   ├── fn-zentao/                  # 禅道项目管理 - 项目管理软件
│   ├── fn-memos/                   # Memos - 自托管笔记
│   ├── fn-moviepilot/              # MoviePilot - 影视自动化管理
│   ├── fn-hermes-agent/            # Hermes Agent - AI 代理(原生应用)
│   ├── fn-deepseek-harness/        # DeepSeek Harness - 插件化智能代理(原生应用)
│   ├── fn-uv/                      # uv - Python 包管理器(系统工具)
│   ├── fn-nvm/                     # NVM - Node.js 版本管理工具(系统工具)
│   └── fn-ohmyzsh/                 # Oh My Zsh - Zsh 配置管理框架
├── plugins/                        # Agent 插件 workspace
├── .github/workflows/              # CI: FPK 构建与 Release 发布
├── docs/                           # VitePress 项目文档
├── package.json                    # 项目版本与开发脚本
├── .gitignore
└── README.md

项目应用

应用显示名称说明
fn-reader阅读开源在线电子书阅读器,支持多种格式、书架管理、阅读进度同步、全文搜索、主题定制
fn-xiaoya-only小雅基于 Alist 的网盘聚合工具,支持多网盘挂载、在线播放、WebDAV、目录索引
fn-bitwardenBitwarden开源密码管理器,安全存储网站登录信息、信用卡、安全笔记等
fn-mysql_v8MySQL v8MySQL 8.4.9 原生应用,非 Docker 容器化部署,支持远程访问配置和 DNS 优化
fn-haloHalo简洁高效的开源建站系统,支持博客、知识库、企业官网等多种场景
fn-quark-auto-save夸克转存夸克网盘签到、自动转存、命名整理、推送提醒和刷新媒体库自动化工具
fn-new-apiNew API新一代 AI API 管理与分发平台,支持多模型接入、令牌管理、配额控制等功能
fn-zentao禅道项目管理国产开源项目管理软件,基于敏捷和 Scrum 理念,包含产品管理、项目管理、质量管理等模块
fn-memosMemos轻量级自托管笔记工具,支持 Markdown 编写、标签管理、多端同步
fn-moviepilotMoviePilot影视自动化管理工具,支持媒体库管理、智能订阅、自动化整理等功能
fn-hermes-agentHermes AgentNous Research 开发的 AI 代理,支持多平台消息网关、自主学习、技能创建、跨会话记忆
fn-deepseek-harnessDeepSeek HarnessDeepSeek AI 开源的插件化智能代理工具,通过 Web UI 提供 dsh 操作界面
fn-uvuv极速 Python 包管理器,替代 pip/pip-tools,提供虚拟环境和依赖解析能力
fn-nvmNVMNode.js 版本管理工具,由 UID 1000 用户管理 NVM 和 Node.js 运行时
fn-ohmyzshOh My ZshZsh 配置管理框架,提供丰富的插件、主题和自动补全,增强命令行体验

测试与安装

项目文档

pnpm install
pnpm run docs:dev

生产构建使用 pnpm run docs:build,构建结果位于 docs/.vitepress/dist/

本地快速安装(开发阶段推荐)

# 在 fnOS 设备上,进入应用目录直接安装
cd /path/to/<appname>
appcenter-cli install-local

通过 fpk 文件安装

appcenter-cli install-fpk <appname>.fpk

# 带环境变量静默安装
appcenter-cli install-fpk <appname>.fpk --env config.env

手动安装模式(用于分发测试)

# 开启手动安装入口
appcenter-cli manual-install enable

# 关闭
appcenter-cli manual-install disable

查看日志

# 日志路径
cat /var/apps/<appname>/var/info.log

# 应用管理
appcenter-cli list
appcenter-cli start <appname>
appcenter-cli stop <appname>

版本发布

通过 GitHub Actions 自动完成 FPK 构建和 Release 发布。项目根目录通过 package.json 维护当前版本号,根目录 bump 脚本负责同步更新应用版本。

Tag 命名规范

v<版本号>
Tag 示例版本
v4.0.04.0.0
v4.1.0-rc14.1.0-rc1(预发布)

发布步骤

  1. 代码变更并推送
git add apps/
git commit -m "feat: 更新多个应用"
git push origin main
  1. 推送版本 Tag 触发发布
pnpm run bump:patch
git push origin main && git push origin v<版本号>

bump 会同步更新根 package.json、所有 apps/*/manifest 和 README 中的版本示例,然后自动创建版本提交和 Tag。

也可以直接使用对应的 npm 脚本(任选其一):

pnpm run bump:major
pnpm run bump:minor
pnpm run bump:patch
  1. GitHub Actions 自动执行
  • discover — 扫描 apps/ 目录,收集所有应用名
  • build — 为每个应用并行构建 FPK,文件名格式 <app>-v4.0.0.fpk
  • release — 生成中文 Release 文案 → 创建 GitHub Release,附带所有 .fpk

单个应用也可以在自己的目录中执行 ./build 构建。fn-deepseek-harness 的构建脚本默认自动递增 patch 版本。

上架应用

上架流程:

  1. 加入飞牛粉丝群(fnos.com 二维码)→ 联系社区主理人加入 应用中心开发者先锋交流群
  2. 提交基础信息完成认证(个人/企业信息、代表作品、技术栈等)
  3. 获取官方文档 → 创建应用 → 提交审核 → 上架

开发者后台即将上线,在此之前通过群内专员协助完成内测和上架。

manifest 字段参考

字段必填说明示例
appname应用唯一标识fn-reader
version版本号,格式 x[.y[.z]][-build]3.2.14
display_name显示名称阅读
desc应用描述(支持 HTML)功能说明
platform架构,x86 / arm / allx86
source应用来源thirdparty
maintainer-原始维护者GitHub ID
maintainer_url-原始项目地址URL
distributor-分发者GitHub ID
distributor_url-分发者主页URL
service_port-服务端口4396
os_min_version-最低 fnOS 版本0.9.27
desktop_uidir-UI 目录名ui
desktop_applaunchname-桌面启动项<appname>.Application
disable_authorization_path-禁用目录授权true

开发资源