一、起因
很早很早我就在打算建一个 Q 群的 bot(用来对接网站,像 mycube 一样),但是也不知道什么框架,也上 B 站找了一些教程看的很迷。然后过了一段时间知道了有框架,搞了蛮久还是失败了。
直到前几天夏神拉了监控 MC 服务器的机器人,才激发我继续搞。
二、本地部署成功
这次主要是在啃那两个官方文档,以及问 AI,没咋看视频教程。很幸运,迷迷糊糊的在本地跑起来了,然后开始引入一些好玩的插件,顺手把 ONE 的查询写了一点,这个时候的机器人已经很好玩了。
本地运行的问题
然后不得不面临需要一直在自己的电脑上运行的问题,有时我去图书馆或者上课,都没法关机,魔友们都挺喜欢的,一直在拉我的 bot。中间还顺便搞了一下 Maimai Bot 的框架,偏真实聊天的,但是感觉实际使用体验不如 Astrbot,给群友带来一些趣味之后就没搞了。
三、云部署探索
3.1 初次尝试:雨云
中间开始考虑云部署,先是考虑的雨云那边的两个云应用部署,但是给的 IP 端口不一致,就是不在一个宿主机上,导致我 Astrbot 始终无法和 Napcat 连接。
3.2 选择 VPS
夏神向我推荐了国外的 VPS,刚好赶上黑五很便宜,确实挺便宜的,我就听劝买了个最低配的 VPS,挂个 bot 完全足够了。在幸运轮盘的优惠后花了 69 块多,一年,还是非常不错的。
虽然我对这些非常的陌生,基本没碰过 Linux 系统,但还是相信自己的摸索能力,毕竟有 AI 的帮助。
四、VPS 部署历程
4.1 第一天:失败的尝试
26 号下午买的,当天晚上搞了很久没有成功。
遇到的问题:
- 中间一直用宝塔的 Docker 来部署 Astrbot,一直缺失库
- 按文档说的解决做了也没用
- 然后从 Ubuntu 换到 Debian 10 系统,还是不行(都用 Docker 了还以为是系统问题的傻瓜)
4.2 第二天:手动部署
于是在夏神的建议下采用手动部署。
新的坑:
- 忘了检查 Python 的版本了,Debian 的 Python 最高支持不到 3.10
- 于是再次重装系统到 Debian 13
- 从 Venv 到 uv,一直是那个缺失库的报错
- 直到我去把文档中解决方法的三个库都分开装了一下试试,前两个还是找不到,第三个却能装上了
- 然后装上就没有问题了,非常奇怪,不过能跑就行。
4.3 版本问题
跑起来发现,我的 Astrbot 版本居然比我之前本地的高了一个,问题是:
- 配置文件的布局改了
- 并且基本都没有汉化
- 像是在测试什么?
- 因为我直接扒的当前仓库源码,并非发行版,所以是很难正常使用的
4.4 最终方案
傻傻的我这才想起来:为什么不直接把我本地的源码仓库直接 clone 到服务器上呢?
美国的公网 IP 网速也是飞起,于是很快就部署上去了,中间顺便解决了我之前改出来的一个代码错误,除了 venv 其他都传上去了,稳稳运行。
只是中间关于命令行的操作一直在问 AI,我太陌生了,搞了很久才把那两个都后台运行。
五、遇到的 Bug 及解决
Meme 显示问题
中间还发现了文字没有正常显示的 meme bug,问了一下 AI 说可能是系统字体缺失的问题,给了一个命令直接在服务器把字体装好了,bug 也是很快解决了(我开始还以为是因为我那两个库没有正常安装导致的)。
六、域名配置
然后下午开完会开始搞我 Astrbot webui 的域名,靠 AI 弄 Nginx 反向代理,把我 astrbot.huizhi.pro 的域名解析了一下,现在可以直接访问这个域名来进入控制页面,比 IP 好看多了。至于宝塔和 Napcat 的 web,我懒得搞了,真的好迷。
💡 反思 过了一个月之后的我才知道压根不用搞什么反向代理,直接 CF 打个洞把主机某个端口直接通到 https 的域名,而且无论有没有公网都能打()