An open API service indexing awesome lists of open source software.

https://github.com/pardnchiu/go-notify-hub

Unified notification gateway for Slack, Discord, LINE, and Email
https://github.com/pardnchiu/go-notify-hub

backend discord email go golang lineoffical pardnchiu slack

Last synced: 23 days ago
JSON representation

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

Awesome Lists containing this project

README

          

> [!NOTE]
> This README was generated by [SKILL](https://github.com/pardnchiu/skill-readme-generate), get the ZH version from [here](./README.zh.md).

# go-notify-hub

[![pkg](https://pkg.go.dev/badge/github.com/pardnchiu/go-notify-hub.svg)](https://pkg.go.dev/github.com/pardnchiu/go-notify-hub)
[![card](https://goreportcard.com/badge/github.com/pardnchiu/go-notify-hub)](https://goreportcard.com/report/github.com/pardnchiu/go-notify-hub)
[![license](https://img.shields.io/github/license/pardnchiu/go-notify-hub)](LICENSE)
[![version](https://img.shields.io/github/v/tag/pardnchiu/go-notify-hub?label=release)](https://github.com/pardnchiu/go-notify-hub/releases)

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

## Table of Contents

- [Features](#features)
- [Architecture](#architecture)
- [File Structure](#file-structure)
- [License](#license)
- [Author](#author)
- [Stars](#stars)

## Features

> [Documentation](./doc.md)

### 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

```mermaid
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
JSON + RWMutex]
Slack --> SM[Dynamic Channel Mgmt
JSON + RWMutex]

LINE --> BotEngine[Bot Interaction Engine]
DiscordBot[Discord Bot] --> BotEngine
BotEngine --> Handler[Unified Command Handler]
```

## 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](LICENSE).

## Author

邱敬幃 Pardn Chiu





## Stars

[![Star](https://api.star-history.com/svg?repos=pardnchiu/go-notify-hub&type=Date)](https://www.star-history.com/#pardnchiu/go-notify-hub&Date)

***

©️ 2026 [邱敬幃 Pardn Chiu](https://linkedin.com/in/pardnchiu)