A unified multi-channel notification hub that delivers messages to Discord, Slack, LINE, and Email through a single REST API.
Send notifications to Discord Webhooks, Slack Webhooks, LINE broadcasts, and Email SMTP through one set of REST endpoints. Configure channel credentials once and push messages across all platforms with a consistent interface.
Built-in event processing for Discord and LINE bots with unified command parsing and reply logic. The chatbot and notification services share the same backend, reducing operational and deployment complexity.
Add or remove webhook channels at runtime via API calls. Channel configurations persist to JSON files and are protected by read-write locks, allowing notification targets to change without service restarts.
graph TB
Client[REST API Client]
Client --> Discord[Discord Webhook]
Client --> Slack[Slack Webhook]
Client --> LINE[LINE Bot]
Client --> Email[Email SMTP]
Discord --> DM[Dynamic Channel Mgmt<br/>JSON + RWMutex]
Slack --> SM[Dynamic Channel Mgmt<br/>JSON + RWMutex]
LINE --> BotEngine[Bot Interaction Engine]
DiscordBot[Discord Bot] --> BotEngine
BotEngine --> Handler[Unified Command Handler]
go-notify-hub/
├── cmd/
│ └── api/
│ └── main.go # Entry point and route setup
├── internal/
│ ├── bot/
│ │ ├── dicord/ # Discord bot event handlers
│ │ ├── line/ # LINE bot webhook handlers
│ │ └── handler/ # Shared command parsing & reply
│ ├── channel/
│ │ ├── discord/ # Discord webhook delivery
│ │ └── slack/ # Slack webhook delivery
│ ├── database/ # SQLite data access
│ ├── email/ # SMTP single & bulk sending
│ └── utils/ # Shared utilities & validation
├── sql/ # Database schema
├── json/ # Channel config files
├── docker-compose.yml
└── go.mod
This project is licensed under the MIT LICENSE.
©️ 2026 邱敬幃 Pardn Chiu