Heimdallr——轻量级聚合消息通知平台
本文最后更新于 2024-06-28,文章内容可能已经过时。
前言
大家好,这里是可爱的Cherry。 Cherry曾经给大家介绍过一些常用的webhook和通知工具,用来接收NAS、Docker容器中的一些消息,然而在企业、团队场景中,单一的消息通知往往显得不够专业,如果能将消息一一对应的通知到具体的负责人上,那该有多好呀,于是,消息聚合通知平台应运而生。 今天,Cherry给大家带来一款非常非常轻量级的消息聚合通知平台——heimdallr 该项目支持bark、企微、企微webhook、pushdeer、Chanify、Pushover、Email、Discord(webhook)、TGbot、ntfy、Lark、钉钉bot、Apprise等常用的通知平台。最最重要的是,支持无头服务器部署,0成本运作。 项目地址:https://github.com/LeslieLeung/heimdallr 项目特性一个非常轻量的通知网关,可以聚合各种推送渠道,使用 Serverless 部署,几乎零成本运行。
等同于免费、开源、可自建的 新版Server酱,没有任何限制,痛快推送
支持各种常见的推送渠道,如Bark、企业微信等
支持 Apprise,从此再也不缺通知渠道(完全列表见链接)
完全兼容 Bark 的路由,任意支持 Bark 的地方,都可以使用 Heimdallr 同时发送到更多渠道
支持多通知渠道和分组配置
支持 Serverless 部署,几乎零成本运行
解决因为群晖DSM奇怪的 webhook 设置方式而无法接入一些推送渠道的问题
🔻效果如下
系统部署
一、环境变量
🔻该项目所有系统参数均通过环境变量
控制,只需要找到想要使用的通知工具,把对应的代码复制到compose文件中即可,具体参数如下:
#分组配置,后面自定义组名,但是要保证剩余参数使用该命名开头。
ENABLED_GROUPS=group_1,group_2
# Define groups
# group_1
group_1_ENABLED_CHANNELS=channel_1,channel_2,channel_3,channel_4,channel_5,channel_6,channel_7,channel_8,channel_9
group_1_TOKEN=
# group_2
group_2_ENABLED_CHANNELS=channel_1,channel_3
group_2_TOKEN=
# Define channels
# channel_1(bark)
channel_1_TYPE=bark
channel_1_BARK_URL=
channel_1_BARK_KEY=
# channel_2(wecom_webhook)
channel_2_TYPE=wecom_webhook
channel_2_WECOM_WEBHOOK_KEY=
# channel_3(wecom_app)
channel_3_TYPE=wecom_app
channel_3_WECOM_CORP_ID=
channel_3_WECOM_AGENT_ID=
channel_3_WECOM_SECRET=
# channel_4(pushover)
channel_4_TYPE=pushover
channel_4_PUSHOVER_TOKEN=
channel_4_PUSHOVER_USER=
# channel_5(pushdeer)
channel_5_TYPE=pushdeer
channel_5_PUSHDEER_TOKEN=
# channel_6(chanify)
channel_6_TYPE=chanify
channel_6_CHANIFY_TOKEN=
# channel_7(SMTP)
channel_7_TYPE=email
channel_7_EMAIL_HOST=
channel_7_EMAIL_PASSWORD=
channel_7_EMAIL_PORT=465
channel_7_EMAIL_STARTTLS=True
channel_7_EMAIL_TO=
channel_7_EMAIL_USER=
# channel_8(Discord Webhook)
channel_8_TYPE=discord_webhook
channel_8_DISCORD_WEBHOOK_ID=
channel_8_DISCORD_WEBHOOK_TOKEN=
# channel_9(Telegram)
channel_9_TYPE=telegram
channel_9_TELEGRAM_TOKEN=
channel_9_TELEGRAM_CHAT_ID=
# channel_10(ntfy)
channel_10_TYPE=ntfy
channel_10_NTFY_HOST=
channel_10_NTFY_TOPIC=
# channel_11(lark)
channel_11_TYPE=lark_webhook
channel_11_LARK_TOKEN=
# channel_12(dingtalk)
channel_12_TYPE=dingtalk_webhook
channel_12_DINGTALK_TOKEN=
channel_12_DINGTALK_SAFE_WORDS=
# channel_13(apprise)
channel_13_TYPE=apprise
channel_13_APPRISE_URLS=
二、docker-compose.yaml代码
🔻新建一个文件夹,可以用项目为名字。在文件夹下新建一个docker-compose.yaml文件,将下面代码复制进去。services:
heimdallr:
container_name: heimdallr
ports:
- 9000:9000
environment:
#- DEBUG=True #(可选)自定义是否开启debug详情
#- PORT=9000 #(可选)默认端口号,如果改了上面对应的右侧也要改
#- WORKERS=1 #(可选)默认线程数,无头部署建议1,NAS上可以多一些
# 分组启用参数,表示启动分组group_1
- ENABLED_GROUPS=group_1
# 频道启用参数,表示启用分组group_1下的频道channel_1和channel_2
- group_1_ENABLED_CHANNELS=channel_1,channel_2
# webhook使用的token,可自定义
- group_1_TOKEN=a12345
# 频道channel_1的参数(bark)
- channel_1_TYPE=bark
- channel_1_BARK_URL=
- channel_1_BARK_KEY=
# 频道channel_2的参数(wecom_webhook)
- channel_2_TYPE=wecom_webhook
- channel_2_WECOM_WEBHOOK_KEY=
image: leslieleung/heimdallr:latest
三、SSH部署
#来到文件夹
cd /volume1/docker/{item}
#启动容器
docker-compose up -d
四、群晖部署compose
打开container manager,选择项目,点击新建,选择penpot路径,点击下一步即可五、威联通部署compose
打开container station,创建应用程序,复制代码验证后部署即可六、无头服务器部署地址
Heimdallr Deploy Guide (zeabur.com)系统使用
一、在群晖7.2侧使用通用webhook
🔻来到控制面板
,通知设置
,选择webhook
🔻选择新建一个webhooks
,供应商自定义
,规则根据自己要求选择。
🔻如果是通用型webhook,可以配置URL为http://ip:port/push/form
🔻HTTP请求这里,选择POST,表头选form,主体里key为之前设置的token,title为标题,body固定为@@TEXT@@。
二、在群晖7.2以下使用通用webhook
🔻🔻来到控制面板
,通知设置
,选择短信
,点击新增短信服务提供商
。名称随意,网址url填写https://ip:port/key?phone=123&title=hi&body=hello+world
🔻点击下一步,在编辑HTTP请求标题
页面留空,点下一步即可。
🔻按图设置短信信息
🔻回到控制面板,选择刚才添加的短信服务提供商,发件人随便填,作为通知title,主要电话号码也是随便填即可。
三、威联通使用方法
🔻进入通知中心
-服务帐户和设备配对
-短信
,点击添加 SMSC 服务
,填入URLhttps://ip:port/key?phone=@@PhoneNumber@@&title=Notification+From+QNAP&body=@@Text@@
🔻点击小飞机(发送测试消息),收到通知即为配置成功。再来到系统通知规则
,进入警报通知
,选择创建规则,下一步,在收件人处选择短信
方式,选择刚才添加的服务,手机号码随意填写即可。
四、使用rsspush的webhook
🔻主要参数如下,URL填写http://ip:port/webhook/rsspush/{key}
,该方法不适用bark,其它通知可以用。
五、其它接口模式
🔻官方API接口文档地址:https://heimdallr.zeabur.app/docs#/ 评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果