如何使用1Panel部署一个QQ Bot

2.6k words

使用1Panel部署Astrbot与Napcat详细教程

警告:使用Napcat存在以下潜在风险,请用户充分了解并谨慎评估后再进行操作!

一、原理理解

在正式部署之前,我们先明确Astrbot和Napcat在QQ机器人架构中分别扮演的角色:

1. Astrbot(消息处理器)

Astrbot是整个QQ机器人的核心大脑,主要负责:

  • 业务逻辑处理:解析用户发送的指令和消息
  • 消息回复生成:调用AI模型生成智能回复内容
  • 插件管理:加载和管理各类功能插件
  • 会话管理:维护用户会话状态和上下文

简单来说,Astrbot负责”理解消息”和”生成回复”。

2. Napcat(消息适配器)

Napcat是QQ机器人的通信桥梁,主要负责:

  • 协议交互:与QQ服务器进行协议层面的通信
  • 消息接收:实时接收QQ群和私聊消息
  • 消息发送:将Astrbot生成的回复发送到QQ
  • 事件上报:将QQ的各类事件(如加群、退群等)上报给Astrbot

简单来说,Napcat负责”连接QQ”和”收发消息”。

3. 协同关系

Astrbot与Napcat之间通过WebSocket协议实现消息传递:

1
2
3
用户QQ消息 → Napcat(接收消息) → WebSocket → Astrbot(处理消息)

用户收到回复 ← Napcat(发送消息) ← WebSocket ← Astrbot(生成回复)

两者缺一不可,Astrbot处理业务逻辑,Napcat负责QQ通信,通过WebSocket实现高效的双向实时通信。


二、环境准备

1. 服务器要求

  • 操作系统:Linux(推荐Ubuntu 20.04/22.04或CentOS 7/8)
  • 内存:至少2GB RAM(推荐4GB以上)
  • 磁盘:至少20GB可用空间
  • 网络:需要公网IP或进行端口穿透

2. 安装1Panel

如果您的服务器尚未安装1Panel,请先执行以下命令安装:

1
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh

安装完成后,通过浏览器访问 http://IP:Port 进入1Panel管理面板。


三、部署Astrbot

步骤1:登录1Panel并进入容器管理

  1. 打开浏览器,访问您的1Panel管理面板地址
  2. 使用管理员账号登录
  3. 在左侧菜单中点击 “容器”“容器” 进入容器管理页面

步骤2:拉取Astrbot镜像

  1. 点击 “镜像” 标签页
  2. 点击 “拉取镜像” 按钮
  3. 在镜像名称输入框中填入:
    1
    soulter/astrbot:latest
  4. 点击 “确认” 开始拉取镜像
  5. 等待镜像拉取完成(根据网络情况可能需要几分钟)

步骤3:创建Astrbot容器

  1. 切换到 “容器” 标签页
  2. 点击 “创建” 按钮
  3. 按照以下配置填写容器信息:
配置项 说明
容器名称 astrbot 自定义名称
镜像 soulter/astrbot:v4.18.2 选择已拉取的镜像
端口映射 6199:6199 Astrbot WebSocket端口
端口映射 6185:6185 Astrbot管理面板端口
端口映射 11451:11451 其他服务端口(可选)
重启策略 一直重启 保证服务持续运行
  1. 点击 “确认” 创建容器

步骤4:端口穿透配置(关键步骤)

  • 暴露端口 “6199:6199”
  • 暴露端口 “6185:6185”

如果您的服务器有公网IP且防火墙已开放这些端口,可以直接使用公网IP访问。如果服务器在内网或没有公网IP,需要进行端口穿透。

四、配置Astrbot管理面板

步骤1:访问管理面板

  1. 打开浏览器,访问Astrbot管理面板:http://IP:6185
  2. 首次访问需要设置管理员账号和密码,请妥善保存

步骤2:添加模型提供商

  1. 在管理面板左侧菜单中点击 “模型提供商”
  2. 点击 “新增” 按钮
  3. 选择模型提供商:
    • 硅基流动(SiliconFlow):国内优秀的模型提供商,支持多种大模型
    • 或其他您已注册的模型提供商(如OpenAI、Azure、百度文心等)

建议使用合法合规且已完成备案的模型提供商

  1. 填写API配置信息:
    • ID:根据提供商要求填写唯一标识符
    • API Base URL:根据提供商要求填写基础URL
    • API Key:从模型提供商官网获取的API密钥
  2. 点击 “保存配置” 验证连接是否成功

步骤3:配置消息适配器

  1. 在管理面板左侧菜单中点击 “机器人”
  2. 点击 “创建机器人” 按钮
  3. 消息平台类别选择”OneBot v11”
  4. 按照以下配置填写:
配置项 说明
机器人名称 QQ 自定义名称,用于标识
启用 True 启用此机器人
反向 Websocket 端口 6199 Astrbot的WebSocket端口
反向WebSocket主机 0.0.0.0 监听所有网络接口
反向 Websocket Token - 与Napcat进行安全验证的Token
  1. 点击 “保存” 完成配置

五、部署Napcat

步骤1:下载安装Napcat

Napcat需要基于QQ Linux版运行,以下是安装步骤:

使用Docker部署

  1. 在1Panel中,进入 “容器”“镜像”
  2. 拉取Napcat镜像:
    1
    mlikiowa/napcat-docker:latest
  3. 创建Napcat容器,配置如下:
配置项 说明
容器名称 NapcCat 自定义名称
镜像 mlikiowa/napcat-docker:latest 已拉取的镜像
网络模式 与Astrbot同一网络 确保容器间通信
端口映射 6099:6099 NapCat管理面板端口
重启策略 一直重启 保证服务持续运行

六、连接Astrbot与Napcat

步骤1:在Napcat管理面板中添加WebSocket客户端

  1. 访问Napcat管理面板(通常为 http://IP:6009 或通过1Panel容器终端进入)
  2. 进入 “网络配置”
  3. 点击 “新建”
  4. 选择**”Websocket Client”**
  5. 填写连接配置:
配置项 说明
启用 True 启用此连接
Url ws://IP:6199/ws QQ连接名称
上报自身消息 False 不上报自身消息到Astrbot
消息格式 Array OneBot的标准消息格式
心跳间隔 10000 心跳间隔,单位毫秒,10秒
重连间隔 10000 重连间隔,单位毫秒,10秒

注意:请将”IP”替换为您的实际公网IP地址可访问地址。如果是在同一服务器部署。

  1. 点击 “保存”

免责声明:本教程仅供学习和研究使用,请遵守相关法律法规和平台服务条款。使用Napcat可能存在账号风险,请谨慎操作,作者不对任何损失承担责任。