Skip to main content

附录合集

附录A:应用分类

分类 ID显示名称
Audio_Video_Entertainment音视频娱乐
Photography_Video摄影与视频
Backup_Sync备份与同步
Development_Tools开发工具
Utilities实用工具
Web_ServicesWeb 服务
Security安全
Download下载
Driver驱动
Artificial_Intelligence人工智能

申请新分类: 如果没有现有分类适合你的应用,可以申请新分类:

  1. 通过开发者平台支持渠道提交分类申请
  2. 提供:建议的分类 ID、展示名称、至少 3 个现有或计划应用的合理性说明
  3. 审核需 5-10 个工作日
  4. 未经事先批准的自定义/非标准分类将被驳回

附录B:系统端口参考

以下端口为 TOS 系统保留,应用不得使用:

端口服务
22SSH
80HTTP(TOS Web)
443HTTPS
445SMB
3306MySQL
5050TOS 守护进程(系统内部服务端口,应用禁止使用)
5432PostgreSQL
6379Redis
8181TOS Nginx(Web UI)
8443TOS HTTPS

推荐应用端口范围:8000-19999(排除已被已安装应用占用的端口)。若推荐范围端口被占用,可使用 49152-65535(动态端口范围),但需在配置中明确声明。

附录C:TOS 系统目录

路径说明
/Volume*/@apps/<appid>/应用安装目录(非内置应用)
/Volume*/@apps/<appid>/data/应用运行时数据(缓存、临时文件)
/Volume*/@apps/<appid>/logs/应用日志
/Volume*/DockerAppData/<appid>/Docker 应用数据(配置和业务数据)
/usr/local/system_app_data/<appid>/系统内置应用目录(仅限内置应用)
/etc/systemd/system/<appid>.serviceSystemd 服务文件

说明: /Volume*/ 中的 * 表示用户在安装时选择的卷号(如 Volume1、Volume2)。

  • 对于非内置应用(包括官方和第三方应用),所有文件存储在 /Volume*/@apps/<appid>/ 下。
  • 系统内置应用(如 GlobalSearch、StorageManager)位于系统盘 /usr/local/system_app_data/
  • Docker 应用数据通过卷挂载方式单独存储在 /Volume*/DockerAppData/<appid>/

附录D:TOS Systemd 目标

目标说明
multi-user.targetTOS 应用服务目标(所有应用服务必须将此用作 WantedBy
default.target系统默认启动目标(应用服务请勿使用;应使用 multi-user.target

附录E:兼容性矩阵

TOS 版本基础系统glibcPython3DockerNode.js
TOS 7.0Ubuntu 22.04 兼容2.353.1020.10+18.x
TOS 7.xUbuntu 22.04 兼容2.353.1020.10+(或更高)18.x(或更高)

说明:TOS 7.x 系列小版本将保持与 TOS 7.0 的兼容性。为 TOS 7.0 开发的应用无需额外适配即可运行。有关最新的版本特定详情,请参阅 TOS 官方发行说明或开发者平台。

附录F:语言文件快速模板

[zh-cn]
name = ""
auth = ""
descript = ""
release_note = ""
important = ""

[zh-hk]
name = ""
auth = ""
descript = ""
release_note = ""
important = ""

[en-us]
name = ""
auth = ""
descript = ""
release_note = ""
important = ""

[fr-fr]
name = ""
auth = ""
descript = ""
release_note = ""
important = ""

[de-de]
name = ""
auth = ""
descript = ""
release_note = ""
important = ""

[it-it]
name = ""
auth = ""
descript = ""
release_note = ""
important = ""

[es-es]
name = ""
auth = ""
descript = ""
release_note = ""
important = ""

[hu-hu]
name = ""
auth = ""
descript = ""
release_note = ""
important = ""

[ja-jp]
name = ""
auth = ""
descript = ""
release_note = ""
important = ""

[ko-kr]
name = ""
auth = ""
descript = ""
release_note = ""
important = ""

[pl-pl]
name = ""
auth = ""
descript = ""
release_note = ""
important = ""

[ru-ru]
name = ""
auth = ""
descript = ""
release_note = ""
important = ""

[tr-tr]
name = ""
auth = ""
descript = ""
release_note = ""
important = ""

[pt-pt]
name = ""
auth = ""
descript = ""
release_note = ""
important = ""

附录G:共享文件夹 API

# 为应用创建共享文件夹
ter_share_add -name <文件夹名称> -owner <用户名>

# 示例
ter_share_add -name myapp-data -owner myapp

附录H:升级迁移检查清单

将应用升级到新的主版本时,使用此检查清单:

  • 数据迁移脚本已处理上一版本格式
  • 修改前已备份配置文件
  • 新依赖已在 DEBIAN/control 中声明
  • 服务文件已更新(如需要)
  • 版本号已在 config.ini、DEBIAN/control 和 app.lang 中递增
  • 更新日志/发布说明已更新
  • 已测试升级路径:安装旧版 → 添加数据 → 升级 → 验证数据
  • 已测试回滚路径:降级或从备份恢复
  • SHA-256 校验和已重新生成

附录I:README.md 模板

# <应用名称>

## 概述
应用的简要描述和用途。

## 功能特点
- 功能 1
- 功能 2
- 功能 3

## 安装
1. 要求:TOS 7.0+,[其他依赖]
2. 从 TOS 应用中心安装
3. 初始配置步骤

## 使用方法
如何访问和使用应用:

1. 访问地址:`http://<你的-nas-ip>:<端口>`
2. 默认凭据:[如适用]
3. 关键设置

## 权限
| 权限 | 理由 |
|---|---|
| 网络:端口 XXXX | [理由] |
| 文件系统:/path/to/data | [理由] |
| 用户:<appid> | 隔离的服务执行 |

## 配置
关键配置选项及其默认值。

## 端口
| 端口 | 协议 | 用途 |
|---|---|---|
| XXXX | TCP | [用途] |

## 支持
- 文档:[链接]
- 问题追踪:[链接]
- 社区:[链接]

## 更新日志
### v1.0.0 (YYYY-MM-DD)
- 首次发布

## 许可证
[许可证类型]

附录J:配置文件模板全集

所有应用类型的完整可下载配置文件模板可在 TOS 开发者平台获取:

  • config.ini 模板(Deb WebUI 内部、Deb WebUI 外部、Deb 无 UI、Docker)
  • app.lang 模板(14 语言快速模板,参见附录F)
  • Systemd 单元文件模板(含安全加固)
  • DEBIAN/control 模板(单包、双包)
  • 生命周期脚本模板(preinst、postinst、prerm、postrm)
  • Nginx 配置模板
  • docker-compose.yml 模板
  • GitHub Actions CI/CD 模板

附录K:常见驳回原因与整改示例

驳回原因错误示例正确修复
config.ini 有注释JSON 中的 // 这是注释移除所有注释;JSON 不支持注释
JSON 单引号'version': '1.0.0'使用双引号:"version": "1.0.0"
尾随逗号"beta": false,}(最后字段逗号)移除最后一个字段后的逗号
硬编码 IP"path": "http://192.168.1.100:8080"使用占位符:"path": "http://${ip}:8080"
缺少语言app.lang 只有 12 种语言添加全部 14 种必需语言节点
systemd 中使用 root服务文件中 User=root使用专用用户:User=<appid>
Docker 特权模式compose 中 privileged: true移除;使用细粒度权限
缺少校验和未提交 .sha256 文件运行 sha256sum <文件> > <文件>.sha256
版本号未递增v1.0.0 → v1.0.0(相同版本)递增版本号:v1.0.0 → v1.0.1

附录L:术语与名词定义

术语定义也称
应用 ID应用的全局唯一标识符;在 config.ini.id 中设置app_idappidid
系统 IDSystemd 服务单元名称;在 config.ini.system_id 中设置system_id、服务名
包名Debian 包名称;在 DEBIAN/control 的 Package 字段设置package、deb 包名
双包模式在一个 tar.gz 压缩包中包含两个 deb 包——一个 deb 数据包(含 TOS 平台配置)和一个 deb 源包(含应用二进制)。双包机制
数据包TOS 系统可识别的应用配置数据包,简称 deb 数据包应用数据包、元数据包
源包可运行的应用主体 deb 包,简称 deb 源包应用安装包、二进制包
单包模式按照 TOS 7.0 规范直接开发,将所有文件集成到单个 deb 包单包机制
WebUI 内部打开应用前端在 TOS 桌面内以 iframe 方式打开iframe 模式、内嵌模式
WebUI 外部打开应用前端在浏览器新标签页打开新标签页模式、外部模式
无 UI 服务没有图形界面的应用;后台守护服务无头服务、守护进程
最低 TOS 版本应用所需的最低 TOS 版本;在 config.inilow_version 字段中设置。最低 TOS 版本、TOS 版本要求

附录M:Beta 版应用管理

规则说明
可见人群Beta 应用仅对已选择加入 Beta 测试的用户可见
可见性控制在 config.ini 中设置 "beta": true;平台自动限制可见范围
转正流程从 Beta 毕业:设置 "beta": false 并递增版本号。版本号字符串应遵循标准 SemVer(不使用 beta 后缀)
禁止行为Beta 应用不得作为正式版分发;误导用户 Beta 状态将导致驳回
过期下架90 天未更新的 Beta 应用可能被自动下架
版本号使用标准 SemVer 配合 "beta": true 字段;请勿使用 -beta-rc 或其他版本号后缀

本文档为 TOS7 应用开发与上架的官方全球通用规范。规范将随 TOS7 版本迭代持续更新。开发者应以开发者平台上的最新版本为准。