使用Docker快速部署一个memos的QQ机器人

前言:本文介绍了如何使用Docker快速部署一个QQ机器人,并通过对接Nonebot实现Memos机器人的功能。

准备工作

  1. 安装Docker
  2. 一个QQ账号
  3. 一个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

登录所使用的tokendocker-compose.yaml 所在目录下的config中的webui.json

可选择扫码登录

在设置页面中添加反向 WS 地址,地址为

ws://127.0.0.1:8080/onebot/v11/ws

这里的 8080 是 NoneBot 输出的端口号,根据情况自行更改

/onebot/v11/ws 是 NoneBot onebot 适配器默认的路径

点击保存,容器日志提示通讯成功即可.

使用机器人

在聊天对话框输入任何内容会提示绑定

按照提示进行绑定即可

在绑定成功后,在聊天对话框输入任何内容都会转发到Memos 且 默认为公开内容.

暂不支持发送图片等其他内容.