仪表板
{{ desktopOnline ? '🟢' : '🔴' }}
{{ desktopOnline ? '桌面应用在线' : '桌面应用离线' }}
最后心跳: {{ formatTime(heartbeatData.timestamp) }}
{{ heartbeatData.devices_count }} 台设备 · {{ heartbeatData.workspaces_count }} 个工作区 · {{ heartbeatData.active_tasks }} 个活跃任务 尚未收到心跳信号,请确认桌面应用已开启 Web 触发器
{{ heartbeatData.devices_count }} 台设备 · {{ heartbeatData.workspaces_count }} 个工作区 · {{ heartbeatData.active_tasks }} 个活跃任务 尚未收到心跳信号,请确认桌面应用已开启 Web 触发器
{{ stats.pending }}
等待中
{{ stats.running }}
执行中
{{ stats.success }}
成功
{{ stats.failed }}
失败
最近操作
暂无操作记录
{{ actionLabel(cmd.action) }}
{{ formatTimeShort(cmd.created_at) }}
快捷入口
快捷操作
暂无工作区,请先在「工作区」页面添加或等待桌面应用同步
批量操作
对所有工作区执行操作
命令历史
{{ refreshCountdown }}s
📭
{{ historyFilter || historySearch ? '没有匹配的命令' : '暂无命令记录' }}
{{ statusLabel(cmd.status) }}
{{ actionLabel(cmd.action) }}
{{ formatTime(cmd.created_at) }}
▼
[{{ cmd.workspace_no }}] {{ cmd.workspace_name }}
脚本: {{ cmd.params.script }}
IDs: {{ cmd.params.gerrit_ids }}
命令: {{ cmd.params.command }}
Jenkins: {{ cmd.params.jenkins_ref }}
命令 ID:
{{ cmd.id }}
状态:
{{ statusLabel(cmd.status) }}
创建时间:
{{ formatTimeFull(cmd.created_at) }}
更新时间:
{{ formatTimeFull(cmd.updated_at) }}
任务 ID:
{{ cmd.task_id }}
设备 ID:
{{ cmd.device_id }}
参数:
{{ JSON.stringify(cmd.params, null, 2) }}
执行结果:
{{ cmd.result }}
工作区管理
工作区数据来源: {{ workspaceSyncInfo }}
📦
暂无工作区
可手动添加,或等待桌面应用同步
[{{ ws.no }}] {{ ws.name }}
当前选中
设备: {{ ws.device_name || ws.device_id || '-' }}
路径: {{ ws.path }}
设置
API 连接
桌面应用 Web 触发器的 API 地址需设置为此 URL
用于验证 Web 控制台与桌面应用之间的通信。两端需使用相同的密钥。
自动刷新
命令历史页面的自动刷新间隔
仅供参考,实际值需在桌面应用中配置
数据管理
清除命令历史
删除 KV 中的所有命令记录
清除本地缓存
清除浏览器中的设置和工作区缓存
配置指南
1. 在上方生成或输入 API 密钥,点击「保存设置」
2. 在 Cloudflare Pages 控制台中,将相同的密钥设置为环境变量 API_KEY
3. 在桌面应用「设置」→「Web 触发器」中:
- 开启 Web 触发器
- API 地址设置为: {{ apiBaseUrl }}
- 填入相同的 API 密钥
4. 桌面应用会自动同步工作区列表到此页面
5. 在「快捷操作」页面选择工作区并发送命令
远程终端
$ {{ entry.text }}
{{ entry.text }}
执行中...
$
文件浏览
/
加载中...
请先选择设备
空目录
名称
{{ f.is_dir ? '📁' : '📄' }}
{{ f.name }}
CI 工具
加载中...
点击上方按钮加载 Jenkins 作业
{{ job.name }}
{{ job.url }}
{{ ciJobDetail.name }}
URL: {{ ciJobDetail.url }}
可构建: {{ ciJobDetail.buildable ? '是' : '否' }}
最近构建: #{{ ciJobDetail.last_build_number }}
构建参数:
{{ p.name }} ({{ p.type }})
= {{ p.default_value }}
搜索中...
未找到匹配的变更
{{ ch.status }}
{{ ch.subject }}
#{{ ch.number }}
{{ ch.project }}
{{ ch.branch }}
{{ ch.owner }}
{{ ch.updated }}