本文使用的环境
电脑:Windows10
服务器:超频2.1版Debian的随身WiFi,Linux内核5.15

1、搭建环境

本文默认已做好前置的换源与更新软件索引,若未完成,请先参考随身 WiFi 折腾日记(3)

  1. 安装 Python3
    apt install python3
    
    确认Python3版本高于3,8
    python3 --version
    
  2. 安装 Python3-pip
    apt install python3-pip
    
  3. 安装python-is-python3库
    apt install python-is-python3
    
  4. 使用 pip3 安装 nb-cli
    pip3 install nb-cli
    

2、使用 nb-cli 部署

  1. 运行 nb-cli

    nb
    

    注意:【空格】选中,【回车】确认,选中时的字体颜色是绿色的

    • 【创建一个 NoneBot 项目】=-=>【bootstrap(初学者或者用户)】

    • 输入项目名称

      本文使用的项目文件夹名称是 none-bot

    • 选择【FastAPI(FastAPI 驱动器)】 =-=> 选择 【oneBot V11 (OneBot V11 协议)】 =-=>【y】确认安装依赖 =-=>【y】确认创建虚拟环境 =-=> 等待安装完成后,选择【echo】内置插件,回车确认

  2. 输入 nb 后,若提示无法找到命令,可尝试一下方法自行添加(未经测试,不确定可行性,nb 命令可以正常使用时请忽略此项)

    1. 查看路径下的所有文件

      ls -a
      
    2. 编辑 .bashrc

      vim .bashrc
      
    3. 在末尾添加以下内容

      PATH=$PATH:/home/用户名/.local/bin
      此处的用户名是 root

      PATH=$PATH:/home/root/.local/bin
      
    4. 关闭断开SSH连接,再重新连接SSH

  3. 安装完成后使用以下命令启动机器人

    cd ./none-bot
    
    nb run --reload
    
  4. 确认可以运行后,先停止进程
    【Ctrl】+【C】

3、修改配置文件

  1. 进入项目文件夹

    cd ./none-bot
    
  2. 修改 .env.prod 文件

    vim .env.prod
    
  3. 修改程序运行时的 ip端口

    注意:IP:127.0.0.1 无法外部访问,在后期使用一些插件时需要进行外部访问,按本文默认的 0.0.0.0 设置即可

    具体可参考NoneBot官方文档https://v2.nonebot.dev/docs/next/appendices/config

    将以下内容添加到配置文件中

    HOST=0.0.0.0	# 配置 NoneBot 监听的 IP / 主机名
    PORT=12345	# 配置 NoneBot 监听的端口,建议设置为10000~60000之间,避免端口冲突
    SUPERUSERS=["1234567890","0123456789"]	# 配置 NoneBot 超级用户,一般来说填写的是自己的QQ号,多个用户需用 , 隔开
    

4、安装 go-cqhttp 启动器插件

  1. 安装插件
    NoneBot商店https://v2.nonebot.dev/store

    本文以 nonebot_plugin_gocqhttp 插件为例,其他插件方式相同,插件的使用方法请查看与插件对应的 GitHub

    注意:若要做为QQ机器人使用,go-cqhttp 是必要的,无论是以本体程序的形式安装,还是以插件的形式安装

    • 方式一:在官方商店复制安装命令直接使用
      nb plugin install nonebot-plugin-gocqhttp
      
    • 方式二:使用 nb-cli 安装
      1. 运行
        nb
        
      2. 选择【管理 bot 插件】=-=>【安装插件到当前项目】
      3. 输入插件名称
        nonebot-plugin-gocqhttp
        
  2. 重新启动机器人

    注意:安装新插件后需重新启动机器人才能生效(待确认)

    nb run
    
  3. 访问 go-cqhttp 页面,登录 QQ

    注意:

    • 只有以插件形式安装的 go-cqhttp 有 Web 页面,本体程序安装的 go-cqhttp 是没有的
    • 只有手表协议能使用扫码登录,其他设备协议仅能使用密码登录
    • 目前的QQ登录设备类型可能仅能使用 Android Watch 手表协议,扫码登录,其他设备协议可能会出现各种错误,登录不了
    • 若想QQ群使用,QQ的群消息不可屏蔽

    内网 ip + 端口 + /go-cqhttp,端口是前面配置时设置的端口

    192.168.3.222:12345/go-cqhttp
    

5、虚拟终端的安装与使用

本文虚拟终端名称以 none-bot 为例

由于关闭 SSH连接 后会终止程序,而 QQ机器人 需要持续运行,这时就需要挂载虚拟终端,在虚拟终端中运行 QQ机器人,这样在断开连接后程序会继续运行

  1. 安装虚拟终端 screen
    apt install screen
    
  2. 创建于进入虚拟终端
    1. 只创建虚拟终端

      screen -S 终端名称

      screen -S none-bot
      
    2. 只进入虚拟终端

      screen -r 虚拟终端

      screen -r none-bot
      

      若没有进入虚拟终端,先执行以下命令,再重新执行上面的命令
      screen -d 虚拟终端

      screen -d none-bot
      
    3. 创建并进入虚拟终端

      screen -R 终端名称

      screen -R none-bot
      
  3. 显示虚拟终端列表
    screen -ls
    
  4. 退出虚拟终端,不影响虚拟终端中程序的运行
    【Ctrl】+【A】+【D】
  5. 删除虚拟终端
    1. 删除虚拟终端需先终止进程
      【Ctrl】+【C】
    2. 从虚拟终端中删除
      【Ctrl】+【D】
    3. 从虚拟终端外删除

      screen -S 终端名称 -X quit

      screen -S none-bot -X quit
      

6、运行测试QQ机器人

  1. 运行
    nb run
    
  2. 登录 go-cqhttp ,启动 QQ
    若已启动过且没有删除,运行时会自动登录,能正常登录时,此步可忽略
  3. 使用echo测试

    echo 是安装时选择的内置插件,是一个简单的复读回显插件,可以用于测试你的机器人是否正常运行

    /echo + 内容