搭建nonebot2机器人心得

最后更新于 2024-07-10 752 次阅读


系统环境: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

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连接上了