Skip to content

project.yaml 配置说明

project.yaml 是 UGOS Pro 应用的核心配置文件,用于定义应用的基本信息、运行配置、展示信息等。使用 ugcli 工具对项目进行打包时,工具会校验并根据该文件配置,生成最终的安装包。

基本配置

字段名称类型必填说明
spec_versionstring配置规范版本,当前版本为 2.1
app_idstring应用ID,用于系统识别应用,应用上架后不可修改。
命名规范:com.公司/组织英文名.应用名,只能包含小写字母、数字和点,且必须以字母开头。
例如:com.mycompany.myapp
versionstring应用版本号,格式为 x.y.z,x 为主版本号,y 为次版本号,z 为修订号。
例如:0.1.0
打包时通过 --build 参数追加构建号,最终安装包版本号为 x.y.z.bb 为 4 位构建号,左补零,如 0.1.0.0001),详见 版本号规则
support_archstring[]支持的 CPU 架构列表。
可选值:amd64arm64
supportsstring[]应用支持的客户端类型,支持多选。
可选值:
- app:移动端
- pc:桌面端
- tv:电视端
留空或不配置时,打包默认写入 apppc
tag_typesstring[]应用类别,用于应用分类展示。
可选值:
- system:系统管理
- media:娱乐
- utility:实用工具
- security:安全
- download:下载
- backup:备份
- devtool:开发工具

版本号规则

应用版本号由 主版本号(x)次版本号(y)修订号(z)构建号(b) 四段组成,完整格式为 x.y.z.bb 为 4 位构建号,左补零,示例:0.1.0.0001)。

说明配置位置
x.y.z主/次/修订版本project.yaml 中的 version 字段
b构建号(4 位数字,左补零)打包命令 ugcli pack --build <n> 指定

规则说明:

  • 在同一个 x.y.z 版本下,每次提交新版本安装包时,构建号必须递增,不允许重复
  • 版本号大小按四段数字逐段比较,数字越大表示版本越新。例如 1.0.1.0002 大于 1.0.1.00011.1.0.0000 大于 1.0.9.9999
  • project.yaml 中填写 x.y.z 即可;执行 ugcli pack --build 1 后,最终安装包版本号为 0.1.0.0001

示例:

shell
# project.yaml 中 version: 0.1.0
ugcli pack --build 1   # 最终版本号 0.1.0.0001
ugcli pack --build 2   # 最终版本号 0.1.0.0002(同一 x.y.z 下构建号必须递增)

运行配置

字段名称类型必填说明
start_cmdstring是*应用后端服务的启动命令,包含后端服务可执行文件路径(相对于应用安装目录)和命令行参数。
例如:bin/myapp_serv --port=21010
*Docker 应用无需配置。
portnumber应用后端服务监听的端口号,用于提供 HTTP 服务。
例如:21010
proxy_pathstring应用需要系统网关代理的 HTTP 请求路径前缀,用于将前端请求转发到后端服务。
例如设置为 api/v1,则所有以 /api/v1/ 开头的请求都会被转发到后端服务。
open_typestring打开应用界面的方式。
可选值:
- inner:在系统桌面内以独立窗口方式打开。
- tab:在浏览器内以新标签页方式打开。
depend_fw_versionstring依赖的 UGOS Pro 系统最低固件版本,格式为 x.y.z.bb 为 4 位构建号,左补零),适用于所有应用类型。
例如:1.13.0.0000
is_docker_appboolean是否为 Docker 应用。Docker 应用需设为 true,详见 Docker 应用开发
depend_docker_versionstring否*依赖的 Docker 套件最低版本,格式为 x.y.z.bb 为 4 位构建号,左补零)。
例如:1.7.0.0000
*Docker 应用必填。

固件版本号获取

depend_fw_version 为可选配置,适用于原生应用与 Docker 应用。若需声明最低固件要求,填写值需与 UGOS Pro 系统实际版本号一致。请联系绿联开发获取可用的固件版本号,避免因版本号填写错误导致应用无法安装或运行。

若应用使用到系统自带能力(如特定 API、系统服务或套件功能),还需确保填写的最低固件版本等于或高于提供该能力的固件版本号,避免用户在低版本系统中安装后出现功能异常。

应用依赖

部分应用运行依赖系统中已安装的其他套件。依赖关系会在打包时写入安装包配置,安装前系统将检查依赖是否满足。

Docker 应用依赖

Docker 应用必须配置 depend_docker_version,声明所依赖的 Docker 套件最低版本。打包时 ugcli 会自动生成如下依赖:

依赖应用 ID依赖类型版本来源
com.ugreen.docker强依赖(MustDepend)depend_docker_version 字段

示例:

yaml
is_docker_app: true
depend_fw_version: 1.13.0.0000
depend_docker_version: 1.7.0.0000

用户在安装 Docker 应用前,需确保 NAS 上已安装且版本不低于 depend_docker_version 所声明的 Docker 套件。

功能配置

字段名称类型必填说明
support_migrationboolean是否支持迁移安装目录。
默认值:false
allow_add_access_pathboolean是否支持用户授权访问个人文件夹和共享文件夹。
默认值:false
only_adminboolean是否仅管理员可访问。
默认值:false

应用链接与合规信息

以下字段用于在应用详情页展示合规与技术支持相关信息,均为 URL 链接数组,可配置一个或多个链接。

字段名称类型必填说明
privacy_policy_linkstring[]隐私政策链接。应用在应用中心详情页展示,供用户查阅隐私条款。
license_agreement_linkstring[]否*许可协议链接。展示应用的使用许可或服务条款。
*应用使用了开源代码时必填
source_code_linkstring[]否*源码链接。填写源码仓库或源码获取地址。
*应用使用了开源代码时必填
technical_support_linkstring[]技术支持链接。用户获取技术支持、提交工单或查看 FAQ 的入口。

开源代码合规要求

若应用使用了开源代码(包括直接引用、修改或打包分发开源组件),须同时配置 license_agreement_linksource_code_link,用于公示所遵循的开源许可及源码获取方式。

示例:

yaml
privacy_policy_link:
  - https://mycompany.example.com/privacy
license_agreement_link:
  - https://mycompany.example.com/license
source_code_link:
  - https://github.com/mycompany/myapp
technical_support_link:
  - https://mycompany.example.com/support

权限配置

字段名称类型必填说明
permissionsstring[]声明应用所需的系统权限列表。

支持的权限类型

权限标识说明最低依赖系统版本
SYSTEM.EXEC_SYSTEM_COMMAND执行系统命令,可以执行系统 /usr/bin/usr/sbin 目录下的内置命令1.13.0.0000
NETWORK.ACCESS_INTERNET访问网络,可以创建网络连接与外部互联网服务通信1.13.0.0000
STORAGE.ACCESS_EXTERNAL访问外接存储,可以访问已挂载的 USB 和外接存储卷1.17.0.0000

声明 permissions 时,必须在 project.yaml 中配置 depend_fw_version,且其值不得低于所声明权限对应的最低依赖系统版本。若同时声明多个权限,取其中的最高版本要求。

应用自定义配置 (parameters)

parameters 字段用于定义应用的自定义配置项,支持用户在安装或控制面板中的应用配置页面进行配置。

配置项结构

字段名称类型必填说明
keystring配置项标识,用于在应用中引用该配置
typestring配置项类型。
可选值:
- string:字符串
- number:数字
- path:路径
- password:密码
requiredboolean是否必填。
默认值:false
changeableboolean配置后是否支持再修改。
默认值:false
multiboolean是否支持配置多个值。
默认值:false
i18nobject配置项的多语言展示信息,详见下方说明

配置项多语言 (parameters[].i18n)

字段名称类型必填说明
namestring配置项名称
descriptionstring配置项描述(补充说明、填写规范等)

应用展示信息多语言配置 (i18n)

i18n 字段用于定义应用的多语言展示信息,包括应用名称、描述及各类链接。

字段名称类型必填说明
namestring应用显示名称
descriptionstring应用描述
authorstring应用开发者
officialstring应用官网链接
helpstring使用帮助文档链接,在应用详情页展示
publisherstring应用发布者
publisher_linkstring应用发布者官网链接

语言配置与兜底规则

系统支持以下语言代码。i18n 中至少需配置一种语言

text
en-US
zh-CN
de-DE
ja-JP
fr-FR
nl-NL
pt-PT
es-ES
it-IT
ko-KR
zh-TW

语言展示规则:

  • 开发者需自行做好非支持语言环境下应用打开的兼容,确保应用界面与功能在兜底语言下可正常使用。
  • 仅上架特定国家/地区时:除适配该国家/地区的语言外,必须同时提供英语作为兜底语言。用户切换系统语言后,若当前语言无对应配置,一律以英语展示应用详情及 i18n 相关文案。

兼容性提示

应用前端界面本身的国际化需开发者自行实现。project.yamli18n 仅控制应用中心详情页的展示文案;应用打开后的界面语言兼容由开发者负责。

完整配置示例 (project.yaml)

yaml
# 配置规范版本
spec_version: 2.1
# 应用ID
app_id: com.mycompany.myapp
# 应用版本号
version: 0.1.0
# 支持的 CPU 架构
support_arch:
  - amd64
  - arm64
# 支持的客户端类型(可选,不配置时打包默认为 app、pc)
supports:
  - app
  - pc
# 启动命令
start_cmd: bin/myapp_serv --port=21010
# 服务端口
port: 21010
# 代理路径前缀
proxy_path: api
# 打开方式
open_type: inner
# 应用类别
tag_types:
  - utility
  - devtool
# 最低固件版本(声明 permissions 时必填,且不得低于权限要求;版本号请联系绿联开发确认)
depend_fw_version: 1.13.0.0000
# 支持迁移
support_migration: true
# 允许用户授权访问个人文件夹和共享文件夹
allow_add_access_path: true
# 合规与技术支持链接
privacy_policy_link:
  - https://mycompany.example.com/privacy
license_agreement_link:
  - https://mycompany.example.com/license
source_code_link:
  - https://github.com/mycompany/myapp
technical_support_link:
  - https://mycompany.example.com/support
# 权限声明
permissions:
  - SYSTEM.EXEC_SYSTEM_COMMAND
  - NETWORK.ACCESS_INTERNET
# 自定义参数
parameters:
  - key: ACCOUNT
    type: string
    required: true
    changeable: true
    i18n:
      en-US:
        name: Login Account
        description: 6-8 characters
      zh-CN:
        name: 登录账号
        description: 长度6-8位
# 多语言信息(en-US 建议作为基础语言始终保留)
i18n:
  en-US:
    name: My APP
    description: My APP Description
    author: My Company
    official: https://myapp.example.com
    help: https://myapp.example.com/help
    publisher: My Company
    publisher_link: https://mycompany.example.com
  zh-CN:
    name: 我的应用
    description: 应用描述
    author: 演示应用开发者
    official: https://myapp.example.com.cn
    help: https://myapp.example.com.cn/help
    publisher: 演示应用发布者
    publisher_link: https://mycompany.example.com.cn