设备总数
{{ dashboard.device_count }}
在线设备
{{ dashboard.online_count }}
文件数量
{{ artifacts.length }}
任务数量
{{ tasks.length }}
当前架构
设备自动注册 SN;Agent 根据 SN 领取最新全量或指定设备任务;只替换 runtime 根目录内经过校验的现有普通文件。
| SN | 算力板型号 | 系统版本 | IP 位置 | 状态 | 最后在线 | 设备信息 |
|---|---|---|---|---|---|---|
| {{ device.serial_number }} | {{ device.board_model || '-' }} | {{ device.system_version || '-' }} | {{ device.ip_location || '-' }} | {{ device.status }} | {{ formatTime(device.last_online) }} | |
| 当前型号没有设备 | ||||||
Target File OTA 文件仓库
上传任意普通文件,并填写 `/home/orangepi/open_duck_mini_runtime` 下已经存在的相对目标文件。
不支持绝对路径、目录、符号链接、ota/、.git/ 或 .venv/;Agent 校验大小与 SHA-256 后使用原子重命名直接替换,不保留旧文件。
| 版本 | 原始文件 | Target | 大小 | SHA-256 | 上传时间 | 状态 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ artifact.version }} | {{ artifact.filename }} | {{ artifact.target }} | {{ formatSize(artifact.size) }} | {{ artifact.sha256 }} | {{ formatTime(artifact.upload_time) }} | {{ artifact.status }} | |
| 暂无可发布文件 | |||||||
文件夹 OTA
直接选择一个文件夹,平台会自动打包为安全的 `.tar.gz` 并计算 SHA-256;你不需要手动压缩或计算哈希。设备通过 https://ota.xiaoyinrobot.com 轮询更新。
当前选择的文件夹会由浏览器自动打包并计算 SHA-256;压缩包内容是目标目录内容(不额外嵌套一层),防止路径穿越。平台和 Agent 双重校验,成功后整目录替换,不保留旧目录。 SHA-256:{{ folderArchiveHash }}
| 版本 | 压缩包 | Target 文件夹 | 大小 | SHA-256 | 上传时间 | 状态 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ artifact.version }} | {{ artifact.filename }} | {{ artifact.target }} | {{ formatSize(artifact.size) }} | {{ artifact.sha256 }} | {{ formatTime(artifact.upload_time) }} | {{ artifact.status }} | |
| 暂无可发布文件夹 | |||||||
| 任务 ID | 类型 | 版本 | Target | 范围 | 目标 SN | 状态 | 创建时间 | 操作 |
|---|---|---|---|---|---|---|---|---|
{{ task.task_id }} | {{ task.kind==='folder'?'文件夹':'文件' }} | {{ task.version }} | {{ task.target }} | {{ task.scope==='global'?'全量':'指定设备' }} | {{ task.serial_number || '所有 SN' }} | {{ statusLabel(task.status) }} {{ deliverySummary(task) }} | {{ formatTime(task.create_time) }} | |
| 暂无文件或文件夹 OTA 任务 | ||||||||