GO + SQLITE / APACHE-2.0

自托管通知网关
AlertBridge

接收 HTTP 事件,按路由投递到飞书、Telegram、ntfy 或 SMTP。
记录故障状态、队列任务和投递结果,提供管理后台与只读 MCP 查询。

一个进程 · 一份 SQLite · 一个持久投递 Worker
YOUR SERVICES 监控 / 脚本 / 自动化 HMAC 事件 · Bearer 通知
ONE BRIDGE AlertBridge 认证 · 路由 · 去重 · 重试
YOUR CHANNELS 飞书 / Telegram ntfy / TLS SMTP
Agent ← 按路由授权的只读 MCP ← AlertBridge
01 / INGESTION

HTTP 事件接入

完整事件使用 HMAC,支持幂等和防重放。轻量通知使用请求头 Bearer,路由与级别由服务端固定。

02 / DELIVERY

持久队列与投递记录

事件与投递任务写入 SQLite。单 Worker 执行投递、退避重试和死信处理;HTTP 接收成功不等于渠道送达。

03 / ADMINISTRATION

管理后台与登录

服务端渲染后台管理渠道、客户端、路由和静默。支持本地密码与可选管理员 OIDC,不需要前端运行时。

API CONTRACTS

接口与认证

接口凭据用途
POST /api/v1/eventsHMAC-SHA256事件 ID 幂等、时间窗、Nonce、故障发生与恢复;HTTP 202
POST /api/v1/notifications轻量 Bearer 令牌固定路由、级别和 info 状态的一次性通知;HTTP 200
/mcp独立 OAuth / Bearer授权路由内的只读查询;不复用通知令牌

通知 API 的 outcome 区分 queued、suppressed 与 duplicate。最终投递结果在管理后台查询。API 契约 / OpenAPI

SIMULATED DEMO

故障生命周期演示

浏览器内模拟 · 虚构数据 · 不发送真实通知
真实认证、持久化和重试请用 Docker Demo 验证。

交互演示 / ops-demo
模拟事件

一台服务器的磁盘告警

发送相同路由与去重键的 firing 和 resolved。演示假定重复事件在去重窗口内,不模拟真实认证或 OIDC。

固定演示路由:ops
渠道:飞书(模拟)
去重键:demo-disk
活跃故障 0
接收事件 0
模拟通知 0

等待第一条事件。点击“发生故障”开始。

  1. 这里将展示事件与模拟投递的变化。
查看最近一次模拟请求
尚无请求;本页面不会调用 API。
READ-ONLY AGENT

“最近发生了什么?”

模拟 list_alerts 的倒序参数,只查询本页虚构事件;输出不是实际 MCP 响应 Schema。

参数:{"order":"desc","limit":10}
等待查询演示数据。
INSTALLATION

本地测试与生产部署

01 / LOCAL DOCKER

运行真实的本地后台

需要 Docker Compose、OpenSSL 和 curl。临时凭据由脚本生成;在空后台配置渠道、路由和客户端。

git clone https://github.com/xiongwei-git/alertbridge.git
cd alertbridge
./scripts/local-demo.sh up

打开 http://127.0.0.1:18081/admin/
本地 HTTP 环境仅供测试,不要暴露到公网。

READ-ONLY MCP

MCP 与 Dots 接入

/mcp 默认关闭。Dots 使用 OAuth + PKCE,支持自定义请求头的客户端也可使用独立固定 Bearer。所有查询受服务端路由范围限制。

Dots 配置示例 ↗
THREE TOOLS. READ ONLY.
list_alerts
最近告警、按来源筛选、游标分页
get_alert
事件详情、投递状态与尝试记录
list_active_incidents
当前尚未恢复的故障

不确认或关闭故障,不执行系统命令,不自动唤醒 Agent。账号可用性与连接界面以实际环境为准。

v0.5.0 / ADMINISTRATOR LOGIN

可选管理员 OIDC

身份提供方验证,本地会话

当前以 Tinyauth 验证。使用 Authorization Code、PKCE S256、state、nonce 和 RS256 ID Token;只允许服务器配置的 issuer + subject 成为管理员。用户名和邮箱不授予权限。

身份提供方 Token 不持久化。登录页等待点击,退出只清除本应用会话;可通过配置保留备用密码入口。

与 MCP OAuth 分开配置

管理员 OIDC 是 AlertBridge 向身份提供方登录;MCP OAuth 是 AlertBridge 向 Dots 签发只读令牌。两者的 Client、回调地址和凭据不能互换。

部署需加载 compose.oidc.yaml,并挂载受限 JSON Secret。日常重建、备份和回滚都需保留 overlay 与配置文件。此静态 Demo 不提供真实登录。

OIDC 配置与回滚 ↗
SCOPE

适用范围与限制

单节点运维

适用于个人基础设施和小团队:统一脚本通知、跟踪故障发生与恢复、查询渠道投递结果。运行时为一个 HTTP 进程、一个 SQLite 连接和一个投递 Worker。

未实现能力

监控采集、多实例高可用、值班排班、告警聚合、超时升级、告警确认和自动修复,当前不在项目能力范围内。

文档与贡献

提交问题时提供版本、复现步骤和脱敏日志。公共 API 变更需同步接口文档;架构与安全边界变更需说明取舍。

参与贡献 ↗ 安全政策 ↗ 版本记录 ↗