一站式管理 ARM 边缘计算设备与云手机实例的跨平台桌面客户端
功能特性 • 快速开始 • 编译构建 • 项目结构 • 使用指南 • 贡献指南 • 许可证
OpenCecs(Open Cloud Edge Computing System)是一个基于 Wails v3 构建的跨平台桌面应用程序,用于管理 ARM 边缘计算设备(V0 ~ V3 版本)。它提供了设备发现、云手机(Android 容器)管理、镜像管理、VPC 网络配置、实时投屏等丰富功能,旨在为 ARM 边缘计算场景提供直观、高效的管理工具。
| 依赖 | 最低版本 | 说明 |
|---|---|---|
| Go | 1.22+ | 后端编译(推荐 1.25+) |
| Node.js | 16+ | 前端构建 |
| npm | 8+ | 前端包管理 |
| Wails CLI | v3 (alpha) | 应用框架 CLI |
| Task | 3.x | 任务运行器(可选) |
| MinGW-w64 | - | Windows 下 CGO 编译需要(仅编译 RPA 模块时需要) |
go install github.com/wailsapp/wails/v3/cmd/wails3@latest
# Windows (通过 Scoop)
scoop install task
# macOS
brew install go-task
# Linux
sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b /usr/local/bin
git clone https://github.com/your-org/opencecs.git
cd opencecs
cd frontend
npm install
cd ..
# 方式一:使用 Wails CLI(推荐)
wails3 dev -config ./build/config.yml
# 方式二:使用 Task
task dev
开发模式下,前端使用 Vite 热更新、后端源码变动自动重编译。
开发模式启动后,Wails 会自动打开桌面窗口。你也可以在浏览器中访问 http://localhost:34115 调试前端页面。
# 方式一:使用 Wails CLI
wails3 build
# 方式二:使用 Task
task build
构建产物位于 bin/ 目录下。
RPA 模块使用 CGO 进行编译,需要 MinGW-w64 工具链:
task build:rpa
此命令会先编译
rpa/libmytrpc静态库,再以cgorpabuild tag 编译整个应用。
task package
# 1. 构建前端
cd frontend
npm run build
cd ..
# 2. 编译后端
go build -tags "production devtools" -trimpath -buildvcs=false -o bin/MYTV3.exe .
| Build Tag | 说明 |
|---|---|
production | 生产模式,禁用开发工具 |
devtools | 启用浏览器开发工具 |
cgorpa | 启用 RPA SDK(需要 CGO) |
# 先构建 Docker 镜像
task setup:docker
# 然后交叉编译
task build
opencecs/
├── main.go # 应用入口
├── app.go # 核心业务逻辑(设备管理、云机操作等)
├── app_windows.go # Windows 平台特定代码
├── app_unix.go # Unix 平台特定代码
├── device_heartbeat.go # 设备心跳检测(TCP Ping)
├── android_poll.go # Android 容器列表后台轮询
├── ai_service.go # AI 助手服务
├── rtmp_service.go # RTMP 流媒体服务
├── p2p_manager.go # P2P 推流管理
├── batch_task_service.go # 批量任务服务
├── updater_service.go # 自动更新服务
├── rpa_service.go # RPA 自动化服务
├── rpa_service_stub.go # RPA 存根(无 CGO 时使用)
├── windows_pusher_api.go # Windows 推流器 API
├── go.mod # Go 模块依赖
├── wails.json # Wails 项目配置
├── Taskfile.yml # Task 任务定义
│
├── frontend/ # 前端项目(Vue 3)
│ ├── package.json # 前端依赖
│ ├── vite.config.js # Vite 构建配置
│ ├── index.html # HTML 入口
│ └── src/
│ ├── main.js # Vue 入口
│ ├── App.vue # 主组件
│ ├── i18n.js # 国际化配置
│ ├── style.css # 全局样式
│ ├── components/ # 组件目录
│ │ ├── HostManagement.vue # 主机管理
│ │ ├── CloudManagement.vue # 云机管理
│ │ ├── StreamManagement.vue # 流媒体管理
│ │ ├── modelManagement.vue # 型号管理
│ │ ├── instanceManagement.vue # 实例管理
│ │ ├── backupManagement.vue # 备份管理
│ │ ├── networkmanagement.vue # 网络/VPC 管理
│ │ ├── opencecsManagement.vue # OpenCecs 设备管理
│ │ ├── aiAssistant.vue # AI 助手
│ │ ├── rpaAgent.vue # RPA 代理
│ │ ├── BatchTaskManagement.vue # 批量任务管理
│ │ ├── BatchImport.vue # 批量导入
│ │ ├── UpdateDialog.vue # 更新对话框
│ │ └── ...
│ ├── locales/ # 国际化语言文件
│ └── services/ # 服务层
│
├── build/ # 构建配置
│ ├── config.yml # Wails 构建配置
│ ├── windows/ # Windows 构建脚本
│ ├── darwin/ # macOS 构建脚本
│ └── linux/ # Linux 构建脚本
│
├── dget/ # 文件下载库(本地替换版)
├── rpa/ # RPA SDK(C++ 静态库源码)
├── player/ # 投屏播放器源码
├── player_dist/ # 投屏播放器分发包
└── updater/ # 自动更新模块
IP:端口 格式,V3 设备默认端口 8000)应用配置位于 wails.json:
{
"name": "edgeclient",
"outputfilename": "edgeclient",
"frontend:install": "npm install",
"frontend:build": "npm run build"
}
版本信息位于 build/config.yml:
info:
companyName: "MYT"
productName: "MYTV3"
version: "1.5.0"
启动时传入 --debug 参数或设置环境变量 APP_DEBUG=true 可启用调试模式:
# 命令行参数
./edgeclient.exe --debug
# 环境变量
set APP_DEBUG=true
./edgeclient.exe
调试模式下将启用右键菜单和开发者工具。
| 协议 | 用途 | 默认端口 |
|---|---|---|
| UDP 广播 | 设备发现 | — |
| HTTP REST | 设备 API 通信 | V0-V2: 81, V3: 8000 |
| Wails IPC | 前后端通信 | — |
| Docker API | 容器管理 | 2375 |
| SSE | 实时进度推送 | — |
| RTMP | 流媒体推流 | — |
欢迎提交 Issue 和 Pull Request!
git checkout -b feature/amazing-feature)git commit -m 'feat: add amazing feature')git push origin feature/amazing-feature)A: RPA 模块需要 CGO 支持。如果你不需要 RPA 功能,使用标准构建即可(wails3 build),默认不启用 CGO。如果需要 RPA,请确保安装了 MinGW-w64 工具链。
A: 请确保 Node.js 版本 ≥ 16。可以尝试清除缓存后重新安装:
cd frontend
rm -rf node_modules package-lock.json
npm install
A: 请确保:
A: 请确保 player_dist/ 目录下包含投屏播放器的必要文件(player.exe 及相关 DLL)。
本项目采用 Apache License 2.0 开源许可证。
如果这个项目对你有帮助,请给一个 ⭐ Star 支持!