前言:本文介绍了如何使用Docker快速部署一个QQ机器人,并通过对接Nonebot实现Memos机器人的功能。
准备工作
- 安装Docker
- 一个QQ账号
- 一个Memos账号
部署
memos机器人
此处使用Nonebot2作为框架,自己撸的Nonebot2的插件nonebot_plugin_memos
对接Memos机器人。
我打包编译的镜像jkjoy/qq2memos:latest
如需源码参考 https://www.imsun.org/archives/1668.html
首先创建一个docker-compose.yml文件,内容如下:
services:
memos:
container_name: memos
environment:
- MEMOS_API=https://memos.imsun.org/api/v1/memo #Memos的API地址,自行修改
image: jkjoy/qq2memos:latest
volumes:
- "./data:/app/data"
restart: always
ports:
- 8080:8080
** 此处的MEMOS_API支持memos v0.15.0以上使用token认证的版本,端口地址根据版本情况自行更改 ** 例如 v0.18.1版本 使用/api/v1/memo
v0.20.0版本以上使用/api/v1/memos
然后运行
docker-compose up -d
端口根据情况自行更改,在填写WS地址时,请使用此处设置的端口
部署QQ机器人
此处以docker-compose的方式部署,其他方法自行搜索。
首先创建一个docker-compose.yml文件,内容如下:
services:
napcat:
environment:
- ACCOUNT=10000 #QQ机器人号码,自行修改
- WS_ENABLE=true
- NAPCAT_UID=0
- NAPCAT_GID=0
ports:
- 3001:3001
- 6099:6099
- 3000:3000
restart: always
image: mlikiowa/napcat-docker:latest
volumes:
- "./QQ:/app/.config/QQ"
- "./config:/app/napcat/config"
network_mode: host #使用host的原因是为了方便对接宿主机的nonebot框架
然后运行docker-compose up -d
即可。
访问WEBUI地址 http://ip:6099/webui/login.html
登录所使用的token
在docker-compose.yaml
所在目录下的config
中的webui.json
中
可选择扫码登录
在设置页面中添加反向 WS 地址,地址为
ws://127.0.0.1:8080/onebot/v11/ws
这里的 8080
是 NoneBot 输出的端口号,根据情况自行更改
/onebot/v11/ws
是 NoneBot onebot 适配器默认的路径
点击保存,容器日志提示通讯成功即可.
使用机器人
在聊天对话框输入任何内容会提示绑定
按照提示进行绑定即可
在绑定成功后,在聊天对话框输入任何内容都会转发到Memos 且 默认为公开内容.
暂不支持发送图片等其他内容.