使用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 | 用户QQ消息 → 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并进入容器管理
- 打开浏览器,访问您的1Panel管理面板地址
- 使用管理员账号登录
- 在左侧菜单中点击 “容器” → “容器” 进入容器管理页面
步骤2:拉取Astrbot镜像
- 点击 “镜像” 标签页
- 点击 “拉取镜像” 按钮
- 在镜像名称输入框中填入:
1
soulter/astrbot:latest
- 点击 “确认” 开始拉取镜像
- 等待镜像拉取完成(根据网络情况可能需要几分钟)
步骤3:创建Astrbot容器
- 切换到 “容器” 标签页
- 点击 “创建” 按钮
- 按照以下配置填写容器信息:
| 配置项 | 值 | 说明 |
|---|---|---|
| 容器名称 | astrbot | 自定义名称 |
| 镜像 | soulter/astrbot:v4.18.2 | 选择已拉取的镜像 |
| 端口映射 | 6199:6199 | Astrbot WebSocket端口 |
| 端口映射 | 6185:6185 | Astrbot管理面板端口 |
| 端口映射 | 11451:11451 | 其他服务端口(可选) |
| 重启策略 | 一直重启 | 保证服务持续运行 |
- 点击 “确认” 创建容器
步骤4:端口穿透配置(关键步骤)
- 暴露端口 “6199:6199”
- 暴露端口 “6185:6185”
如果您的服务器有公网IP且防火墙已开放这些端口,可以直接使用公网IP访问。如果服务器在内网或没有公网IP,需要进行端口穿透。
四、配置Astrbot管理面板
步骤1:访问管理面板
- 打开浏览器,访问Astrbot管理面板:
http://IP:6185 - 首次访问需要设置管理员账号和密码,请妥善保存
步骤2:添加模型提供商
- 在管理面板左侧菜单中点击 “模型提供商”
- 点击 “新增” 按钮
- 选择模型提供商:
- 硅基流动(SiliconFlow):国内优秀的模型提供商,支持多种大模型
- 或其他您已注册的模型提供商(如OpenAI、Azure、百度文心等)
建议使用合法合规且已完成备案的模型提供商
- 填写API配置信息:
- ID:根据提供商要求填写唯一标识符
- API Base URL:根据提供商要求填写基础URL
- API Key:从模型提供商官网获取的API密钥
- 点击 “保存配置” 验证连接是否成功
步骤3:配置消息适配器
- 在管理面板左侧菜单中点击 “机器人”
- 点击 “创建机器人” 按钮
- 消息平台类别选择”OneBot v11”
- 按照以下配置填写:
| 配置项 | 值 | 说明 |
|---|---|---|
| 机器人名称 | 自定义名称,用于标识 | |
| 启用 | True | 启用此机器人 |
| 反向 Websocket 端口 | 6199 | Astrbot的WebSocket端口 |
| 反向WebSocket主机 | 0.0.0.0 | 监听所有网络接口 |
| 反向 Websocket Token | - | 与Napcat进行安全验证的Token |
- 点击 “保存” 完成配置
五、部署Napcat
步骤1:下载安装Napcat
Napcat需要基于QQ Linux版运行,以下是安装步骤:
使用Docker部署
- 在1Panel中,进入 “容器” → “镜像”
- 拉取Napcat镜像:
1
mlikiowa/napcat-docker:latest
- 创建Napcat容器,配置如下:
| 配置项 | 值 | 说明 |
|---|---|---|
| 容器名称 | NapcCat | 自定义名称 |
| 镜像 | mlikiowa/napcat-docker:latest | 已拉取的镜像 |
| 网络模式 | 与Astrbot同一网络 | 确保容器间通信 |
| 端口映射 | 6099:6099 | NapCat管理面板端口 |
| 重启策略 | 一直重启 | 保证服务持续运行 |
六、连接Astrbot与Napcat
步骤1:在Napcat管理面板中添加WebSocket客户端
- 访问Napcat管理面板(通常为
http://IP:6009或通过1Panel容器终端进入) - 进入 “网络配置”
- 点击 “新建”
- 选择**”Websocket Client”**
- 填写连接配置:
| 配置项 | 值 | 说明 |
|---|---|---|
| 启用 | True | 启用此连接 |
| Url | ws://IP:6199/ws | QQ连接名称 |
| 上报自身消息 | False | 不上报自身消息到Astrbot |
| 消息格式 | Array | OneBot的标准消息格式 |
| 心跳间隔 | 10000 | 心跳间隔,单位毫秒,10秒 |
| 重连间隔 | 10000 | 重连间隔,单位毫秒,10秒 |
注意:请将”IP”替换为您的实际公网IP地址可访问地址。如果是在同一服务器部署。
- 点击 “保存”
免责声明:本教程仅供学习和研究使用,请遵守相关法律法规和平台服务条款。使用Napcat可能存在账号风险,请谨慎操作,作者不对任何损失承担责任。