一、前置准备
1. 环境要求
已安装 Docker(版本≥20.10)和 Docker Compose(版本≥2.0)
服务器开放所需端口(默认管理面板 6099、HTTP 服务端自定义端口如 3000)
2. 环境验证
执行以下命令确认 Docker 和 Docker Compose 已安装成功:
bash
运行
# 验证Docker
docker --version
# 验证Docker Compose
docker compose --version
若输出版本信息则说明环境正常,否则需先安装对应工具(Ubuntu/Debian 示例安装命令):
bash
运行
# 安装Docker
sudo apt update && sudo apt install -y docker.io
# 安装Docker Compose
sudo apt install -y docker-compose-plugin
二、编写 Docker Compose 配置文件
1. 创建部署目录
bash
运行
# 创建NapCat工作目录
mkdir -p /opt/napcat && cd /opt/napcat
# 创建配置文件目录(持久化存储配置)
mkdir -p config data logs
2. 编写 docker-compose.yml
在/opt/napcat目录下创建docker-compose.yml文件,内容如下:
yaml
services:
napcat:
ports:
- 3000:3000
- 3001:3001
- 6099:6099
container_name: napcat
network_mode: bridge
restart: always
image: mlikiowa/napcat-docker:latest
volumes:
- ./config:/app/napcat/config # 配置文件持久化
- ./data:/app/napcat/data # 数据持久化
- ./logs:/app/napcat/logs # 日志持久化
environment:
- TZ=Asia/Shanghai # 时区配置
- NAPCAT_TOKEN=you_webui_token # 管理面板登录token(自定义,建议复杂密码)
关键参数说明:
ports:左侧为宿主机端口,右侧为容器内端口,需确保宿主机端口未被占用NAPCAT_TOKEN:管理面板登录密码,后续访问 WebUI 需使用volumes:持久化目录,避免容器重启后配置丢失
三、部署 NapCat 服务
1. 启动服务
在/opt/napcat目录下执行:
bash
运行
# 后台启动服务
docker compose up -d
# 查看启动日志(验证是否正常启动)
docker compose logs -f
若日志中出现NapCat started successfully且无报错,说明部署成功。
2. 访问管理面板
浏览器访问:
http://服务器IP:6099/webui输入环境变量中配置的
NAPCAT_TOKEN登录(如your_admin_token)首次登录需完成 QQ 账号登录(参考前文解决香港服务器登录问题:VPN + 设备验证)
四、配置 HTTP 服务端
1. 进入 HTTP 配置页面
登录 NapCat 管理面板后,左侧导航栏点击「网络配置」
点击页面右上角「新建」,选择「HTTP 服务器」(NapCat 作为服务端,供外部调用)
2. 详细配置参数
配置完成后点击「保存」,系统会自动应用配置(无需重启容器)
3. 防火墙开放端口
确保宿主机防火墙开放 HTTP 服务端端口(以 3000 为例):
bash
运行
# Ubuntu/Debian
sudo ufw allow 3000/tcp && sudo ufw reload
# CentOS
sudo firewall-cmd --permanent --add-port=3000/tcp && sudo firewall-cmd --reload
五、HTTP 服务端测试(验证配置)
1. 测试 Token 验证
使用curl命令测试 HTTP 接口是否正常响应,验证 Token 是否生效:
bash
运行
# 格式:curl -H "Token字段: 配置的Token值" http://服务器IP:端口/接口路径
curl -H "Authorization: napcat_http_token_123" -X POST http://服务器IP:3000/api/message -d '{"content":"测试消息","qq":"目标QQ号"}'
若返回
{"code":0,"message":"success"}说明配置正常若返回
{"message":"token verify failed!"}:检查 Token 是否一致、请求头字段是否匹配
2. 常用接口示例(参考 OneBot 协议)
NapCat 的 HTTP 服务端兼容 OneBot 协议,常用接口:
bash
运行
# 发送私聊消息
curl -H "Authorization: napcat_http_token_123" -X POST http://服务器IP:3000/send_private_msg -d '{"user_id":123456,"message":"Hello from NapCat HTTP服务"}'
# 获取登录账号信息
curl -H "Authorization: napcat_http_token_123" -X GET http://服务器IP:3000/get_login_info
六、常见问题排查
1. 管理面板无法访问
检查容器是否启动:
docker compose ps(状态为 up 则正常)检查端口是否占用:
netstat -tuln | grep 6099查看日志:
docker compose logs -f查找端口绑定失败等错误
2. HTTP 请求提示「网络不可达」
确认服务器防火墙已开放 3000 端口
香港服务器需确保 HTTP 端口未被运营商限制
检查 docker-compose.yml 中端口映射是否正确(宿主机端口≠容器端口会导致访问失败)
3. Token 验证失败
确认请求头字段与 NapCat 配置一致(如配置的是「X-Token」,请求头需用
X-Token: xxx)检查 Token 是否有大小写、空格差异
重新保存 HTTP 配置后,再次测试(无需重启容器)
七、最佳实践
安全加固:
避免使用默认端口(如将 3000 改为随机端口如 32768)
Token 建议使用大小写 + 数字 + 特殊字符的复杂组合
公网部署时,可通过反向代理(Nginx)添加 HTTPS 加密
配置备份:
定期备份
/opt/napcat/config目录,避免配置丢失修改配置前先停止服务:
docker compose down,修改后再启动
日志排查:
HTTP 请求日志可在
/opt/napcat/logs/http.log中查看若接口调用失败,先查看日志定位具体错误(如 Token 错误、参数格式错误)
通过以上步骤,即可完成 Docker Compose 部署 NapCat 并配置 HTTP 服务端。
注意: 再webui中开启服务端的话 监听是127.0.0.1使用nginx反代 两种情况
1. 网络环境改成host
2.镜像名称:3000
不要在nginx中使用127.0.0.1
官网文档地址: https://napcat.apifox.cn/5430207m0
评论区