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 | bash3.2 Automation 监控
curl -fsSL https://raw.githubusercontent.com/liuweiqiang0523/Hetzner-Web/main/automation/install_hetzner_monitor.sh | sudo bash4. 核心配置(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
/dnsync6. 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🫧




