{"id":48540292,"url":"https://github.com/sakurapuare/hydra","last_synced_at":"2026-04-08T04:02:17.953Z","repository":{"id":342994320,"uuid":"1175264703","full_name":"SakuraPuare/Hydra","owner":"SakuraPuare","description":"高性能云端 Android 集群管理平台，基于 Redroid 容器化方案。Go + React，实例管理、实时屏幕操控、代理配置、Prometheus 监控。","archived":false,"fork":false,"pushed_at":"2026-03-08T12:42:16.000Z","size":41,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-08T14:26:29.064Z","etag":null,"topics":["android","cloud","cluster-management","docker","go","grafana","magisk","prometheus","react","redroid","scrcpy"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SakuraPuare.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-07T13:22:32.000Z","updated_at":"2026-03-08T12:44:55.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/SakuraPuare/Hydra","commit_stats":null,"previous_names":["sakurapuare/hydra"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/SakuraPuare/Hydra","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SakuraPuare%2FHydra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SakuraPuare%2FHydra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SakuraPuare%2FHydra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SakuraPuare%2FHydra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SakuraPuare","download_url":"https://codeload.github.com/SakuraPuare/Hydra/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SakuraPuare%2FHydra/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31539229,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"online","status_checked_at":"2026-04-08T02:00:06.127Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","cloud","cluster-management","docker","go","grafana","magisk","prometheus","react","redroid","scrcpy"],"created_at":"2026-04-08T04:02:11.730Z","updated_at":"2026-04-08T04:02:17.932Z","avatar_url":"https://github.com/SakuraPuare.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/assets/hydra-logo.png\" alt=\"Hydra\" width=\"200\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eHydra\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003e高性能云端 Android 集群管理平台\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#核心功能\"\u003e核心功能\u003c/a\u003e \u0026bull;\n  \u003ca href=\"#系统架构\"\u003e系统架构\u003c/a\u003e \u0026bull;\n  \u003ca href=\"#快速开始\"\u003e快速开始\u003c/a\u003e \u0026bull;\n  \u003ca href=\"#开发路线\"\u003e开发路线\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\nHydra 是一套云原生 Android 设备集群管理系统，基于 [Redroid](https://github.com/remote-android/redroid-doc) 容器化方案，在裸金属服务器上编排和管理数百台 Android 实例。Go 语言构建的控制平面提供完整的实例生命周期管理、浏览器内实时屏幕操控、独立代理网络隔离，所有操作通过统一的 Web 控制台完成。\n\n## 核心功能\n\n**实例管理**\n- 一键创建预装应用的 Android 容器实例\n- 批量创建、重启、暂停、销毁\n- 自定义 Redroid 镜像，内置 Magisk、Mihomo 及业务应用\n- 按实例分配 CPU、内存资源上限\n\n**实时屏幕操控**\n- 浏览器内低延迟屏幕投射与触控操作\n- Scrcpy 采集 → WebSocket 中继 → Canvas 渲染\n- 支持同时查看和操控多个实例\n\n**网络与代理**\n- 每个实例内运行 Mihomo 内核，独立代理出口\n- 控制平面集中下发代理配置，统一管理节点\n- 实例间网络完全隔离\n\n**监控与可观测性**\n- 原生 Prometheus metrics 端点\n- 预置 Grafana 仪表盘，集群级全局视图\n- 每实例 CPU、内存、网络、健康状态实时追踪\n\n**应用生命周期**\n- 基于 ADB 的批量 APK 安装 / 卸载\n- 预构建黄金镜像，内置 WhatsApp、TikTok 及相关依赖\n- 实例创建即自动部署应用，开箱即用\n\n## 系统架构\n\n```\n┌──────────────────────────────────────────────────────────┐\n│                    Hydra 管理控制台                        │\n│                  React + TypeScript                       │\n│            屏幕操控 / 集群管理 / 代理配置                   │\n└────────────────────────┬─────────────────────────────────┘\n                         │ REST API + WebSocket\n┌────────────────────────▼─────────────────────────────────┐\n│                  Hydra Server (Go)                        │\n│                                                          │\n│  ┌─────────────┐ ┌──────────────┐ ┌───────────────────┐  │\n│  │  实例管理器   │ │   屏幕中继    │ │   代理配置管理     │  │\n│  │  Instance   │ │   Screen     │ │   Proxy Config    │  │\n│  │  Manager    │ │   Relay      │ │   Manager         │  │\n│  └──────┬──────┘ └──────┬───────┘ └───────┬───────────┘  │\n│         │               │                 │              │\n│  ┌──────┴──────┐ ┌──────┴───────┐ ┌───────┴───────────┐  │\n│  │  Docker     │ │   Scrcpy     │ │   ADB             │  │\n│  │  Engine API │ │   Bridge     │ │   Controller      │  │\n│  └─────────────┘ └──────────────┘ └───────────────────┘  │\n│                                                          │\n│  ┌────────────────────────────────────────────────────┐   │\n│  │           Prometheus Metrics /metrics               │   │\n│  └────────────────────────────────────────────────────┘   │\n└────────────────────────┬─────────────────────────────────┘\n                         │ Docker API + ADB\n┌────────────────────────▼─────────────────────────────────┐\n│                Redroid 容器集群                            │\n│                                                          │\n│  ┌─────────┐ ┌─────────┐ ┌─────────┐                    │\n│  │ 云手机 1 │ │ 云手机 2 │ │ 云手机 N │  ...               │\n│  │ Android │ │ Android │ │ Android │                     │\n│  │ 11      │ │ 11      │ │ 11      │                     │\n│  │         │ │         │ │         │                     │\n│  │ Magisk  │ │ Magisk  │ │ Magisk  │                     │\n│  │ Mihomo  │ │ Mihomo  │ │ Mihomo  │                     │\n│  │ Apps    │ │ Apps    │ │ Apps    │                     │\n│  └─────────┘ └─────────┘ └─────────┘                    │\n│                                                          │\n│  libndk_translation (ARM → x86 指令转译层)                │\n└──────────────────────────────────────────────────────────┘\n```\n\n## 技术栈\n\n| 层级 | 技术选型 |\n|------|---------|\n| 前端 | React, TypeScript, Ant Design |\n| 后端 | Go, Gin, Docker SDK |\n| Android 运行时 | Redroid (Android 11), libndk_translation |\n| Root 框架 | Magisk |\n| 网络代理 | Mihomo 内核 |\n| 屏幕采集 | Scrcpy → WebSocket |\n| 数据库 | PostgreSQL |\n| 监控 | Prometheus + Grafana |\n| 容器运行时 | Docker / Docker Compose |\n\n## 快速开始\n\n### 环境要求\n\n- Linux 宿主机，需加载内核模块：`binder_linux`、`ashmem_linux`\n- Docker \u0026 Docker Compose\n- Go 1.22+\n- Node.js 20+\n\n### 1. 加载内核模块\n\n```bash\nsudo modprobe binder_linux devices=\"binder,hwbinder,vndbinder\"\nsudo modprobe ashmem_linux\n```\n\n开机自动加载：\n\n```bash\necho \"binder_linux\" | sudo tee /etc/modules-load.d/redroid.conf\necho \"ashmem_linux\" | sudo tee -a /etc/modules-load.d/redroid.conf\necho 'options binder_linux devices=\"binder,hwbinder,vndbinder\"' | sudo tee /etc/modprobe.d/redroid.conf\n```\n\n### 2. 启动 Hydra\n\n```bash\ngit clone https://github.com/SakuraPuare/hydra.git\ncd hydra\ncp .env.example .env    # 配置宿主机 IP、端口、代理参数\nmake dev                 # 一键启动后端 + 前端 + 数据库\n```\n\n### 3. 打开控制台\n\n浏览器访问 `http://localhost:3000`，开始创建云手机实例。\n\n## 项目结构\n\n```\nhydra/\n├── cmd/\n│   └── hydra/              # 程序入口\n├── internal/\n│   ├── api/                 # REST API 路由与处理器\n│   ├── instance/            # 容器生命周期管理\n│   ├── screen/              # Scrcpy 桥接与 WebSocket 中继\n│   ├── proxy/               # Mihomo 代理配置管理\n│   ├── adb/                 # ADB 连接池与指令控制\n│   └── metrics/             # Prometheus 指标采集器\n├── web/                     # React 前端\n│   ├── src/\n│   │   ├── pages/           # 控制台、实例详情、屏幕操控页\n│   │   ├── components/      # 公共 UI 组件\n│   │   └── services/        # API 客户端\n│   └── package.json\n├── deployments/\n│   ├── docker-compose.yml   # 生产环境编排\n│   └── redroid/             # 自定义 Redroid 镜像构建\n├── configs/                 # 默认配置文件\n├── docs/                    # 文档与素材\n├── Makefile\n├── go.mod\n└── README.md\n```\n\n## 开发路线\n\n- [x] 系统架构设计\n- [ ] 核心实例生命周期管理（创建 / 启动 / 停止 / 销毁）\n- [ ] 基于 Web 的实时屏幕操控\n- [ ] 自定义 Redroid 镜像（Magisk + Mihomo + 预装应用）\n- [ ] 代理配置集中管理\n- [ ] Prometheus 指标 \u0026 Grafana 仪表盘\n- [ ] 批量操作与集群管理\n- [ ] 多用户权限控制与实例分配\n- [ ] 桌面客户端（Electron / Tauri）\n- [ ] 多主机横向扩展\n- [ ] 商业化 SaaS 部署\n\n## 许可证\n\n[MIT](LICENSE)\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003csub\u003e为规模而生，为效率而造。\u003c/sub\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsakurapuare%2Fhydra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsakurapuare%2Fhydra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsakurapuare%2Fhydra/lists"}