使用 Napcat + Koishi 的组合创建一个QQ机器人的大致流程如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
+--------------------------------+
| NTQQ 登录 QQ |
+--------------------------------+

+--------------------------------+
| Napcat 挂在 QQ 上对外暴露接口 |
+--------------------------------+

+--------------------------------+
| Koishi 启动 |
+--------------------------------+

+--------------------------------+
| Koishi 通过适配器连接 Napcat |
+--------------------------------+

+--------------------------------+
| 在 Koishi 写业务插件 |
+--------------------------------+

之后会围绕此点,一步步说明如何操作。

在执行操作前请确认服务器内各种工具的存在状态,可跳转其它博客文章确认本机内的所需依赖。

一、准备工作

在当前用户目录下,执行下列命令

1
2
3
4
mkdir -p qqbot/napcat/config
mkdir -p qqbot/napcat/data
mkdir -p qqbot/koishi
cd ~/qqbot

在本地创建一个 docker-compose.yml 来定义这两个服务,直接扔进去或者 nano 一个,yml内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
services:
# 服务1: NapCat (QQ客户端)
napcat:
image: mlikiowa/napcat-docker:latest
container_name: napcat
restart: always
# 加这两个参数防止卡死
security_opt:
- seccomp:unconfined
environment:
- WEBUI_TOKEN=(你的密码你的密码你的密码你的密码你的密码你的密码) # NapCat管理面板的密码,请自行修改
- QQ_APP_ARGS=--no-sandbox
volumes:
# 映射到你要求的目录
- ./napcat/data:/app/.config/QQ
- ./napcat/config:/app/napcat/config
ports:
- "6099:6099" # NapCat WebUI 端口
# 3001 端口 Koishi 会通过内部网络连接它,这样更安全

# 服务2: Koishi (机器人框架)
koishi:
image: koishijs/koishi
container_name: koishi
restart: always
volumes:
- ./koishi:/koishi
ports:
- "5140:5140" # Koishi 管理面板端口
depends_on:
- napcat # 确保 NapCat 先启动

放进去以后,在 ~/qqbot 下执行下列操作:

1
sudo docker compose up -d

二、配置 Koishi

如果不是 root 用户,就赋权

1. 进入Koishi web 后台加入 auth

现在服务器的 Koishi 是裸奔状态,打开浏览器访问 http://(ip地址ip地址ip地址):5140 ,从左边的侧边栏内的依赖管理中进入依赖,修改 @koishijs/plugin-auth ,如果操作列无法点击,就刷新一下。

配置账号密码和各种参数,点击保存和应用,然后再进入主页。

这里会多出一个登录,且之前默认开放的左边侧边栏的各种选项都被隐藏,说明设置完毕。

修复可能遇到的问题

  • 前端可能会报错,是因为 console 这个插件缺少子依赖,将其更新后应用就行

三、登录 NapCat

OK 以后,打开浏览器访问 http://(ip地址ip地址ip地址):6099/webui/ ,加载好以后差不多长这样:

输入刚刚放到 yml 里的 token,选择扫码登录或者快速登录都行,如果能在猫猫日志里看到 log,那 NapCat 就算初步完毕了。

可能会被风控,如果被风控就 sudo docker restart napcat

四、集成两者

集成文档不多赘述,直接看 NapCat官方文档

配置完了 Koishi 以后,回到 NapCat ,打开网络配置添加如下

成功后,向机器人发送 help ,有回应就算完成了。


本站总访问量