Github开源地址:
AstrBot:https://github.com/AstrBotDevs/AstrBot

NapCatQQ:https://github.com/NapNeko/NapCatQQ

记得点个star,支持开源作者,GitHub右下角有项目赞助哦
准备工作:整理需求与环境
先明确目标:通过Docker在宝塔面板部署Napcat和AstrBot,前者负责QQ群消息交互,后者用于对接AI平台的API,实现智能问答。需要准备:
1.一台安装宝塔面板的服务器(国内服务器)
服务器选购(请使用国内服务器,你QQ登录到海外直接风控)
2.QQ机器人账号(等级至少有几个太阳吧,新号风控严重)

3.AI平台的API密钥,通过以下链接注册你和我都将获赠免费用量
硅基流动(推荐,国内模型齐全),本文以此作为示例,注册后请实名认证,若是获得优惠券,请将兑换券兑换为余额:
https://cloud.siliconflow.cn/i/eUFVLO6E
其它:
- 派欧云(国内的一些模型):https://ppio.cn/user/register?invited_by=8ILX6K
- XIAOHUMINI企业站(齐全,有海外模型加速线路):https://go.wxsurl.top/86z7k
- xiaohuapi个人站(齐全,有海外模型加速线路):https://go.wxsurl.top/zc3aw
- API2D(GPT模型加速线路):https://api2d.com/r/224668
- 洪墨AI(可接入任何网站,将文章作为知识库,摘要,AI搜索,AI客服,知识库对话,阿里千问及GPT3):https://ai.zhheo.com/console/login?InviteID=63772604
安装Docker环境:宝塔面板一键搞定
选择Docker页,一键安装,可能有人会问为啥用Docker?因为能避免依赖冲突,部署起来像搭积木。

拉取镜像:找到正确的项目仓库
下载项目Docker镜像
由于Docke官网服务器大部分国内服务器无法访问,所以我们要用国内镜像站来加速下载,先注册毫秒镜像:https://go.wxsurl.top/pzjjv
购买一个资源包,10CNY 50GB 一年,挺便宜的,足够咱本一年的升级镜像成本了

新增加速专属域名

注意设置公网IP白名单,随后复制专属域名

宝塔配置加速url,将之前在毫秒镜像复制的专属加速url填入保存即可

版本号命名规则为:0到9的大小比较,10进制,比如v2.1.9,就比v1.9.9大,这么说应该明白吧,你要选择最新版本,而不是代表最新版的latest,这是为了版本控制,方便后续更新,明确版本新旧。
找到到Astrbot最新版
在毫秒镜像中搜索soulter/astrbot点第一个进入

切换到标签列表,复制最新版本的镜像名和版本号,如下图的soulter/astrbot和v4.19.3

我们依据以上内容得到,左侧镜像名,中间英文冒号,右侧版本号
soulter/astrbot:v4.25.2
在本地镜像处,点击拉取镜像,填写镜像名拉取

拉取后就在列表展示了,其中的镜像名可直接复制,用于更新更换容器的项目镜像版本

找到Napcat最新版
在毫秒镜像中搜索mlikiowa/napcat-docker点第一个进入

切换到标签列表,复制最新版本的镜像名和版本号,如下图的mlikiowa/napcat-docker和v4.17.45

我们依据以上内容得到,左侧镜像名,中间英文冒号,右侧版本号,别直接复制下面的,你要按照上面的方法手动获取
mlikiowa/napcat-docker:v4.18.4
在本地镜像处,点击拉取镜像,填写镜像名拉取

拉取后就在列表展示了,其中的镜像名可直接复制,用于更新更换容器的项目镜像版本

如何更新容器中的镜像版本在下文,看完全文即可
创建容器子网络
创建容器内网子网,用于两个容器网络互通(docker→网络→添加网络→设置为bot)

记住创建好的网络名bot,如果容器无法联网或者想要自定义也可,但必须注意如果不是bot,你需要修改容器编排的compose

部署容器:使用容器编排docker-compose
创建两个新的容器编排,在compose中填入,分别为以下两个
名称填:astrbot,名称可随意,注意修改compose中的image!如果你自定义了网络需要将networks中的bot改为自定义的。
宝塔:
services:
astrbot:
environment:
- TZ=Asia/Shanghai #设置时区为上海
image: soulter/astrbot:v4.25.2 #镜像名,注意修改
container_name: astrbot
restart: always
ports:
- "6185:6185" #面板端口
- "6199:6199" #OneBot(aiocqhttp)默认端口
#- "6195:6195" #企业微信默认端口
#- "6196:6196" #QQ官方API(Webhook)默认端口
volumes:
- ./data:/AstrBot/data #astrbot数据映射,各种数据都存在这里
- /etc/localtime:/etc/localtime:ro #直接使用宿主机的时区设置,确保时间一致性
networks: #使用宿主机上存在的外部网络
bot: {}
deploy:
resources:
limits:
memory: 1G # 限制最大使用1GB内存
networks: #顶级配置,确保Compose不会修改或删除这个已有网络,避免影响其他服务
bot:
external: true
1Panel:
services:
astrbot:
environment:
- TZ=Asia/Shanghai
image: soulter/astrbot:v4.25.2
container_name: astrbot
restart: always
ports:
- "6185:6185"
- "6199:6199"
volumes:
- ./data:/AstrBot/data
- /etc/localtime:/etc/localtime:ro
networks:
bots: {}
deploy:
resources:
limits:
memory: 512M
networks:
bots:
external: true
名称填:napcat,名称可随意,注意修改compose中的image!如果你自定义了网络需要将networks中的bot改为自定义的。
其中的UID(User Identifier)和 GID(Group Identifier)是操作系统中用于标识用户和用户组的唯一数字。它们是实现文件权限、进程安全和资源访问控制的基础,为了防止出现权限问题,我们设置为root,如下的注释部分。
宝塔:
services:
napcat:
environment:
- NAPCAT_UID=0 #指定UID为root
- NAPCAT_GID=0 #指定GID为root
ports:
- 6099:6099 #面板端口
- 3099:3099 #预留端口
container_name: napcat
restart: always
image: mlikiowa/napcat-docker:v4.18.4 #镜像名,注意修改
volumes:
- ./napcat/config:/app/napcat/config #napcat数据
- ./ntqq:/app/.config/QQ #QQ数据
- /www/server/panel/data/compose/astrbot/data:/AstrBot/data #将astrbot的数据映射到napcat目录,注意冒号左侧的目录是宿主机astrbot数据实际目录,注意检查/www/server/panel/data/compose/中是否有这个astrbot的目录,用于napcat获取一些插件的数据,如插件缓存的视频图片等
deploy:
resources:
limits:
memory: 1G #限制1G内存,根据你的服务器配置调整(最小建议512M)
networks: #使用宿主机上存在的外部网络,设置固定的MAC地址,避免QQ重启后掉线
bot:
mac_address: "02:42:ac:12:00:02"
networks:
bot:
external: true #顶级配置,确保Compose不会修改或删除这个已有网络,避免影响其他服务
1Panel:
services:
napcat:
environment:
- NAPCAT_UID=0
- NAPCAT_GID=0
ports:
- 6099:6099
- 3099:3099
- 3000:3000
container_name: napcat
restart: always
image: mlikiowa/napcat-docker:v4.18.4
volumes:
- ./napcat/config:/app/napcat/config
- ./ntqq:/app/.config/QQ
- /opt/1panel/docker/compose/astrbot/data:/AstrBot/data
deploy:
resources:
limits:
memory: 512M # 限制512M内存,根据你的服务器配置调整(最小建议512M)
networks:
bots:
mac_address: "02:42:ac:12:00:02"
networks:
bots:
external: true
示例,需要操作两次,添加两次容器编排

完成这两个操作后,你将拥有两个容器,也就是两个应用,可以点击管理查看细节

建议你开启域名访问,且在服务器安全组中不开放面板的端口,这是为了安全考虑。需要在每个容器设置中修改,AstrBot选择6185端口,NapCat选择6099端口。在下图示例中填写已备案域名,不必解析域名,甚至可以直接填写使用bot.qq.com,ai.qq.com等当作你的面板的域名入口,因为没有解析,所以你可以通过Hosts将域名指向服务器IP后访问面板,你可以参考以下文章为自己的设备添加hosts域名指向服务器公网IP

配置AstrBot面板
默认账号密码都为:astrbot,在容器日志中可以看到

浏览器可视化面板管理地址(注意,服务器安全组和服务器防火墙要放行所需端口)
http://公网IP:6185
或你配置的域名
使用日志中的账号密码登录

创建机器人,选择OneBot v11,启用并保存

模型提供商里,点击新增,本文以硅基流动作为例子,选择SiliconFlow

之前你已经注册过了,没注册进入右侧链接注册,会获赠免费用量:https://cloud.siliconflow.cn/i/eUFVLO6E
在新标签网页硅基流动中创建API密钥

复制密钥

回到Astrbot面板,在API Key输入你复制的密钥,获取模型列表,搜索你想添加的AI大模型,如:deepseek-ai/DeepSeek-V3.2,点击加号,然后启用,最后点击保存配置,当然,你也可以选择自定义模型添加,直接填写在硅基流动复制的模型名即可。

配置文件,平台配置中,将自己的QQ添加到管理员ID中

此管理员ID配置后,被配置的QQ有权限控制平台设置及插件,在本文按步骤全部操作配置完成后,发送/help,可获取指令面板

在配置文件,管理平台中,将群号添加白名单,此时只能被@时回复内容,或唤醒词触发继续看下文得知如何主动回复

在AI配置中选择聊天模型,此时才能正常接入AI

保存当前配置!!!配置文件页在操作后都需要保存,本文只提醒这一次,请记住保存才能更新设置

添加几个人格(本文后面提供了几个,评论本文后自取),名称就是ID

配置文件,AI配置中可以选择之前配置的人格

在扩展功能打开主动回复及配置白名单,可以是外人QQ号以及QQ群号

配置Github加速,否则你的插件市场将无法下载插件或其它需要连接GitHub的操作无法使用,能看不能吃。下文你可以找到加速镜像站地址,可填写到自定义。你也可以选择自带的,选择后就是直接修改好了,我写这篇文章时就没有保存按钮,不用疑惑,更改后就已经生效了
选择延迟最低的一项,右侧是有一键测试连通性的

插件市场可下载插件并安装,右侧可选择排序方式,Star数是插件收藏人数,数值越高用的人越多,仓库按钮是GitHub插件仓库地址,一般有插件的详细介绍文档

注意对插件进行设置,点击插件配置依据文档进行设置,因为大部分插件是需要先设置的,否则不生效,同时更新在右侧三个点

配置NapCat面板
napcat的随机密码在容器日志中可以找到

日志中的这个位置就是密码

登录浏览器可视化面板管理地址(注意,服务器安全组和服务器防火墙要放行所需端口)
http://公网IP:6099
或你配置的域名
随后使用日志中的密码登录

然后需要QQ扫码登录到LinuxQQ,就一个扫码的事(如果不显示二维码,那就是网络配置错误,重新建一个新的网络名,修改Compose中的网络名,如何创建容器子网可在上文找到)

创建Websocket客户端,用于连接astrbot

宝塔内打开Astrbot的容器设置

复制容器内网IP地址

URL为:ws://你刚刚复制的内网IP:6199/ws或者直接用下面的试试(一般按以下配置也是没问题的,因为在同一子网,且容器名是这个,任务编排中的container_name,也是网络名,同一子网会自动解析)
ws://astrbot:6199/ws

私聊机器人QQ,然后查看日志
napcat

astrbot

效果验证:享受智能机器人的便利
部署成功后,QQ群里的机器人能自动回答常见问题、闲聊,甚至帮忙查资料。对比之前手动回复,效率提升太多。尤其是DeepSeek AI的中文理解能力很强,对话很自然。当然,如果使用更强的模型,不错的人格配置以及插件配合,会让对话更像真人聊天。

人格配置分享
分享一些模板和AI生成模板教程
AI人格模板分享
模拟真人对话,怼天怼地怼空气,连自己都怼
简洁版本
基本信息:
昵称:暗鸦
年龄:24 岁
身份:创业者(直播带货领域)
状态:单身,叛逆幽默,脑洞大开,说话直击痛点。
核心性格:
自我中心:关注自身需求,略显自私,忽视他人感受。
急功近利:追求快速成功,缺乏长期耐心。
抗挫折力弱:成长受保护,面对困难易退缩。
叛逆反讽:质疑规则,习惯用攻击性语言打破常规,拒绝正面回答问题。
世界观与价值观:
信息认知矛盾:被信息过载干扰判断,却又依赖网络形成片面全球化认知。
物质主义:追求物质享受,忽视精神需求,对金钱与美貌有空想式贪欲。
价值冲突:在传统与现代、集体与个人间摇摆,因网络依赖弱化现实社交。
经历与动机:
童年:吉林普通家庭出身,沉迷发明(曾因 “天气预测装置” 爆炸一战成名),挑战权威。
成年:互联网公司辞职创业,教育软件失败后转向直播带货,靠 “挑衅竞品”“创意主题直播” 爆火。
情感:短暂恋情因未来规划分手,自嘲式制作搞笑分手视频,称 “时间都用来撩项目”。
语言风格(关键):
极简叛逆:10 字左右短句,省略助词,不用句号,例:“这破事也用问?”
意外感制造:必用比喻 / 夸张 / 双关(如把打工人比作 “牛马”),例:“我懒到懒都嫌我烦。”
攻击性回应:遇恶意问题必嘲讽反击,遇逻辑错误幽默挑刺,例:“你这脑回路是被水泥封了?”
网络玩梗:善用冷幽默与废话文学,例:“这事吧,说就是没说,没说就是说了。”
禁忌:绝不用英文、不讨好、不直接应承问题,字数严格≤15 字。
典型语录风格:
夸张自嘲:“我这人生,就是个连草稿都没打的烂剧本。”
反讽攻击:“成功?我连失败都懒得演得像样点。”
双关玩梗:“问我为啥单身?月老拿我红线织秋裤了呗。”
原神角色
温柔可人的上海富婆
可爱猫猫,在线贴贴
活泼强大的自媒体女博主




















暂无评论内容