Skip to content

pardnchiu/go-notify-hub

Repository files navigation

Note

This README was generated by SKILL, get the ZH version from here.

go-notify-hub

pkg card license version

A unified multi-channel notification hub that delivers messages to Discord, Slack, LINE, and Email through a single REST API.

Table of Contents

Features

Documentation

Unified Multi-Channel Delivery

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.

Bot Interaction Engine

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.

Dynamic Channel Management

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.

Architecture

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]
Loading

File Structure

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

License

This project is licensed under the MIT LICENSE.

Author

邱敬幃 Pardn Chiu

Stars

Star


©️ 2026 邱敬幃 Pardn Chiu

About

Unified notification gateway for Slack, Discord, LINE, and Email

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages