README | 简体中文
Alert Message Center is a modern, enterprise-grade alert routing and dispatching hub. It decouples complex alert sources (Prometheus, Grafana, custom scripts, etc.) from end recipients, ensuring precise alert delivery via Feishu (Lark) private messages and group chats.
Supports alert distribution through the Topic subscription model, and also provides a Personal Inbox feature for quick self-notifications without creating a topic.

Supports adding the bot to Feishu group chats and binding topics to these groups for group-wide broadcasting.

Real-time tracking of system alert load, dispatch success rates, and topic popularity.

- 🚀 Zero-Config Personal Inbox: Every user has a unique Webhook Token. Send directly to the
/dminterface to receive messages on Feishu with zero configuration. - 📢 Topic Subscription Model: Flexible "Publish-Subscribe" mechanism. Alerts sent to a Topic are automatically distributed to all subscribers.
- 👥 Group Chat Distribution: Alerts can be simultaneously dispatched to bound Feishu group chats, supporting automatic discovery and unbinding.
- 🛡️ Permissions & Auditing:
- Topic creation requires admin approval.
- Full
Alert Tasklogs for end-to-end traceability.
- 📊 Real-time Dashboard: Grafana-style monitoring interface for system health visualization.
- 🔌 WebSocket Mode: Supports Feishu Open Platform WebSocket for intranet deployments without public IP or domain.
- 📎 Attachment Support: Send files and images directly via dashboard or API.
- 🏗️ Git Pre-commit Hooks: Automated linting and formatting using Husky and Biome to ensure code quality.
- ⚡ High Performance: Built on Bun + Hono for millisecond-level dispatch latency.
- Runtime: Bun (High-performance TS runtime)
- Backend: Hono (Web Standards Based)
- Frontend: React + Vite + Tailwind CSS
- Database: PostgreSQL + Drizzle ORM
- Messaging: Feishu (Lark) Open Platform
- Login to the Feishu Open Platform and create an Enterprise Custom App.
- Enable Bot capability in "App Capabilities".
- Apply for
im:message:send_as_botpermission in "Permission Management". - Get your
App IDandApp Secret.
# Install dependencies
bun install
# Configure environment variables (apps/server/.env)
DATABASE_URL="postgresql://user:pass@localhost:5432/db"
FEISHU_APP_ID="cli_xxx"
FEISHU_APP_SECRET="xxx"
ADMIN_EMAILS="user1@example.com,user2@example.com"
# Database migration
cd apps/server && bun run db:migrate:deploy
# Start development
bun run devcp apps/server/.env.example .env
docker-compose up -dAutomatically builds and pushes Docker images to GitHub Container Registry (GHCR) on every push to main.
See CHANGELOG.md for version history.
- URL:
POST /api/webhook/:your_token/dm - Format: JSON or Multipart Form-Data
- URL:
POST /api/webhook/:your_token/topic/:topic_slug
Send Text (JSON):
curl -X POST -H "Content-Type: application/json" \
-d '{"content":{"text":"Hello World"}}' \
http://localhost:3000/api/webhook/YOUR_TOKEN/dmSend File (Multipart):
curl -X POST \
-F "content={\"text\":\"Check this file\"}" \
-F "file=@/path/to/report.pdf" \
http://localhost:3000/api/webhook/YOUR_TOKEN/dmSend Image:
curl -X POST \
-F "image=@/path/to/screenshot.png" \
http://localhost:3000/api/webhook/YOUR_TOKEN/dmapps/server: Core API serviceapps/web: Responsive management dashboard
Created with ❤️ by the Alert Message Center Team.