为什么需要
出海做产品的独立开发者跑多个 SaaS 项目,每个都有告警、部署状态、备份结果要监控。N8N / ntfy.sh 能聚合通知但部署重,短信 / 邮件推送对个人开发者又贵又慢。Boop 是一个单 Go 二进制的自托管通知收件箱,APNs 直推 iOS 通知,零成本,适合一人公司。
最实用的能力是「per-project API Key 隔离」—— 多个 SaaS 项目各自一个 Key 推送,事件按项目分组查看,iOS app 上独立归类。海外 iOS 推送基础设施(APNs)延迟低、送达率高,比邮件或 Telegram bot 更适合做生产告警通道。
怎么用
Docker 一行启动:
bash
git clone https://github.com/chrisgreg/boop && cd boop
cp .env.example .env
mkdir -p data && chown 1000:1000 data
docker compose up -d --build
打开 http://localhost:8080,首次进入 setup wizard:服务器检查、APNs 配置、扫描 iOS app 配对码、创建第一个项目、测试通知。APNs 凭据可选,没配就只在 web UI 看,配了就推送到 iPhone。
调用 API 推送事件:
bash
curl http://localhost:8080/api/v1/events \
-H "Authorization: Bearer boop_proj_..." \
-H "Content-Type: application/json" \
-d '{"title": "Deploy complete", "level": "success"}'
核心特性
- APNs 直推 — 用你的
.p8key 直接推 Apple Push Notification,没有第三方 relay,iOS 送达率最高 - per-project API Key — 每个项目独立 Key,多 SaaS 通知按项目分组隔离
- 单 Go 二进制 — 静态编译,零依赖,Linux / macOS / Windows 三个平台打包好
- SQLite 存储 — 单文件存储,备份就是
cp boop.db一条命令 - iOS app 开源 — SwiftUI 写的 iOS 26 app,自己 build 和 sign
- 零账号零遥测 — 没有托管服务、没有账号系统、没有 telemetry
- 数据本地 — 事件和设备凭据全在自有 SQLite,敏感告警不出服务器
- 嵌入 Web UI — Svelte 写的管理界面编译进二进制,浏览器管项目、看事件
使用案例
独立开发者运营 3 个出海 SaaS(分别是 SaaS A、SaaS B、SaaS C),每个都需要监控告警。部署 Boop 后:
- SaaS A 部署完成 → POST 事件 → iPhone 推送 "Deploy A complete"
- SaaS B 数据库备份失败 → POST 事件(level=error)→ iPhone 推送红色告警
- SaaS C Stripe webhook 出错 → POST 事件 → iPhone 推送
3 个项目的通知在 iOS app 上独立分组,重要告警靠 APNs 推送直达,普通状态在 web UI 查看。整个系统自托管,单 VPS 单进程,零外部依赖。
注意事项
- MIT 协议开源,可商用
- iOS app 需要自己 build 和 sign(不提供 App Store 安装)
- APNs 需要 Apple Developer 账号($99/年)才能推送 iOS 通知,但 web UI 永远可用
- SQLite 单文件存储,事件量大建议定期归档
- 与 ntfy.sh 对比:ntfy.sh 通用通知(多渠道),Boop 专注 iOS APNs + 多租户隔离
- 与 N8N 对比:N8N 是通用工作流自动化,Boop 是专用通知收件箱(更轻量)