前因
自从上次我的阿笨bot死了之后,原先的bot程序一直无法重新搭建在新的vps上(出现了各种bug,并且我也比较怕麻烦,所以就暂时🕊️了)
而刚好,前段时间加了一个群,发现了他们的入群人机验证bot比较有意思,用了cloudflare的turnstile,只需要轻轻一点,即可实现无脑进群,将广告机器人全部拦在外面。之前用过的什么古诗文选择,数学运算,科目一,手性碳全都弱爆了!
我一开始搭建用了vps,出现了各种问题(主要是开发者没有留下任何文档,我只能自己摸索,再加上我也摸不准开发者什么时候在线)于是,在开发者的建议下,我把前端挪到netlify。既然前端挪走了,为啥不把后端也挪走,不用我自己的vps,稳定性不是更佳嘛!于是我就顺道把后端丢到koyeb上面了
(不过貌似现在还有点bug,没有通过验证的人,bot并没有拒绝,我琢磨了一下代码,应该是要3分钟之后拒绝的)
搭建教程
项目地址:点击直达
前端
fork该项目,注册netlify,部署,并链接到你的github账号,如下图所示
一些部署设置需要你自己去设置里面更改,如下图所示
还有两个环境变量非常重要,
VITE_ENDPOINT=<后端域名,记得带上https>
VITE_SITEKEY=<cf turnstile 站点密钥>
如下图所示
cf turnstile点击添加站点,填入netlify的域名,点击创建,如下图所示
站点密钥需要填入到上面的前端环境变量中
这样,前端就完事儿了。
后端
后端我们选择koyeb,这玩意只支持一个站点,用来托管后端正合适
点击创建app,在Public GitHub repository中填入我们项目地址(https://github.com/tg-watchdog/tg-watchdog),点击continue之后,branch选择docker,填入下图所示内容
点开下面的Advance,还需要填入后端的环境变量以及监听的端口号(默认8000),请注意,此处的端口号和环境变量中的端口号必须保持一致。
TGWD_TOKEN=<tg机器人的token,@botfather 处获取>
TGWD_FRONTEND_DOMAIN=<前端域名,不需要https>
TGWD_SECRET=<随便填>
TGWD_PORT=8000
TGWD_CFTS_API_KEY=<cf turnstile 的密钥(站点密钥下面那个)>
如下图所示
点击最下面的apply,等待几分钟即可自动构筑完成
复制你的后端域名粘贴到前端的环境变量中即可
到这,tg-watchdog就已经搭建完成了,将你的bot添加到你的群组中,给予管理权限就可以正常使用了
补一个效果图
验证完成后bot会自动删除消息,就好像从来没有来过一样(