前言
NapCatQQ 是基于 PC NTQQ 本体实现一套无头 Bot 框架。大致意思就是去除了界面使整体更小巧。最主要的是能适配多种的bot协议,也支持多种部署的方式,例如windows和linux等架构的系统平台。这次教程主要讲的是NapCatQQDocker版本的安装,linux服务器和群晖的Docker搭建,以及对接bncr和autman第三方框架,当然也可以对接Nonebot和Koishi等开源的框架(方法大同小异),但是目前NapCatQQ还并不支持全部的Onebot规范接口,所以有的功能还是不能实现。
NapCatQQ介绍
不需要图形环境,Linux表现优异,与现有Hook框架有着本质区别,在性能与内存占用方面远远优于基于Hook的框架。
配置简单,支持浏览器远程进入进行配置,简单轻松即可完成配置。
NTQQ功能适配快速,更新持续跟进QQ最新版。
如果你需要有界面的NTQQ方便你查看消息等操作,可以参考下面的NTQQDocker版本。
官方Docker版本项目地址:https://github.com/NapNeko/NapCat-Docker
官方变量(不懂不要强求):https://github.com/NapNeko/NapCat-Docker/blob/main/entrypoint.sh
开始前准备
- 因为此方法是Docker版本的部署,由于一些特殊原因,不能拉取Docker镜像的话需要参考下面的文章,优先部署好代理,方便后续的拉取镜像操作
官方拉取镜像
ACCOUNT=
后面的机器人QQ就是你要设置当机器人
的QQ号
正向ws
通俗来讲就是搭建的NapCatQQ端会等别人来连接
,成功后就能互相通信并收发消息
。反向WS
通俗来讲就是搭建的NapCatQQ端会主动
寻找配置的第三方框架接口,来进行适配,成功后就能收发消息
。HTTP
也分正和反,跟上述WS一样,正
的就是等连接
,反
的就是主动去连接
,但是正
的只能发消息
,不能收消息
。而反
的则相反,可以收消息
,不能发消息
。- -p
6099:6099
这个就是NapCatQQ的web配置页面
,前面
可以改动
,后面的6099不要改动
。 - 可以根据官方提供的变量文档自行修改,建议多看官方的相关文档,变通的加减变量,达到你想要的效果。
正向WS
docker run -d
-e ACCOUNT=机器人qq
-e WS_ENABLE=true
-e NAPCAT_GID=0
-e NAPCAT_UID=0
-p 3001:3001
-p 6099:6099
--name napcat
--restart=always
mlikiowa/napcat-docker:latest
反向WS
docker run -d
-e ACCOUNT=机器人qq
-e WSR_ENABLE=true
-e WS_URLS='["ws://框架IP:端口/xxx"]'
-e NAPCAT_GID=0
-e NAPCAT_UID=0
--name napcat
--restart=always
mlikiowa/napcat-docker:latest
HTTP
docker run -d
-e ACCOUNT=机器人qq
-e HTTP_ENABLE=true
-e HTTP_POST_ENABLE=true
-e HTTP_URLS='["ws://框架IP:端口/xxx"]'
-e NAPCAT_GID=0
-e NAPCAT_UID=0
-p 3000:3000
-p 6099:6099
--name napcat
--restart=always
mlikiowa/napcat-docker:latest
命令小小解读
ws相关命令解读
ACCOUNT
就是机器人的QQ号(需自己替换
)MESSAGE_POST_FORMAT
就是消息上报的格式,下面的string就是CQ码(一般不动
)WEBUI_TOKEN
就是后面webui进入后需要的token所谓的密钥,所以请务必修改一下WEBUI_TOKEN后面的lmu5.com
改成你自己的,否则会有安全隐患
!(需自己替换
)WS_URLS
自然就是反向地址了(需自己替换
)NAPCAT_GID和NAPCAT_UID
是官方后面增加的后台运行命令,官方默认有指定(不动
)6099:6099
,这就是webui后续要用的端口,一般后面的6099不动,只动前面的,看你个人,请注意端口占用(需自己替换
)
/root/napcat/config:/app/napcat/config
这是挂载目录,你只需要改动/root/napcat
即可,如果你是centos或者Ubuntu等linux系统的,可以直接使用命令,如果你是群晖或者openwrt爱快等系统的请记得更换目录,具体根据你自己的目录来定,请注意,只改动/root/napcat
即可(根据系统不同可能有所变化
)
/root/napcat/.config:/app/.config/QQ
这是挂载目录,你只需要改动/root/napcat
即可,如果你是centos或者Ubuntu等linux系统的,可以直接使用命令,如果你是群晖或者openwrt爱快等系统的请记得更换目录,具体根据你自己的目录来定,请注意,只改动/root/napcat
即可(根据系统不同可能有所变化
)
/root/napcat/logs:/app/napcat/logs
这是挂载目录,你只需要改动/root/napcat即可,如果你是centos或者Ubuntu等linux系统的,可以直接使用命令,如果你是群晖或者openwrt爱快等系统的请记得更换目录,具体根据你自己的目录来定,请注意,只改动/root/napcat
即可(根据系统不同可能有所变化
)
name
这里代表的是容器名(可不改动
)
mac-address
这个是mac值,如果不懂且是首次,直接默认即可。如果是多个napcat机器人,请更改后面的数值02:42:ac:11:00:99
即可
变量命令的加减
可以访问官方文档进行加减进入官方文档 ,
例如我们在拉取命令内加入TOKEN=’这里填写token’ (TOKEN的意思就是你的密钥Access token,一般来说都可以加上,不过也需要你对接的相关框架支持填写,如果支持填写Access token可以直接在拉取命令内直接加入你的自定义token,这里填写token记得换成你自定义的)大家可以参考下面的图,你如果熟悉相关命令可以自行添加,如果不熟悉也可不动,直接在webui内修改。
Linux-Docker版本NapCatQQ(autman)
我们使用下面的命令拉取镜像并创建容器,只需要改ws://
后面的IP和端口
即可(域名
也可) 因为已经固定
了MAC值
,如果你启用多个NapcatQQ
那需要更改
一下MAC值
,name
还有/root/
后的目录和端口号
,不一致就行,完毕后跳转下面的web端扫码登录QQ或配置继续操作!
请注意WEBUI_TOKEN='b9zy.cn'
的b9zy.cn
自行替换,这是你的webui的
token
,很重要,所以请自己更改成自己的
!
- 通用docker一键安装指令
无界安装命令
Linux-Docker版本NapCatQQ(Bncr)
web端扫码登录QQ或配置
我们找到
root
—napcat
—config
—webui.json
打开后有一个token
,记录下来其实这就是你上面命令里设置的token,可以打开核对一下一样不一样。(当然也可以更改
成你自己记得住的,记得保存
)我们打开
浏览器
,输入你的IP
+Napcat设置的外部端口+webui
,就是创建容器设置的端口
第一个空格,如果你跟我一样那就默认
是6099
,接着输入你刚才记录下来的token
,填入点击login
就会出现下面页面,点击
QR Code
,就会出现二维码
(如果扫码失效
了,请刷新
页面,二维码就会更新
!!再扫码
即可)扫码出现后,你记得勾选
下次登录无需手机确认
常见问题
- 调用接口报 404:目前没有支持全部的 OneBot 规范接口,请检查是否调用了不支持的接口。
- 如何使用 CQ 码?:将消息上报类型格式从消息段更改为 CQ 码即可。
- 二维码无法扫描:NapCat 会自动保存二维码到目录,可以手动打开图片扫描。如果无法访问本地目录(例如,纯命令行页面),可以将二维码解析的 URL 复制到二维码生成网站上重新生成二维码,然后再用手机 QQ 扫描。注意动作要快,因为二维码是会过期的!
- 语音、视频发送失败:这种情况需要你手动配置 ffmpeg 路径。ffmpeg 可以点击这里下载。将 ffmpeg 目录加入环境变量,如果仍未生效,可以修改 NapCat 启动脚本加入 FFMPEG_PATH 变量,指定到 ffmpeg 程序的完整路径。
- 出现error code v2:-1之类的提示:QQ 本身问题,正常现象,不影响使用。
- 登录提示出现“网络环境不稳定”“不在同一网络”:如果在服务器扫码登录提示出现网络环境不稳定/不在同一网络,可以尝试在本地登录后,将 QQ 本身的配置传到服务器相同目录覆盖。Linux 下 QQ 配置的目录位于 ~/.config/QQ;Windows 下一般是文档下的 QQ 文件夹(默认情况是 <系统盘>:Users (用户)DocumentsTencent Files),具体可以打开 QQ 设置,进入“存储管理”一栏查看。或者,手机使用 VPN 等方式连接到服务器网络,使手机和服务器在同一网络,也可解决此问题。