自建消息推送服务

自建消息推送服务

爱游一直使用的企业微信应用号做推送服务,也是自建的,当时因为某些场景需要用到,就使用php做了中转。 前段时间才发现这个推送服务,比我自己写的高大上太多太多了。 Message-Pusher 是一款多功能消息推送服务,支持多种推送方式,包括邮件、微信、QQ、企业微信...

爱游一直使用的企业微信应用号做推送服务,也是自建的,当时因为某些场景需要用到,就使用php做了中转。
前段时间才发现这个推送服务,比我自己写的高大上太多太多了。
Message-Pusher 是一款多功能消息推送服务,支持多种推送方式,包括邮件、微信、QQ、企业微信、飞书、钉钉、Bark App、WebSocket、Telegram、Discord 和腾讯云自定义告警。它支持自定义 Webhook、Markdown、异步消息发送、用户管理、Cloudflare Turnstile 用户校验、公告发布和 API 兼容性。可以通过 Docker 或手动部署,并提供详细的部署教程。
原版在接收到推送时排版有点乱,主要是换行的问题,爱游稍微修改了下。

爱游修改开源地址:https://github.com/vipxkw/message-pusher

以下以爱游打包的docker镜像。

//arm架构
docker run -d \
  --name message-pusher \
  -p 3000:3000 \
  -v /DATA/AppData/message-pusher:/data \
  -e tz=asia/shanghai \
  vipiu/message-pusher:arm0.4.14 \
//amd架构
docker run -d \
  --name message-pusher \
  -p 3000:3000 \
  -v /DATA/AppData/message-pusher:/data \
  -e tz=asia/shanghai \
  vipiu/message-pusher:amd0.4.14 \

原作者开源地址:https://github.com/songquanpeng/message-pusher

用途:

整合进自己的博客系统,每当有人登录时发微信消息提醒。

在进行深度学习模型训练时,在每个 epoch 结束后将关键数据发送到微信以方便及时监控。

在各种脚本运行结束后发消息提醒,例如监控 GitHub Star 数量的脚本,又例如自动健康填报的脚本,用来通知运行结果。

为其他系统提供消息推送功能。

推送方式:
  1. 多种消息推送方式:邮件消息,
    微信测试号,
    QQ,
    企业微信应用号,
    企业微信群机器人
    飞书自建应用
    飞书群机器人,
    钉钉群机器人,
    Bark App,
    WebSocket 客户端(官方客户端,接入文档),
    Telegram 机器人,
    Discord 群机器人,
    腾讯云自定义告警:免费的短信提醒,
    群组消息:可以将多个推送通道组合成一个群组,然后向群组发送消息,可以实现一次性推送到多个渠道的功能,
    自定义消息:可以自定义消息请求 URL 和请求体格式,实现与其他服务的对接,支持众多第三方服务
  2. 支持自定义 Webhook,反向适配各种调用平台,你可以接入各种已有的系统,而无需修改其代码。
  3. 支持在 Web 端编辑 & 管理发送的消息,新消息发送后 Web 端即时刷新。
  4. 支持异步消息发送。
  5. 支持用户管理,支持多种用户登录注册方式:邮箱登录注册以及通过邮箱进行密码重置。
  6. GitHub 开放授权。
  7. 微信公众号授权(需要额外部署 WeChat Server)。
  8. 支持 Markdown。
  9. 支持 Cloudflare Turnstile 用户校验。
  10. 支持在线发布公告,设置关于界面以及页脚。
  11. API 兼容其他消息推送服务,例如 Server 酱。

配置

系统本身仅需要下载一个可执行文件即可开始使用,无其他依赖。
你可以通过设置环境变量或者命令行参数进行配置。
等到系统启动后,使用 root 用户登录系统并做进一步的配置,默认密码为 123456。
用法

消息推送 API URL:https://<domain>/push/<username>将上面的 <domain> 以及 <username> 替换为真实值,例如:https://push.mydomain.cn/push/admin
GET 请求方式:https://<domain>/push/<username>?title=<标题>&description=<描述>&content=<Markdown 文本>&channel=<推送方式>&token=<推送 token>title:选填,受限于具体的消息推送方式,其可能被忽略。
description:必填,可以替换为 desp。
content:选填,受限于具体的消息推送方式,Markdown 语法的支持有所区别。
channel:选填,如果不填则系统使用你在后台设置的默认推送通道。注意,此处填的是消息通道的名称,而非类型。可选的推送通道类型有:email:通过发送邮件的方式进行推送(使用 title 或 description 字段设置邮件主题,使用 content 字段设置正文,支持完整的 Markdown 语法)。
test:通过微信测试号进行推送(使用 description 字段设置模板消息内容,不支持 Markdown)。
corp_app:通过企业微信应用号进行推送(仅当使用企业微信 APP 时,如果设置了 content 字段,title 和 description 字段会被忽略;使用微信中的企业微信插件时正常)。
lark_app:通过飞书自建应用进行推送。
corp:通过企业微信群机器人推送(设置 content 字段则将渲染 Markdown 消息,支持 Markdown 的子集;设置 description 字段则为普通文本消息)。
lark:通过飞书群机器人进行推送(注意事项同上)。
ding:通过钉钉群机器人进行推送(注意事项同上)。
bark:通过 Bark 进行推送(支持 title 和 description 字段)。
client:通过 WebSocket 客户端进行推送(支持 title 和 description 字段)。
telegram:通过 Telegram 机器人进行推送(description 或 content 字段二选一,支持 Markdown 的子集)。
discord:通过 Discord 群机器人进行推送(注意事项同上)。
one_api:通过 OneAPI 协议推送消息到 QQ。
group:通过预先配置的消息推送通道群组进行推送。
custom:通过预先配置好的自定义推送通道进行推送。
tencent_alarm:通过腾讯云监控告警进行推送,仅支持 description 字段。
none:仅保存到数据库,不做推送。
token:如果你在后台设置了推送 token,则此项必填。另外可以通过设置 HTTP Authorization 头部设置此项。注意令牌有两种,一种是全局鉴权令牌,一种是通道维度的令牌,前者可以鉴权任何通道,后者只能鉴权指定通道。
url:选填,如果不填则系统自动为消息生成 URL,其内容为消息详情。
to:选填,推送给指定用户,如果不填则默认推送给自己,受限于具体的消息推送方式,有些推送方式不支持此项。@all:推送给所有用户。
user1|user2|user3:推送给多个用户,用户之间使用 | 分隔。
async:选填,如果设置为 true 则消息推送将在后台异步进行,返回结果包含 uuid 字段,可用于后续[获取消息发送状态](./docs/API.md#通过消息 UUID 获取消息发送状态)。
render_mode:选填,如果设置为 code,则消息体会被自动嵌套在代码块中进行渲染;
如果设置为 raw,则不进行 Markdown 解析;
默认 markdown,即进行 Markdown 解析。
POST 请求方式:字段与上面 GET 请求方式保持一致。如果发送的是 JSON,HTTP Header Content-Type 请务必设置为 application/json,否则一律按 Form 处理。
POST 请求方式下的 token 字段也可以通过 URL 查询参数进行设置。

版权申明:
版权声明

①:本站文章均为原创,除非另有说明,否则本站内容依据CC BY-NC-SA 4.0许可证进行授权,转载请附上出处链接,谢谢。
②:本站提供的所有资源均为网上搜集,不保证能100%完整,如有涉及或侵害到您的版权请立即通知我们。
③:本站所有下载文件,仅用作学习研究使用,请下载后24小时内删除,支持正版,勿用作商业用途。
④:本站保证所提供资源的完整性,但不含授权许可、帮助文档、XML文件、PSD、后续升级等。
⑤:使用该资源需要用户有一定代码基础知识!由本站提供的资源对您的网站或计算机造成严重后果的本站概不负责。
⑥:本站资源售价只是赞助,收取费用仅维持本站的日常运营所需。
⑦:如果喜欢本站资源,欢迎捐助本站开通会员享受优惠折扣,谢谢支持!
⑧:如果网盘地址失效,请在相应资源页面下留言,我们会尽快修复下载地址。

0

评论0

请先

会员低至49元,开通享海量VIP资源免费下载 自助开通
显示验证码
没有账号?注册  忘记密码?