# 技术说明 — Layer 3 宿主机巡检 Telegram 打通

**日期**: 2026-06-07

## 目标

设置页保存 `telegram_bot_token` / `telegram_chat_id` 后，Layer-3 `health_monitor.sh` 能可靠发送 Telegram（/health 连续失败 → 重启通知）。

## 三层配置读取顺序（health_monitor.sh）

1. 宿主机 `${NEXUS_ROOT}/.env`、`docker/.env.prod`
2. 容器 `/app/.env`（`docker exec grep`）
3. **新增** 容器内 Python 从 MySQL `settings` 表加载（与运行时 `load_settings_from_db` 一致）

## 应用内同步（保存 Telegram 时）

`ops_patrol_sync.sync_telegram_to_env` 写入：

- `/app/.env` + `NEXUS_PERSIST_DIR/.env`（nexus-state 卷）
- 若 `NEXUS_HOST_ROOT` 可写：`{NEXUS_HOST_ROOT}/docker/.env.prod`

## API

| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/api/settings/ops-patrol/status` | 巡检 Telegram / env 同步状态 |
| POST | `/api/settings/ops-patrol/sync-telegram` | 手动同步 DB → .env |

## 部署

`deploy-production.sh` 健康检查通过后，若远程无 `nexus-health-monitor` cron，自动执行 `install_ops_cron.sh`。

## 回滚

-  revert 本 commit；cron 条目可保留（行为与旧版兼容，仅多 DB 回退）
- 删除 `.env` 中 `NEXUS_TELEGRAM_*` 不影响应用内 DB 配置
