【NTQQ】Docker版本NTQQ结合了LiteLoaderQQNT与LLonebot等插件
2024年8月22日 20:02:10更新:最新版本LLonebot3.30.0,修复了linuxQQ消息问题。
2024年8月16日 22:35:18更新:最新版LLonebot版本3.29.2,配置文件有更新,如果你不从配置文件更新,记得删除token,因为官方默认设置了【这里设置token】的文字,留空才可以对接。另外同步更新了一键脚本,但是前提请配置Docker代理。参考本站搭建教程
2024年7月31日 12:54:58更新:NTQQ内置linuxQQ同步官方最新版本3.2.10_240715,LiteLoaderQQNT更新到1.2.0,LLOneBot更新至3.27.3,增加了LinuxQQ所需的一些依赖,配置文件有所变更
前言
相信很多机器人玩家,都已经无路可去了,目前可以利用官方NTQQ来对接各框架(当然需要各框架支持)
首先感谢 青柠
博客地址:倾城于你 提供的一些思路。
感谢 群内魂焱
博客地址:魂焱小站提供部分技术的支持。
感谢 群内莫斯科
的arm服务器提供。
打包的docker在魂焱打包的基础上改了一些,让QQ就算闪退或者崩溃,不影响到容器本身,用supervisor
进行守护,使其配合自动登录功能,实现绝对的稳定,下面我们来进入正题
准备
- 准备一台服务器,
amd64/arm64
都可以,配置最好还是2核保底吧。 - 准备一个
VNC
软件。我会在群内准备一些手机上的和PC端的。这里直接用青柠提供的1Remote
- 准备手机登陆机器人
QQ号
,扫码
NTQQ相关
NTQQ一键脚本(适用于小白支持autMan/无界)
复制以下代码,在服务器发送即可。按照提示步骤输入正确参数
,如果出现输错可以自行去文件夹内修改
!(如果脚本有问题
,欢迎加Q群反馈
,找时间会优化。)搞好后就跳转下面的VNC连接
接着连接操作
cd && curl -o "ntqq.sh" "https://raw.githubusercontent.com/baquanluomu/ntapiconfig/main/ntqq.sh" && chmod +x ntqq.sh && ./ntqq.sh
示例图:
手动搭建NTQQ(建议老手)
-
SSH链接你的服务器,在
root
目录下,没有的请cd /root
,然后输入下面命令创建对应文件夹并创建配置文件,请注意将记得换
文字换成机器人的QQ号码
mkdir -p LLOneBot && cd LLOneBot && touch config_记得换.json
请把记得换更改为机器人QQ号码 -
如果不确定是否成功,可以自行查看下目录或者
ll
看查目录。正确后我们进行编辑配置文件,配置地址端口。(并不是一定要vi
如果有宝塔等或者nas等可以直接去目录手动修改哈,怎么方便怎么来),这里我直接使用了SSH工具查看json文件, -
上面进入后,我们双击里面的对应机器人QQ的配置文件打开,然后编辑箭头所指那一串,如果你的NTQQ跟你的框架是一起的,也可以用10.10.10.10或者127.0.0.1和192.xx.xx.xx都是可行的
{
"ob11": {
"httpPort": 3000,
"httpHosts": [],
"wsPort": 3001,
"wsHosts": [
"ws://autman公网:端口/qq/receive"
],
"enableHttp": false,
"enableHttpPost": false,
"enableWs": false,
"enableWsReverse": true,
"messagePostFormat": "string",
"httpSecret": "",
"enableHttpHeart": false,
"enableQOAutoQuote": false
},
"heartInterval": 60000,
"token": "",
"enableLocalFile2Url": true,
"debug": true,
"log": false,
"reportSelfMessage": false,
"autoDeleteFile": true,
"ffmpeg": "/usr/bin/ffmpeg",
"autoDeleteFileSecond": 120,
"enablePoke": false,
"musicSignUrl": "",
"enableLLOB": true,
"msgCacheExpire": 120
}
-
编辑改好后,咋们记得保存,拉取镜像并run容器(不用管arm或者amd什么的,直接拉取,会自动识别)
docker run -d --restart=always --name NTQQ -v /root/LLOneBot/:/opt/QQ/resources/app/LiteLoaderQQNT/data/LLOneBot/ -p 5900:5900 -p 3000:3000 luomubiji/ntqq:latest
-
注意上面的name后面的
NTQQ
是可以更改的,还有-p 5900:5900 -p 3000:3000
这里的:
前面的5900
和3000
是可以更改的,更改后代表后面的步骤都需要相应的替换。如果有端口冲突,还是更改为好,没有就不必更改,有没有很简单,自己用命令lsof -i:5900
查看记得
VNC连接
- 首先VNC软件选择性很多,各个功能不一样,建所以这里直接用
1Remote
来演示,首先打开软件,右上角选择+
号,选择添加,点击上方VNC
,输入名称
-
往下拉找到地址,输入上面搭建
NTQQ服务器的地址IP(可域名)+端口号
/webui
,就是上面的第六步,里面的5900
如果你有变动,改的什么就在此处填写什么(家宽openwrt或者爱快等,记得开放端口)。下面密码输入:vncpasswd
(关于密码固定后续可能会优化为可自定义),然后保存。 -
保存后我们去双击你添加的,就会进行连接(如果遇到连接失败,你确定端口开放!且确定容器正常运行中!端口占用等问题!),连接成功后如图所示:
-
然后我们拿出我们准备好的机器人QQ手机,右上角
+
号,扫一扫,然后扫出来的二维码。并登陆,确定登录。出现确认最好勾选下次登录无需手机确认
,如果遇到闪退,扫码后黑屏等,重新连接VNC
就行。直到出现正常QQ登陆界面。然后就进行关键操作
!!!
- 点击设置,找到左边最下面的bot,点击进入,确定一下端口,还有对接奥特曼的地址和端口是否有,如果没有,手动填写,最好是去一开始的配置文件修改!还要开启debug!消息上保类型选择CQ码如图所示就完事了!然后点击左边的
登录设置
,将启动QQ自动登录打开
,确认无需手机确认打开
。接着找到最上的通用
找到软件更新
关闭
!!
autMan用户配置如图,IP+端口记得替换
无界用户配置
- NTQQ相关第3步的配置文件:
{
"ob11": {
"httpPort": 3000,
"httpHosts": [],
"wsPort": 3001,
"wsHosts": [
"ws://无界IP:端口/api/bot/qqws"
],
"enableHttp": false,
"enableHttpPost": false,
"enableWs": false,
"enableWsReverse": true,
"messagePostFormat": "string",
"httpSecret": "",
"enableHttpHeart": false,
"enableQOAutoQuote": false
},
"heartInterval": 60000,
"token": "",
"enableLocalFile2Url": true,
"debug": true,
"log": false,
"reportSelfMessage": false,
"autoDeleteFile": true,
"ffmpeg": "/usr/bin/ffmpeg",
"autoDeleteFileSecond": 120,
"enablePoke": false,
"musicSignUrl": "",
"enableLLOB": true,
"msgCacheExpire": 120
}
-
VNC连接第5步图一示例:
-
无界web更改
qqOutside.js
示例图,请将适配器模式更改为ws
,交互发送地址更改为NTQQ的地址加端口
,记得开启适配器
,图上没开而已,js路径在/bncr/BncrData/Adapter
更新命令
这里使用的是watchtower来更新,但是我不知道是个人原因还是什么原因,watchtower版本无论怎么拉取最新的都是1.3.0(删除了镜像也是),所以我建议如果您的watchtower版本很低的话,就是用下面命令拉取后出现第一行为1.7.1(2024年3月14日 23:18:12目前最新)以下的话,最好还是手搓拉取指定版本,注意更新是要时间的!且更新后还需要扫码登录,且要除了配置文件外的比如自动登录,取消更新都需要重新开关!
NTQQ指定用watchtower1.7.1更新(跟我类似情况)
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower:1.7.1 -c --run-once NTQQ
NTQQ通用更新命令
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower -c --run-once NTQQ