部署流程 - fnsflm/cq-picsearcher-bot GitHub Wiki
1. go-cqhttp
因酷Q停止运营,本项目从 v2.14.0 开始转为依赖 go-cqhttp 运行,若你是从旧版(v2.14.0 以前)升级而来,请在部署完 go-cqhttp 后阅读迁移须知
注意:go-cqhttp 为新项目,初期可能存在许多 bug,请大家支持并耐心等待该项目的完善
当然,您也可以使用其它实现了 CQHTTP 接口的机器人应用,但因本项目使用了一些(可能是)go-cqhttp 独有的能力,很可能出现不兼容甚至发生错误的情况
- 访问 go-cqhttp 的 releases 页面,根据你的系统下载对应压缩包
- 解压并将可执行文件放到一个新建的空文件夹中
- 运行,程序将会生成配置文件,然后将程序关闭,参照文档说明填写配置,或从原 cq-http 配置自动迁移
- 确保配置正确后再次运行
配置注意事项
- 需使用正向 ws 方式连接
- 本项目目前只支持
post_message_format
为string
2. Node.js
Node.js 建议版本 > 10.16.0,一般情况下直接装当前的 LTS 版本即可,如有异常请尝试降级至 node 12 或 14 的最新版
3. 部署本项目
部署过程示例:
git clone https://github.com/Tsuk1ko/cq-picsearcher-bot.git
cd cq-picsearcher-bot
cp config.default.jsonc config.jsonc
# 安装依赖(选择下列其中一种方式即可)
## (1) 一般情况下
npm i
## (2) 更推荐使用 yarn
npm i -g yarn
yarn
## (3) 如果在国内部署,可以像这样设置使用淘宝镜像再 install
### (3.1) 使用 npm
npm config set registry https://registry.npm.taobao.org --global
npm config set disturl https://npm.taobao.org/dist --global
npm i
### (3.2) 使用 yarn
npm i -g yarn --registry=https://registry.npm.taobao.org
yarn config set registry https://registry.npm.taobao.org --global
yarn config set disturl https://npm.taobao.org/dist --global
yarn
注意此处(第三行)需要将config.default.jsonc
复制一份,重命名为config.jsonc
,然后编辑config.jsonc
文件来配置本程序
Windows 系统在安装依赖时可能会执行以 node-pre-gyp
开头的编译命令,如果编译过程中出现错误,请使用 npm i -g windows-build-tools
全局安装编译依赖(yarn 则为 yarn global add windows-build-tools
)后再试
配置完成后先启动 go-cqhttp 再运行本程序
初次尝试部署建议直接使用npm run test
命令直接前台启动,可以直接看到运行日志,如果有错误能方便地查看报错日志
修改配置后无需重启,可以使用配置热重载指令
确保使用上述命令执行没有发生错误后,结束前台进程,再使用下述后台守护方式运行
# 运行
npm start
# 停止
npm stop
# 重启
npm restart
# 查看日志(平时日志也会保存在 logs 文件夹内)
npm run log
错误排查
- 报错找不到模块说明依赖安装过程出了问题
- 注意是否出现部署流程中提到的编译问题,解决后重新安装依赖
- 尝试换用
yarn
及使用淘宝镜像重新安装依赖 - 重新安装依赖前建议删除
node_modules
文件夹 - 国内服务器可能出现网络问题,如果使用淘宝镜像源未能解决,可尝试挂全局透明代理或使用国外服务器再直接用官方源
- 连接失败报错请重点检查以下几个点
- go-cqhttp 是否没启用 ws
- 是否设置了
access_token
但两边不一致 - 是否手贱动了
host
配置
- pm2 守护出现异常现象,例如机器人会重复发言等
- 尝试执行以下命令
npx pm2 kill npm start
- 尝试执行以下命令
检查更新
程序默认每隔一天检查一次更新,发现新版本会私聊 bot.admin
通知
该功能要求 git 版本高于 2.18.0,否则会出现错误(不影响 bot 运行),你可以修改 bot.checkUpdate
配置项来更改检查频率或关闭自动检查更新
检查更新仅作检查,并不会自动进行更新,更新操作仍然需要您手动完成
更新
你之前用哪个包管理器就用哪个来执行安装依赖的命令,不建议 npm 与 yarn 混用
npm run stop
git pull
npm i
阅读更新日志,如果配置文件有变更,可根据说明和自己的需要对照config.default.jsonc
来更新你的config.jsonc
,未配置的设置项将会取config.default.jsonc
中的配置值
确认无误后启动程序
npm start