MsgBox 是一个轻量级、可扩展的消息中心,用于统一处理系统中的通知、消息分发与事件推送。它提供灵活的消息路由机制、可插拔的发送渠道、以及清晰的接口设计,帮助开发者快速构建稳定、高可维护的消息体系。
MsgBox 旨在解决分布式系统中的消息通知管理难题,通过统一的 API 接口和灵活的配置,支持多种消息发送渠道(如钉钉、微信、邮件等),实现消息的高效分发、追踪和管理。
git clone https://github.com/chihqiang/msgbox-go.git
cd msgbox-go
修改配置文件services/agent/api/etc/agent-api.yaml和services/gateway/api/etc/gateway-api.yaml,设置数据库连接信息:
DB:
DBType: mysql
Username: root
Password: "123456"
Host: 127.0.0.1
Port: 3306
Database: msgbox
如果需要快速搭建开发环境,可以使用 Docker Compose 启动基础服务(如数据库等):
cd deploy/docker
docker-compose -f docker-compose-env.yml up -d
在启动基础环境后,需要单独启动应用程序组件。以下提供两种运行方式(选择其一即可):
方式一:直接运行(开发环境推荐)
# 启动 Agent 服务
cd services/agent/api
go run agent.go -f etc/agent-api.yaml
# 启动 Gateway 服务(在另一个终端)
cd services/gateway/api
go run gateway.go -f etc/gateway-api.yaml
方式二:构建后运行(生产环境推荐)
# 构建并启动 Agent 服务
cd services/agent/api
go build -ldflags="-s -w" -tags no_k8s -o agent-api agent.go
./agent-api -f etc/agent-api.yaml
# 构建并启动 Gateway 服务(在另一个终端)
cd services/gateway/api
go build -ldflags="-s -w" -tags no_k8s -o gateway-api gateway.go
./gateway-api -f etc/gateway-api.yaml
启动前端(在另一个终端)
cd web/agent
pnpm install
pnpm run dev
├── deploy/ # 部署相关文件 │ ├── docker/ # Docker 配置 │ └── goctl/ # 代码生成模板 ├── pkg/ # 通用工具包 │ ├── clientx/ # HTTP 客户端 │ ├── cryptox/ # 加密工具 │ ├── htmlx/ # HTML 表单处理 │ ├── stringx/ # 字符串工具 │ ├── timex/ # 时间工具 │ └── workflow/ # 工作流处理 ├── services/ # 服务层 │ ├── agent/ # 代理服务 │ ├── common/ # 公共组件 │ └── gateway/ # 网关服务 └── web/ # 前端代码 └── agent/ # 管理界面
创建新的消息通道:
services/common/channels/senders 目录下创建新的发送器实现senders.ISender 接口添加新的 API:
安装依赖:
cd web/agent
pnpm install
开发模式:
pnpm run dev
构建生产版本:
pnpm run build
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)如有问题或建议,欢迎提交 Issue 或联系项目维护者。