使用 cloudflare 免费搭建一个多渠道的消息通知服务
- 免费干货
- 2小时前
- 9热度
- 0评论
前言
今天给小伙伴分享一个可以免费部署到cloudflare worker上的多渠道的消息通知服务。这同样是一个开源项目moepush。一个基于 NextJS + Cloudflare 技术栈构建的可爱消息推送服务, 支持多种消息推送渠道。部署超简单,还配备了GitHub的工作流部署,通知渠道多。好了下面就开始部署教程。
项目特点
多渠道消息推送工具的六大核心优势,总结如下:
1. 多渠道支持:覆盖钉钉、企业微信、Telegram等主流消息平台,适配多样化推送需求。
2. 简单易用:接口调用便捷,提供多种消息模板,助力快速集成到业务系统。
3. 开源免费:基础功能完全免费,代码开源开放,欢迎社区贡献与协作。
4. 精美UI:采用shadcn/ui组件库,提供美观现代的界面设计,提升使用体验。
5. 快速部署:基于Cloudflare Pages实现免费、稳定的快速部署,降低运维门槛。
6. 接口组功能:支持创建接口组,实现一次性消息批量推送到多个渠道接口,提升效率。
项目预览
官方预览地址:https://moepush.app/
我自己部署了一个:https://push.hudi.cc.cd 可以直接使用GitHub登录或者是自己注册进去。

后台界面

通知渠道选择

接口调用

通知渠道
目前已经支持的渠道:钉钉群机器人、企业微信应用、企业微信群机器人、Telegram 机器人、飞书群机器人、Discord Webhook、Bark App、通用 Webhook
技术架构
这款项目基于 Next.js (App Router) 框架构建,采用 TypeScript 保障类型安全,依托 Cloudflare Pages 部署、Cloudflare D1 (SQLite) 存储数据,通过 NextAuth 实现 GitHub 登录认证,以 Tailwind CSS 搭配基于 Radix UI 的自定义组件实现样式与 UI,同时使用 Drizzle ORM 操作数据库。
项目部署
前置条件
1、GitHub账号、 Cloudflare账号
2、自己的域名或者是免费的二级域名
1、这使用工作流部署。首先fork MoePush项目的的源码到自己的GitHub。
2、在仓库的【Settings】->【Secrets and variables】->【Action】中去添加环境部署所需要的变量

环境变量如下
| 变量名 | 变量值 |
|---|---|
AUTH_GITHUB_SECRET |
GitHub OAuth App Secret |
AUTH_SECRET |
NextAuth Secret,用来加密 session,请设置一个随机字符串 |
CLOUDFLARE_ACCOUNT_ID |
Cloudflare 账户 ID |
CLOUDFLARE_API_TOKEN |
Cloudflare API 令牌 |
D1_DATABASE_NAME |
D1 数据库名称 |
PROJECT_NAME |
Cloudflare Pages 项目名(可选,默认 moemail) |
AUTH_GITHUB_ID |
GitHub OAuth App ID |
DISABLE_REGISTER |
是否禁止注册,默认关闭,设置为 true 则禁止注册 |
3、CLOUDFLARE_API_TOKEN获取方式是在CLOUDFLARE的控制面板点击【账户管理】->【账户API令牌】->【创建令牌】

API令牌模板中选择【编辑 Cloudflare Workers】模板,当然你也可以自定义

在Cloudflare Workers中添加一列D1数据库的权限,域名资源选择账户内所有的。

然后点击继续并显示API令牌信息。就能看到API Token信息了,把它填入到GitHub的【Secrets and variables】中的变量中就行了。
4、CLOUDFLARE_ACCOUNT_ID在【计算和AI】->【workers and pages】中可以看到账户详情

5、AUTH_GITHUB_ID、AUTH_GITHUB_SECRET、AUTH_SECRET 这三个变量是用于接入GitHub授权登录的。点击GitHub右上交的头像按钮,点击【Settings】->在最下边选择【Developer setting】,在【OAuth apps】点击新建认证应用按钮,找不到的点下面链接。
地址如下:https://github.com/settings/applications/new

需要填写的信息有,Application name、Homepage URL、Authorization callback URL这三项。
需要申请免费二级域名的朋友看文章末尾
| 填写项 | 值 |
|---|---|
Application name |
moepush(可以自定义) |
Homepage URL |
网站自定义域名,用于访问 MoePush例如我的https://push.hudi.cc.cd |
Authorization callback URL |
同Homepage URL一样就行。 |

创建完成后,就可以得到AUTH_GITHUB_ID了、点击【generate a new client secret】按钮就可以生成一个AUTH_GITHUB_SECRET的值了如下,至于AUTH_SECRET用来加密 session,请设置一个随机字符串,就行。

6、DATABASE_NAME在cloudflare的【存储和数据库】->【D1 SQL数据库】,点击右上角的【创建数据库实例】,

数据库的实例名称填写 moepush 或者是自定义,但是要和GitHub仓库中的变量值对应对应。

7、所有的步骤完成以后,在GitHub仓库中,找到【Actions】选项,找到部署按钮,然后跑一个部署的工作流,等待部署完毕。

8、部署工作流✅完成以后,回到cloudflare界面的【计算和AI】->【workers and pages】出现两个worker 一个pages项目,名字为之前在GitHub工作流中定义得moepush。如下

9、绑定自己的域名,以我在DNSHE上申请的hudi.cc.cd域名的域名为例,点击cloudflare界面的【计算和AI】->【workers and pages】中moepush服务进去。点击自定义域名按钮进去,添加域名就行了。
这里绑定的域名要和Homepage URL、Authorization callback URL 域名一致,不然无法使用GitHub授权登录。

绑定验证完成以后,就可以通过https://push.hudi.cc.cd/访问临时邮箱服务了。
总结
依靠cloudflare得免费服务。搭建一个多渠道的消息通知服务。真的是非常不错的。而且它界面简洁,美观。你也快去部署一个吧。好了今天得分享就到这里。
转自:https://mp.weixin.qq.com/s/1NrZ3NoGALIweRVVO-N8Qg