# antmonitor-cloud
**Repository Path**: raphael01/antmonitor-cloud
## Basic Information
- **Project Name**: antmonitor-cloud
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-11-01
- **Last Updated**: 2026-11-04
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# AntMonitor Cloud
### 多场地云端总览
**一台云服务器 · 看清所有矿场**
各场地本地跑 [AntMonitor](https://github.com/raphael2025/antmonitor),
每分钟把摘要推上来 — 你在手机或电脑上扫一眼全网。
[中文](docs/guide/zh.md) ·
[English](docs/guide/en.md) ·
[Русский](docs/guide/ru.md) ·
[Español](docs/guide/es.md) ·
[Deutsch](docs/guide/de.md) ·
[العربية](docs/guide/ar.md)
[☁ 云端 GitHub](https://github.com/raphael2025/antmonitor-cloud) / [Gitee](https://gitee.com/raphael01/antmonitor-cloud)
·
[🌐 场地端 GitHub](https://github.com/raphael2025/antmonitor) / [Gitee](https://gitee.com/raphael01/antmonitor)
·
[💬 Telegram](https://t.me/+W3J9yAypNgpjNTk9)
·
微信 `raphael-2024`
---
## 适合谁
| | |
|:---|:---|
| **多场地老板 / 总部** | 内蒙、新疆、海外……一张图看完 |
| **值班经理** | 哪场失联、哪场告警,不用钻进每台监控机 |
| **已部署场地端** | 打开云端上报即可,场地在 NAT 后也不用端口映射 |
本地继续做运维与存历史;云端只做**总览**,轻、稳、好打开。
---
## 你能看到什么
- **全网 KPI** — 场地在线、矿机在线率、总算力、功耗、告警、客户
- **场地卡片** — 风冷 / 水冷分组;点开看趋势与该场客户
- **算力对比** — 各场曲线,近几小时到一周
- **失联发现** — 整场断电时本地监控也挂了,只有云端能发现
- **面板多语言** — 中 / 英 / 俄 / 西 / 德 / 阿
开源可自建。和 [场地端](https://github.com/raphael2025/antmonitor) 配套使用。
---
## 三分钟上手
Ubuntu / Debian / CentOS 均可一键部署,无需先克隆仓库或预装 Git / Python。
选择可访问的下载源,再按有无域名选一条命令;示例域名请替换成自己的。
### GitHub 一键安装
```bash
# 有域名(推荐):域名 A 记录指向服务器,安全组放行 80/443
curl -fsSL https://raw.githubusercontent.com/raphael2025/antmonitor-cloud/master/install.sh | sudo bash -s -- --source github --domain overview.example.com
# 没有域名:自动探测公网 IP,使用自签 HTTPS,安全组放行 8900
curl -fsSL https://raw.githubusercontent.com/raphael2025/antmonitor-cloud/master/install.sh | sudo bash -s -- --source github
```
### Gitee 一键安装
```bash
# 有域名(推荐):域名 A 记录指向服务器,安全组放行 80/443
curl -fsSL https://gitee.com/raphael01/antmonitor-cloud/raw/master/install.sh | sudo bash -s -- --source gitee --domain overview.example.com
# 没有域名:自动探测公网 IP,使用自签 HTTPS,安全组放行 8900
curl -fsSL https://gitee.com/raphael01/antmonitor-cloud/raw/master/install.sh | sudo bash -s -- --source gitee
```
公网 IP 探测不准确时,在命令末尾追加 `--ip 你的公网IPv4`,将占位内容换成实际地址。
Gitee 命令自动安装 Git 并从 Gitee 拉取源码。默认安装到 `/opt/antmonitor-cloud`;安装时设置 admin 密码,
直接回车会生成强密码并显示一次。结束时显示面板地址和无域名模式的证书指纹。
GitHub / Gitee 是代码下载来源,无需注册账号或安装它们的客户端。下载命令需要 `curl`;Ubuntu 没有时先运行
`sudo apt-get update && sudo apt-get install -y curl ca-certificates`。
自动判断 GitHub / Gitee,或者两边都打不开
不确定哪个来源可访问时,复制下面的一条命令;先完整下载脚本,再执行一次。脚本内的 `auto` 也会尝试可用的源码来源。
有域名时在末尾 `--source auto` 后追加 `--domain 你的域名`。
```bash
( f=$(mktemp) && trap 'rm -f "$f"' EXIT && { curl -fsSL --connect-timeout 10 --max-time 60 https://raw.githubusercontent.com/raphael2025/antmonitor-cloud/master/install.sh -o "$f" || curl -fsSL --connect-timeout 10 --max-time 60 https://gitee.com/raphael01/antmonitor-cloud/raw/master/install.sh -o "$f"; } && sudo bash "$f" --source auto )
```
两边都不通时,可以把完整源码 ZIP 拷到服务器,解压并进入目录执行 `sudo bash install.sh --dir /opt/antmonitor-cloud`,不要指定 `--source`。
系统包、Python 依赖和 HTTPS 所需资源仍需可用网络或事先准备。Python wheels 可放到项目 `offline/wheels`,或通过
`ANTCLOUD_WHEELHOUSE` 指定目录;这会禁用在线 pip 索引,不代表已包含所有系统依赖。详见[本地源码部署](docs/DEPLOY.md#本地源码与受限网络)。
### 后续更新与换源
更新代码、Python 依赖并重启,按希望使用的来源选一条:
```bash
# GitHub
curl -fsSL https://raw.githubusercontent.com/raphael2025/antmonitor-cloud/master/install.sh | sudo bash -s -- update --source github
# Gitee
curl -fsSL https://gitee.com/raphael01/antmonitor-cloud/raw/master/install.sh | sudo bash -s -- update --source gitee
```
已有官方 Git 部署可以用 `--source github` / `--source gitee` 切换来源;不指定或 `--source auto` 时保留现有 `origin`。
自动模式遇到官方来源 fetch 网络失败时,会尝试另一平台的同分支并仅接受快进更新,不回退到旧镜像;自定义仓库不会被切换到官方仓库。
自定义安装目录需在安装和更新时都补 `--dir '/实际安装目录'`。
更新并重启后,正常刷新网页即可加载新版按钮和语言文件;资源版本自动生成,ZIP 安装也适用。
若本地端已更新、场地卡片有数字而顶部汇总为空,本版修复了合法的小数秒采集时间被误判无效的问题。只需更新并重启云端,等待下一轮有效上报;本地端无需再次安装。
系统软件、Python 依赖和域名证书仍需联网获取;两平台的版本同步与运维细节见[部署与运维](docs/DEPLOY.md)。
### 接入场地
**云端复制一次,本地粘贴一次,不用拆开填写地址和 token。**
1. admin 登录云端 →「🔌 场地接入」→ 填场地名称、类型和当前管理员密码 → **「生成并复制完整接入信息」**。
2. 本地端打开「☁ 连接云端」→ **「粘贴接入信息并连接」**。局域网 HTTP 页面若提示不能自动读剪贴板,直接按 **Ctrl+V**,程序会继续验证和保存。
3. 看到最近上报成功时间,并在云端看到该场地,即完成接入。尚未完成首轮扫描时,先在本地设置矿机网段并扫描。
复制的是同一份 `AMC1-…` 接入信息,已包含上报地址、token、证书指纹(需要时)、场地 ID、名称和类型;**网页和命令界面通用**。
`AMC1` 后面是 Base64URL **编码,不是加密**。编码方便整段复制,持有整段内容的人可以解出 token,因此整段都应作为上报凭据保管。
Ubuntu 首次安装时按提示粘贴;已安装后在安装目录运行 `sudo bash install.sh connect --dir .`。
Windows 已安装后也可以双击 `connect-cloud.bat`,按提示粘贴;原监控仍在运行时,保存后按提示重启原窗口即可生效。
场地端尚未安装时,展开结果区的安装说明,复制 **GitHub / Gitee** 安装命令。安装器会准备 Git / Python,无需用户先克隆仓库。
已有场地再次复制用 **「复制接入信息」**,不会更换正在使用的 token;旧接入码仍兼容,缺少名称或类型时再补填。
云端正常 HTTPS 地址可直接生成;经 SSH 隧道或 localhost 访问时,需要在「高级管理」先保存场地能够访问的地址。
接入信息只交给对应场地负责人,**不要写进安装命令**。2 分钟后隐藏只清空页面显示,凭据不会过期。
**清理旧测试场地**:在「场地接入 → 已分配的场地」找到对应 **ID**,点击「删除场地」。尚未上报、已经撤销密钥的场地也能删除;同名但不同 ID 的场地不受影响。
「撤销密钥」会停用上报并保留场地记录;「删除场地」会从接入列表移除记录、停用旧接入信息,并永久删除该 ID 的历史数据。误删可在顶部「已删除场地」中恢复,然后回到「场地接入」生成新的接入信息并粘贴到本地端;旧码和已删除的历史不会恢复。
详细步骤见[场地接入](docs/DEPLOY.md#4-场地接入每个场地一次)。
完整「简介 · 部署 · 使用」→ [选语言阅读](docs/guide/README.md)
### 日间与夜间主题
顶部和登录页可选择「跟随系统」「按时间自动」「日间」「夜间」,浏览器会记住选择。
「按时间自动」使用打开页面设备的本地时间:07:00(含)至 19:00(不含)为日间,其余为夜间;无需配置服务器。
运维细节(nginx、通知渠道等)见 [DEPLOY](docs/DEPLOY.md)。
### 客户实时算力与 24 小时平均
客户数按**当前机器所属的第一配置矿池账户**统计;备用池使用不同矿工名、主备切换,不会新增客户。
场地卡片按场地去重,全网客户数按账户名跨场地去重。机器暂时离线或算力为零,不代表客户已离场。
旧备用名或已离场账户在统计期内仍有记录时,报表保留并标为「历史记录,不计入当前客户数」,不自动改写历史算力或耗电。
需要同时更新并重启场地端和云端;场地完成一轮巡检并成功上报后,当前客户数即可刷新,无需等满 24 小时。
客户表分别显示**实时算力**和**近 24 小时平均算力**,单位为 TH/s、PH/s、EH/s;同一客户的跨场地实时合计需要各场地读数新鲜有效,周期平均还需要实际起止窗口一致、覆盖完整。
一台机器全天稳定 293 TH/s,24 小时平均仍是 293 TH/s;100 台均如此,客户合计就是 29.3 PH/s。
实际统计包含运行波动和确认离线时段,不能用标称算力乘台数代替。
旧版的 `EH·h`/`TH·h` 表示累计交付,属于时间积分,不是平均算力;原累计字段与场地 CSV 仍保留。
历史覆盖不足时,单场地仍显示已有的有效时段平均,同时标注「按有效时段计算」与覆盖时长,例如 `90.88 PH/s / 有效数据 23.26/24h`;这不是完整一天的平均。
跨场地覆盖不足或统计周期不同时,不拼出合计平均。未上报、缺测和数据过期会分别提示。
如果场地总算力正常,但客户表显示「本地未上报」,请检查对应**场地端是否已更新并重启**,不能只更新云端或下载源码后继续运行旧进程。
保留的原始扫描记录会自动用于计算近 24 小时平均,无需一律再等满 24 小时;缺失的历史仍如实标注。
默认客户实时数据随摘要每 60 秒更新,平均报表每 600 秒更新。详细口径见[中文指南 · 客户算力怎么看](docs/guide/zh.md#客户算力怎么看)。
本轮[数据逻辑审计](docs/DATA_LOGIC_AUDIT.md)覆盖采集、实时汇总、客户积分、跨场地合计、日报和通知。
算力、功率、机器状态各自检查覆盖;总览主数值显示有效合计,部分覆盖时标注「已统计 x/y 个场地」或「部分读数」。场地功耗缺少部分机器时显示已有有效功耗,并标注矿机覆盖台数。
网页当前功率固定用 **kW**,统计期累计耗电固定用 **kWh(度)**。功率总览来自矿机读数合计;AntBox 配电读数单独展示,不重复计入,也不等同于全场电表负荷。
客户窗口按共同的十分钟边界查询;日报按 **UTC+8** 切日,今天按已经经过的时间计算覆盖。旧日报和旧账本保留为明确标注的对照记录。
趋势中的实线表示完整读数,部分实测以虚线/点标明,悬停可查看覆盖情况。算力、功率分别判断有效性,
缺功率不等于缺算力;部分合计不代表完整场地总量。真正未采到有效数据的时段仍留空,零值则正常显示为零。
因此曲线空档不能单独作为停机证据,须结合对应时段的扫描和上报日志核对。图表不会拿旧值或插值补齐缺口。
云端主按钮继续复制 **AMC1 完整接入包**(地址、token、场地信息),并从实际包解析预览目标地址和场地;本地网页或命令界面均可整段粘贴,单独 token 只用于高级手动配置。
升级请**先更新并重启云端,再更新并重启场地端**,确认系统时间正确;延迟上报、时钟回拨和异常未来时间不会被自动“校正”为刚采集。
耗电是监控估算,不能替代电表。具体修复反例、API 变化、测试命令和现场核验限制见审计文档。
### 运维功能与通知可靠性
[运维与功能逻辑审查](docs/OPERATIONS_LOGIC_REVIEW.md)说明各项功能的现场用途与边界。
本次修复持续低算力误报恢复、通知失败后丢失、机器人业务拒绝却显示成功的问题;
失败通道会退避重试,已成功通道不重复补发,场地恢复后取消旧故障消息。
通知队列保存在运行进程中,不能当作跨重启的可靠消息服务。云端 viewer 是全网只读角色,不是客户隔离账号。
---
## 产品与仓库
| | GitHub | Gitee | 做什么 |
|:---|:---|:---|:---|
| **云端** | [antmonitor-cloud](https://github.com/raphael2025/antmonitor-cloud) | [antmonitor-cloud](https://gitee.com/raphael01/antmonitor-cloud) | 多场地总览(本仓库) |
| **场地端** | [antmonitor](https://github.com/raphael2025/antmonitor) | [antmonitor](https://gitee.com/raphael01/antmonitor) | 局域网监控、告警、批量运维 |
---
## 持续更新
与场地端一起迭代。欢迎提意见、提需求 — 多客户管理、更聪明的告警、Agent / MCP 等已在路线图上。
---
## 联系与定制
多场地接入、通知通道、权限与报表、私有化部署:
| | |
|:---|:---|
| **微信** | 搜索 **`raphael-2024`** |
| **Telegram** | [加入群组](https://t.me/+W3J9yAypNgpjNTk9) |
| **云端** | [GitHub](https://github.com/raphael2025/antmonitor-cloud) / [Gitee](https://gitee.com/raphael01/antmonitor-cloud) |
| **场地端** | [GitHub](https://github.com/raphael2025/antmonitor) / [Gitee](https://gitee.com/raphael01/antmonitor) |
---
AntMonitor Cloud · Open source · See every site at a glance