Skip to content

magiccode1412/magicpush

Repository files navigation

测试logo

魔法推送

官方网站 | 开发文档 | 项目地址 | 更新日志

一个支持多种消息渠道的推送服务管理平台,用户可以通过标准化的REST API接口将消息推送到多种通知渠道。

MIT License Latest Version Docker Pulls Docker Image Size

⚠️临时重要提醒⚠️

6月14日更新到v1.12.0后遇到接口管理页面打开失败的问题,已修复,重新拉去镜像即可

交流&打赏

点此加入QQ群
qq-group
点此加入QQ频道
qq-channel
支付宝
qq-channel
微信
qq-channel

🌐 Demo站

自行注册即可(邮箱可随便填,不需要验证)

由于zeabur和clawcloud run不再提供免费资源,所以demo站转到railway和huggingface

演示环境仅作测试使用,请勿发送违规信息

切勿使用真实个人信息,数据会定期重置,请勿存储重要信息。

演示环境部署在railway和huggingface,如果遇到无法访问,可能是在冷启动中

预览

点击查看预览图
preview preview preview preview preview

困境

市面上有很多消息推送服务,但是各个各的局限,例如:

  • Telegram ➡️ 最优秀的消息推送服务,但是需要魔法
  • 企业微信/钉钉/飞书 ➡️ 消息仅限于企业内部
  • 微信服务号 ➡️ 模板消息限制太多
  • 微信龙虾机器人 ➡️ 支持直接推送到个人微信,但有10条/24小时限制

也有一些开发者,开始转向App推送,更甚者,开始支持手机系统底层推送,例如:

  • pushplus: 支持多渠道推送,包括微信服务号/App/webhook
  • wxpusher: 支持多种手机的系统级推送,不需要App运行

其实市面上的推送服务基本都覆盖到了(除了万恶之首的微信),但是我们必须考虑如果作为中转的第三方推送服务宕机了,或者说不玩了,会有什么后端,得更新所有的调用代码/令牌

通过以下几张图,就会明白,自己拥有一个推送服务,是多么的有用:

  • 一对一的消息推送方式

一对一消息推送方式

  • 多对一推送服务

多对一推送服务

  • 使用自己的推送服务

使用自己的推送服务

✨ 功能特性

消息渠道支持

分类 渠道
微信生态 微信龙虾机器人、元宝 Bot、企业微信机器人、企业微信应用、微信公众号、Server酱、息知
即时通讯 Telegram Bot、飞书机器人、钉钉机器人、QQ机器人
App推送 PushPlus、WxPusher、Bark、Meow、PushMe、ntfy、PushDeer、iGot
通用协议 Webhook、SMTP邮件、Gotify
其他 群晖 Chat、ShowDoc、小爱音箱

📖 各渠道详细配置说明及频率限制请查看:推送渠道配置文档

核心功能

  • 多渠道消息同时推送
  • 标准化REST API
  • 双令牌JWT认证机制 (access/refresh token)
  • 用户注册/登录
  • 渠道绑定与配置管理
  • 推送接口管理(多接口/多令牌)
  • 推送消息关键词过滤(支持黑名单/白名单模式,按接口独立配置)
  • 消息免打扰(DND)(支持按接口配置多个免打扰时段,全局开关控制)
  • 推送历史记录与状态追踪(含接口名称标识)
  • 响应式Web管理界面
  • 深浅色主题切换

安全防护

  • 三层限流防护
    • Nginx 层:IP 级请求频率限制 + 并发连接控制(兜底保护)
    • Express 全局:按 IP 限制每分钟总请求数
    • Express 接口级:针对登录、注册、推送、入站等接口独立限流
  • 全局限流开关:管理员可在前端「安全设置」页面一键启用/禁用所有限流规则(默认开启)
  • 动态限流配置:管理员可在前端「安全设置」页面实时调整所有限流额度,修改立即生效,无需重启服务
  • 推送接口双重限流:同时按来源 IP 和推送 Token 限流,防止 Token 泄露后被滥用
  • 限流触发时自动记录日志,方便排查异常请求

注意: 预构建的 Docker 镜像(magiccode1412/magicpush:latest)为 All-in-One 模式(Express 直接提供静态文件),不包含 Nginx,因此仅具备 Express 层的两层限流。如需启用 Nginx 层的兜底限流,请使用 docker-compose up -d 自行构建前后端分离镜像。

🛠️ 技术栈

后端

  • Node.js 18+
  • Express.js 4.x
  • SQLite3 (better-sqlite3)
  • JWT (jsonwebtoken)
  • bcryptjs (密码加密)
  • express-rate-limit (API 限流)

前端

  • Vue 3 (Composition API)
  • Vite 5.x
  • Tailwind CSS 3.x
  • Element Plus
  • Pinia (状态管理)
  • Vue Router 4.x

💖 感谢墙


Lando

tt-haogege

HuFakai

📄 许可证

MIT License

About

一个支持多种消息渠道的推送服务管理平台,用户可以通过标准化的REST API接口将消息推送到多种通知渠道。

Resources

License

Contributing

Stars

116 stars

Watchers

2 watching

Forks

Releases

No releases published

Packages

 
 
 

Languages