系统环境:Ubuntu 22.04 LTS python 3.10.12
博主使用napcat+nonebot2的形式搭建机器人,napcatQQ是基于 PC NTQQ 客户端本体实现的 QQ Bot 框架,稳定安全,快速部署。
1.部署napcatQQ
博主采用docker-compose的部署方式部署napcatQQ
(1)安装docker和docker-compose
apt install docke
apt install docker-compose
systemctl status docker #查看docker的运行情况

(2)创建napcatQQ的docker-compose配置文件
mkdir /root/napcat && cd /root/napcat
vi docker-compose.yml #创建配置文件
#将下边的配置信息放在docker-compose.yml文件中:
# docker compose 反向 WS
version: "3"
services:
napcat:
environment:
- ACCOUNT=<机器人qq>
- WSR_ENABLE=true
- WS_URLS=ws://127.0.0.1:8080/onebot/v11/ws/
container_name: napcat
network_mode: bridge
ports:
- 6099:6099
restart: always
image: mlikiowa/napcat-docker:latest
示例:
# docker compose 反向 WS
version: "3"
services:
napcat:
environment:
- ACCOUNT=2972429598
- WSR_ENABLE=true
- WS_URLS=ws://你的服务器公网IP:8080/onebot/v11/ws/
container_name: napcat
network_mode: bridge
ports:
- 6099:6099
restart: always
image: mlikiowa/napcat-docker:latest
(3)安装napcatqq
#在docker-comose.yml的目录下
docker-compose up -d
#等待安装完成后,输入如下命令查看napcat是否正常运行
docker ps -a
(4)登录QQ
#查看napcat的容器ID
docker ps -a
#如下截图显示,容器ID为:678db56c881a

#输入命令查看QQ的登陆二维码,扫码登录:
docker logs <napcat容器ID>

(5)登录napcat webui(可选)
平常napcat的配置文件,可以登录http://服务器IP:6099/webui/login.html,进行配置。
要想登录该webui,需要在服务器防火墙中放开该端口(如果开启了防火墙),并且需要在进入napcat容器中获取webui的登录token。
获取登录token方法如下:
docker ps -a #获取napcat的容器ID
docker exec -it <napcat容器ID> /bin/bash

如上图显示,我们已经进入容器中,然后我们继续输入如下命令:
cat napcat/config/webui.json
即可获取webui的登录token

然后我们在浏览器中登录http://服务器IP:6099/webui/login.html,并输入该token,即可进入webui,在这里边我们可以配置相应的连接设置


2.部署Nonebot2
(1)确认python安装版本为3.10版本以上
python --version

(2)安装pip、git、poetry环境
首先判断是否有安装pip、Git、和poetry
#判断是否有安装pip环境
pip -V
#判断是否安装git
git --version
#判断是否安装poetry
poetry -V
若均未安装,则输入如下命令进行安装:
#安装pip
apt install python3-pip
#安装git
apt install git
#安装poetry
apt install python3-poetry
(3)安装机器人脚手架nb-cli
①.首先安装pipx
python3 -m pip install --user pipx
python3 -m pipx ensurepath
安装完成后,如果输出中出现了“open a new terminal”或者“re-login”字样,那么请关闭当前终端并重新打开一个新的终端。
②.安装脚手架
pipx install nb-cli
(4)创建机器人项目
mkdir /root/bot && cd /root/bot #创建机器人目录并进入
nb create #在项目创建模式中,空格选中按钮,回车下一步
1.项目模板
[?] 选择一个要使用的模板: bootstrap (初学者或用户)
2.项目名称
[?] 项目名称: laoju #可以根据自己的想法选择不同的项目名称,这也是机器人的名字
3.选择支持协议
这里我们选择OneBot V11协议
4.其余选项 #如下选择
[?] 要使用哪些驱动器? FastAPI (FastAPI 驱动器)
[?] 立即安装依赖? (Y/n) Yes
[?] 创建虚拟环境? (Y/n) Yes
然后提示Done!则代表项目已创建,此时我们进入到机器人目录下:
cd /root/bot/laoju
(5)修改机器人配置
机器人目录下的 .env.prod是机器人的配置信息,里面可以配置bot的监听端口和管理员QQ,可以按照如下的信息配置。
DRIVER=~fastapi
HOST=服务器IP # 反向代理的ip,也就是你的服务器IP,对应napcat的反向代理服务器字段
PORT=8080 # 反向代理的端口,对应napcat的反向代理服务器字段
SUPERUSERS=[" 超级管理员的QQ号"] # 超级管理员的QQ号
COMMAND_START=[""] #唤醒机器人的指令
ONEBOT_ACCESS_TOKEN=XXXXXX #这一token是在napcat的webui里设置的Access token必须和napcat那边一致,不然napcat连接nonebot会报403错误
配置参考信息如下:

Access Token在napcat的webui的配置位置如下:

(6)配置完成后可以启动机器人看看是否有报错
cd /root/bot/laoju #进入机器人目录
nb run --reload #启动机器人
正常启动bot后,查看napcat日志,看napcat是否正常和nonebot连接上了
Comments 2 条评论
docker拉不下来 有镜像站吗
@1004154427 我的服务器是外网的服务器。。所以没有单独配置镜像站信息,估计你得找找现在国内镜像站的信息喔