目的:部署一个 QQ AI聊天机器人。
用到两个开源项目,NapCatQQ 和 Koishi。
NapCatQQ 实现了QQ登录,能够通过程序收发QQ消息,提供了onebot协议支持。
Koishi 是个机器人框架,具备丰富插件系统。
24年9月部署到国内服务器记录
注意docker hub加速域名用x.com隐藏代替了,需要请自行搭建,参考:Cloudflare反代docker hub
1 | docker pull x.com/mlikiowa/napcat-docker:latest |
启动 koishi 容器,映射容器5140到888端口
提前创建好/root/koishi_data目录。
1 | docker run -d -p 999:5140 -v /root/koishi_data:/koishi --name koishi --mac-address=02:42:ac:11:00:98 koishijs/koishi:latest |
查看容器运行输出内容
docker logs koishi
浏览器访问999端口,通过koishi web控制台进行配置。
在 插件配置-market,配置插件市场和插件npm源。
依赖管理全部更新。
配置auth插件,设置管理员密码。
安装插件:
1 | chatluna |
启动 napcat 容器,把容器6099端口映射到本机8087端口
1 | docker run -d \ |
查看napcat输出内容,扫码登录。
1 | docker logs napcat |
打开 http://服务器IP:8087/webui/#/webui 使用token登录。(启动后可在启动日志中看到形如 [WebUi] Login Token is xxxx 的token信息)
在网络配置,配置koishi和http。
参照 https://napneko.github.io/use/integration#koishi 连接到koishi。
可通过IP:8090来调用 https://napneko.github.io/zh-CN/develop/compatibility/api#napcat-api 的API
docker常用命令
1 | 列出正在运行的容器 |
–24.9.2更新
wechat在线不稳定,尝试另一种方案:
1 | docker pull x.com/hmllsnow/escape-wechat |
访问 http://IP:1234/ 完成配置。
注意修改配置在最底部点击保存配置,然后要在顶部重启一下,配置才生效。
NapCatQQ
https://napneko.github.io/zh-CN/guide/getting-started
选择通过Linux一键脚本安装。
安装过程会提示缺少依赖项,可以先安装一下依赖,避免系统中没有:
1 | apt install -y libopengl0 libnss3-dev |
安装完成后bash脚本输出的内容:
1 | 安装完成,请输入 xvfb-run qq --no-sandbox 命令启动。 |
运行后台快速登录命令即可,如果需要停止,可执行 pkill xvfb-run && pkill qq
根据bash输出内容,打开web控制台输入密码登录,输入密码后会出现QQ登录二维码,扫码登录后自动打开功能设置界面。
我当时安装的版本是V1.7.4
Koishi
https://koishi.chat/zh-CN/manual/starter/linux.html
cli启动 https://koishi.chat/zh-CN/manual/launcher/cli.html
启动后配置nginx代理,外网访问,我配置的8088端口。即:8088转发本地5140
nginx伪静态配置:
1 | location / { |
在插件配置-auth里设置账号密码并开启插件。
根据:
https://napneko.github.io/zh-CN/guide/integration#%E5%AF%B9%E6%8E%A5%E5%BC%80%E6%BA%90%E6%A1%86%E6%9E%B6
在插件市场安装 adapter-onebot 插件进行配置。
然后通过插件系统安装对应AI插件,设置token后即可使用。
微信可以用 adapter-wechat4u 扩展,注意手机微信必须保持在线,手机如果切换微信账号,则其他设备也都会下线。
可以用移动云手机或闲置手机。
Mark:
koushi插件发布:
1 | 1. 根目录执行 npm run build |