Hetzner-Web 合并与部署教程

本教程记录如何把 Web 面板与 Automation 合并到一个仓库,并完成部署、验证与维护。

1. 背景与目标

将 Hetzner-Automation 合并到 Hetzner-Web(automation/ 目录),实现统一维护。

  • Web 面板统一展示流量与状态

  • Telegram 接收通知并可执行管理命令

  • 达量自动删机、快照重建、自动恢复 DNS

2. 仓库结构

Hetzner-Web/
├─ automation/       # 自动化监控 + Telegram
├─ static/           # Web 前端
├─ main.py           # Web + 后台调度
└─ docker-compose.yml

3. 一键安装

3.1 Web 面板

curl -fsSL https://raw.githubusercontent.com/liuweiqiang0523/Hetzner-Web/main/scripts/install-docker.sh | bash

3.2 Automation 监控

curl -fsSL https://raw.githubusercontent.com/liuweiqiang0523/Hetzner-Web/main/automation/install_hetzner_monitor.sh | sudo bash

4. 核心配置(config.yaml)

hetzner:
  api_token: "YOUR_HETZNER_API_TOKEN"

traffic:
  limit_gb: 18432
  check_interval: 5
  exceed_action: "rebuild"

telegram:
  enabled: true
  bot_token: "YOUR_TELEGRAM_BOT_TOKEN"
  chat_id: "YOUR_CHAT_ID"
  notify_levels: [10,20,30,40,50,60,70,80,90,95,100]

cloudflare:
  api_token: "YOUR_CF_TOKEN"
  zone_id: "YOUR_ZONE_ID"
  record_map:
    "SERVER_ID_1": "server-1.example.com"
    "SERVER_ID_2": "server-2.example.com"

rebuild:
  snapshot_id_map:
    "SERVER_ID_1": "SNAPSHOT_ID_1"
    "SERVER_ID_2": "SNAPSHOT_ID_2"
  fallback_template:
    server_type: "cx43"
    location: "nbg1"
    ssh_keys: []

5. Telegram 命令(教程风格清单)

5.1 查询类

/list
/status
/traffic ID
/today ID
/report
/reportstatus
/reportreset
/dnstest ID
/dnscheck ID

5.2 控制类

/startserver <ID>
/stopserver <ID>
/reboot <ID>
/delete <ID> confirm
/rebuild <ID>

5.3 快照管理

/snapshots
/createsnapshot <ID>
/createfromsnapshot <SNAP_ID>
/createfromsnapshots

5.4 定时任务

/scheduleon
/scheduleoff
/schedulestatus
/scheduleset delete=23:50,01:00 create=08:00,09:00

5.5 DNS

/dnsync

6. Web 面板优化要点

  • 紫色主题 + 日 / 夜模式

  • 总览与控制按钮对齐优化

  • 每日流量柱状图:按天分组、按服务器显示出 / 入站

7. 数据不显示的排查

现象:总览和图表都是 0。

原因:首次启动缺少历史快照。

解决:系统已增加后台快照循环,按 traffic.check_interval 记录数据,等待 1~2 个周期后刷新即可。

8. 更新与重建

cd /opt/hetzner-web
git pull
docker compose up -d --build

9. 旧仓库处理建议

建议先将 Hetzner-Automation 设置为私有,确认无依赖后再删除。


提示:此控制台使用 Basic Auth,建议通过 HTTPS 访问。| build 20260116-01 By__22 号仔 Stringer🫧

消息盒子

# 暂无消息 #

只显示最新10条未读和已读信息