universal-notify

📢 一站式多渠道智能通知中心

开源社区维护的跨平台通知中枢,支持6大主流渠道一键触达,让系统监控与自动化告警部署零门槛。

收藏
3.8k
安装
1.1k
版本
v1.0.0
CLS 安全性认证2026-05-01
点击查看完整报告 >

使用说明

Universal Notify 是一个轻量级的多渠道通知聚合工具,专为开发者和运维人员设计,通过统一的命令行接口将告警信息推送至 ntfy.sh、Gotify、Telegram、Pushover 等多种终端。

核心用法极为简洁,用户只需调用 scripts/notify.sh 脚本并指定 --channel 参数即可选择发送渠道。工具支持 ntfy.sh(免注册免认证)、Gotify(自托管)、Telegram Bot、Pushover、通用 Webhook 以及 SMTP 邮件等六种主流方式,所有渠道均统一支持 --priority 优先级设置(低/普通/高/紧急),便于根据事件严重程度差异化触达。对于快速启动场景,ntfy.sh 渠道无需任何 API 密钥即可使用,极大降低了初期部署门槛。

该技能的显著优点在于其统一的接口抽象和极简的依赖设计。用户无需记忆不同平台的 API 差异,一套语法即可覆盖多种通知场景。脚本仅依赖系统标准的 curl 工具,无额外的运行时或库依赖,兼容绝大多数 Linux/macOS 环境。优先级分级机制让关键告警能够突破勿扰模式,而开放源码的结构允许用户根据内部需求快速定制扩展。

然而,该方案也存在一定局限性。首先,当前版本缺乏配置文件支持,所有敏感凭证(如 Bot Token、SMTP 密码)需通过命令行参数传入,存在被 shell 历史记录或进程列表泄露的风险。其次,作为 T3 级个人开发者项目,代码的长期维护和安全性更新依赖单一维护者,企业级应用需谨慎评估。此外,工具对输入参数的基础验证较为简单,对 URL 格式或消息长度的边界检查有待加强。

Universal Notify 最适合 DevOps 工程师、系统管理员以及构建 CI/CD 流水线的开发者,特别是在需要快速搭建监控告警体系、部署状态通知或定时任务结果反馈的场景。对于已使用 Prometheus、Grafana 等监控系统但缺乏便捷告警通道的用户,该工具可作为轻量级补充方案。

使用风险主要集中在凭证管理和网络传输层面。用户需自行确保 Telegram Bot Token、Pushover Key 等敏感信息的安全存储,避免硬编码在脚本中。使用 Webhook 渠道时,务必验证目标地址的可信性,防止信息被劫持或转发至恶意服务器。值得注意的是,ntfy.sh 的 Topic 默认为公开频道,不应传输敏感业务数据。建议在生产环境中配合环境变量或密钥管理工具使用,并定期审查通知日志。

安全解读

核心用法

universal-notify 是一款统一的多通道通知脚本工具,通过单一 CLI 接口覆盖 6 种主流通知渠道:

  • ntfy.sh:免注册、零配置的公共推送服务
  • Gotify:自托管推送服务器,适合内网环境
  • Telegram Bot:即时通讯平台,支持群组/频道
  • Pushover:专业推送服务,支持优先级和声音
  • SMTP 邮件:传统邮件告警,兼容企业邮箱
  • Generic Webhook:任意 HTTPS 端点,灵活集成

所有渠道共享统一的参数接口:--message(消息内容)、--title(可选标题)、--priority(low/normal/high/urgent 四级优先级)。仅需系统预装的 curl,无需额外依赖。

显著优点

1. 极简部署:单脚本架构,189 行代码,复制即用
2. 零成本入门:ntfy.sh 渠道无需任何 API Key 或注册

3. 渠道冗余:同一告警可配置多通道备份,避免单点失效

4. 自托管友好:Gotify 和 Webhook 支持完全离线的私有部署

5. 运维集成友好:标准退出码和 STDOUT/STDERR 输出,适配 CI/CD 和监控脚本

潜在局限与风险

  • 凭证暴露风险:Token/Key 通过命令行参数传递,可能被 ps 或 shell history 捕获(RISK-002)
  • 输入验证薄弱:消息内容缺乏长度限制和特殊字符过滤(RISK-003)
  • 网络外发不可控:Webhook 渠道接受任意 URL,存在信息泄露至恶意端点的可能(RISK-001)
  • 无内置重试:网络瞬时故障可能导致通知丢失
  • 隐私合规待完善:缺乏敏感信息掩码和审计日志功能

适合人群

  • DevOps/运维工程师:服务器监控告警、CI/CD 部署通知
  • 开发者:脚本化异常报告、定时任务状态推送
  • 极客用户:个人自动化工作流(RSS 更新、价格监控等)
  • 中小团队:快速搭建无成本的通知基础设施

安全建议

  • 优先使用环境变量传递凭证(如 TELEGRAM_BOT_TOKEN),避免命令行泄露
  • 对 Webhook URL 实施白名单管控,限制可访问的域名范围
  • 敏感环境启用 --no-history 模式或配置 HISTCONTROL=ignorespace
  • 生产场景建议配合日志审计,定期审查通知目标端点

universal-notify 内容

scripts文件夹
手动下载zip · 2.9 kB
notify.shtext/x-shellscript
请选择文件