本文最后更新于 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 设置方式而无法接入一些推送渠道的问题
🔻效果如下 image.png image.png image.png

系统部署

一、环境变量

🔻该项目所有系统参数均通过环境变量控制,只需要找到想要使用的通知工具,把对应的代码复制到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路径,点击下一步即可 image.png

五、威联通部署compose

打开container station,创建应用程序,复制代码验证后部署即可 image.png

六、无头服务器部署地址

Heimdallr Deploy Guide (zeabur.com)

系统使用

一、在群晖7.2侧使用通用webhook

🔻来到控制面板通知设置,选择webhook image.png 🔻选择新建一个webhooks,供应商自定义,规则根据自己要求选择。 image.png 🔻如果是通用型webhook,可以配置URL为http://ip:port/push/form image.png 🔻HTTP请求这里,选择POST,表头选form,主体里key为之前设置的token,title为标题,body固定为@@TEXT@@。

二、在群晖7.2以下使用通用webhook

🔻🔻来到控制面板通知设置,选择短信,点击新增短信服务提供商。名称随意,网址url填写https://ip:port/key?phone=123&title=hi&body=hello+world image.png 🔻点击下一步,在编辑HTTP请求标题页面留空,点下一步即可。 image.png 🔻按图设置短信信息 image.png 🔻回到控制面板,选择刚才添加的短信服务提供商,发件人随便填,作为通知title,主要电话号码也是随便填即可。 image.png

三、威联通使用方法

🔻进入通知中心-服务帐户和设备配对-短信,点击添加 SMSC 服务,填入URLhttps://ip:port/key?phone=@@PhoneNumber@@&title=Notification+From+QNAP&body=@@Text@@ image.png 🔻点击小飞机(发送测试消息),收到通知即为配置成功。再来到系统通知规则,进入警报通知,选择创建规则,下一步,在收件人处选择短信方式,选择刚才添加的服务,手机号码随意填写即可。 image.png

四、使用rsspush的webhook

🔻主要参数如下,URL填写http://ip:port/webhook/rsspush/{key},该方法不适用bark,其它通知可以用。 image.png

五、其它接口模式

🔻官方API接口文档地址:https://heimdallr.zeabur.app/docs#/ image.png image.png