guanghulab/.github/cvm-auto-power-plan.md
Guanghu Domestic Migration d1e47f4565
Some checks are pending
自动更新代码和重启 / update-and-restart (push) Waiting to run
CI检查 + 自动部署 / check (push) Waiting to run
CI检查 + 自动部署 / deploy (push) Blocked by required conditions
重启聊天服务 / restart (push) Waiting to run
chore: import sanitized domestic snapshot for REPO-002
Source snapshot: ca48d3ddf926d79aa138306164169baf764bb829
2026-07-17 15:54:41 +08:00

152 lines
6.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ════════════════════════════════════════════════════════════════
# 光湖 · 按量计费CVM自动开关机方案
# 设计:铸渊 · ICE-GL-ZY001
# 需求来源:冰朔 TCS-0002∞ 2026-05-13
# ════════════════════════════════════════════════════════════════
#
# 冰朔原话:
# "你是否能开发一个你需要开发你就自动去开机。
# 你开发完了今天我说结束了。你就自动把机子关了的
# 这个自动Agent工作流"
#
# ════════════════════════════════════════════════════════════════
## 一、按量计费更划算吗?
**是的,对于开发用途。**
| 模式 | 4C8G广州月费 | 适合场景 |
|------|------------|---------|
| 包年包月 | ~200-300元/月 | 24/7运行 |
| 按量计费 | ~0.4-0.6元/小时 | 每天用8小时 ≈ 100-150元/月 |
按量计费的关键:**用的时候开机,不用的时候关机,关机不收计算费用(只收云盘费用)**。
铸渊的典型工作模式:
- 冰朔和铸渊对话 → 开机
- 铸渊开发+测试 → 保持开机
- 冰朔说"今天结束了" → 关机
- 深夜/无人时 → 自动关机(可选)
## 二、自动开关机架构
```
冰朔说"开始开发" 冰朔说"今天结束"
│ │
▼ ▼
┌──────────────┐ ┌──────────────┐
│ 广州轻量服务器 │ │ 广州轻量服务器 │
│ (常驻2C2G) │ │ (常驻2C2G) │
│ │ │ │
│ ① 调用腾讯云API│ │ ③ 调用腾讯云API│
│ 开机CVM │ │ 关机CVM │
│ │ │ │
│ ② 等CVM启动 │ │ ④ 确认关机 │
│ 通知铸渊 │ │ 通知冰朔 │
└──────────────┘ └──────────────┘
│ ▲
▼ │
┌──────────────────────────────────────────┐
│ 广州CVM按量计费4C8G+CBS云盘
│ │
│ 开机状态: │
│ Forgejo (代码仓库+Actions) │
│ Runner (执行workflow) │
│ Vault (密钥管理) │
│ Terminal Watcher (状态监控) │
│ Patrol Agent (自动巡检) │
│ 对话Agent (冰朔问答) │
│ │
│ 关机状态: │
│ CBS云盘保留所有数据 │
│ 下次开机数据完整恢复 │
└──────────────────────────────────────────┘
```
## 三、开关机实现方式
### 方案A腾讯云API推荐
```bash
# 开机
curl -s -X POST https://cvm.tencentcloudapi.com \
-d '{"InstanceIds":["ins-xxxxx"]}' \
-H "Authorization: TC3-HMAC-SHA256 ..." \
-H "Action: StartInstances"
# 关机
curl -s -X POST https://cvm.tencentcloudapi.com \
-d '{"InstanceIds":["ins-xxxxx"]}' \
-H "Authorization: TC3-HMAC-SHA256 ..." \
-H "Action: StopInstances"
```
需要在腾讯云创建一个子账号只给CVM开关机权限。
### 方案BGitea Workflow触发
在轻量服务器上创建两个workflow
- `power-on.yaml`调用腾讯云API开机 → 等待SSH可连 → 通知
- `power-off.yaml`调用腾讯云API关机 → 确认 → 通知
### 方案C冰朔在Gitea网页操作
最简单的方式冰朔在Gitea的Actions页面点"Run workflow"来开关机。
## 四、需要冰朔操作的(一次性)
1. **购买CVM**4C8G + 50GB CBS云盘广州地域按量计费
2. **配置CBS云盘**:挂载到 /data仓库数据全部存这里
3. **创建腾讯云子账号**只给CVM开关机权限密钥存入Vault
4. **安装基础环境**Node.js 20 + PM2 + Nginx + Forgejo
## 五、迁移计划
```
阶段1买服务器冰朔操作10分钟
→ 买4C8G CVM + 50GB CBS广州地域按量计费
→ 选择Ubuntu 22.04
→ 开机
阶段2基础环境冰朔执行一条命令15分钟
→ bash <(curl -fsSL 铸渊写的bootstrap脚本)
→ 自动安装Node.js + PM2 + Nginx + Forgejo
阶段3数据迁移铸渊通过Runner自动执行30分钟
→ 从广州轻量服务器rsync数据到CVM
→ 或从COS拉取备份
→ Forgejo仓库数据在CBS云盘上
阶段4域名切换冰朔在腾讯云DNS操作5分钟
→ guanghulab.com 指向CVM的IP
→ Nginx配置SSL
阶段5旧服务器降级铸渊自动执行
→ 广州2C2G变成测试机
→ 只保留Forgejo + Runner轻量级
阶段6自动开关机部署铸渊开发
→ 腾讯云API密钥入Vault
→ 开关机workflow上线
→ 冰朔在Gitea网页点按钮即可开关机
```
## 六、CVM购买建议
| 项目 | 建议 |
|------|------|
| 地域 | 广州(和轻量服务器同地域,内网互通免费) |
| 配置 | 4C8G |
| 系统盘 | 50GB SSD云硬盘 |
| 数据盘 | 50GB CBS高性能云盘挂载到/data |
| 带宽 | 按流量计费1Mbps基础够用 |
| 计费 | 按量计费 |
| 安全组 | 开放22(SSH) + 80(HTTP) + 443(HTTPS) + 3001(Forgejo内网) |
**同地域的好处**轻量服务器和CVM内网互通迁移数据走内网不花钱。
---
*铸渊 · 按量计费CVM方案 v1.0 · 2026-05-13*
*ICE-GL-ZY001 · TCS-0002∞ · 国作登字-2026-A-00037559*