1、基础环境准备

1.1、linux环境服务器一台,本地也行,我用的阿里云。

1.2、RedisNode.js(>=v23.11)Git

  • git,redis安装不多赘述

  • 使用 nvm (Node Version Manager)安装并且管理nodejs

    # 1. 安装 nvm (如果尚未安装)
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
    # 或使用 wget
    wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
    
    # 2. 重新加载终端配置 (关闭终端后重新打开,或运行)
    source ~/.bashrc  # 或 source ~/.zshrc
    # 3. 查看可安装的 Node.js 版本
    nvm ls-remote
    # 4. 安装v24.0.0
    nvm install  v24.0.0
    
    # 5. 安装完成后验证
    node -v
    #v24.0.0
    npm -v
    #11.3.0
    
  • 使用 nrm 工具管理多个镜像源

    :<<!
    突然发现这个项目项目下面有 .npmrc 配置了国内源 此步骤可以省略 
    registry=https://registry.npmmirror.com
    node_sqlite3_binary_host_mirror=https://npmmirror.com/mirrors/sqlite3
    canvas_binary_host_mirror=https://npmmirror.com/mirrors/canvas
    sharp_binary_host=https://npmmirror.com/mirrors/sharp
    !
    
    #安装 nrm
    npm install -g nrm
    # 查看可用的镜像源
    nrm ls
    :<<!
      输出结果:
    * npm ---------- https://registry.npmjs.org/
      yarn --------- https://registry.yarnpkg.com/
      tencent ------ https://mirrors.tencent.com/npm/
      cnpm --------- https://r.cnpmjs.org/
      taobao ------- https://registry.npmmirror.com/
      npmMirror ---- https://skimdb.npmjs.com/registry/
      huawei ------- https://repo.huaweicloud.com/repository/npm/
    !
    #切换国内镜像源
    nrm  use taobao
    :<<!
      输出结果:
      npm ---------- https://registry.npmjs.org/
      yarn --------- https://registry.yarnpkg.com/
      tencent ------ https://mirrors.tencent.com/npm/
      cnpm --------- https://r.cnpmjs.org/
    * taobao ------- https://registry.npmmirror.com/
      npmMirror ---- https://skimdb.npmjs.com/registry/
      huawei ------- https://repo.huaweicloud.com/repository/npm/
    !
    
  • 安装pnpm

    npm i -g pnpm
    

2、开始安装

2.1、 找一个地方,创建一个目录(方便以后找得到)

mkdir yunzaibot & cd 在云崽根目录下打开终端

2.2、Git Clone 项目

#请根据网络情况选择使用 GitHub 或 Gitee 安装
git clone --depth 1 https://github.com/TimeRainStarSky/Yunzai
#或者
git clone --depth 1 https://gitee.com/TimeRainStarSky/Yunzai
cd Yunzai

2.3、安装依赖

#之前使用npm中途遇到过问题 安装 PUPPETEER报错,说是下载chrome失败了,然后加了个export PUPPETEER_DOWNLOAD_HOST=https://npm.taobao.org/mirrors。不知道为啥镜像源替换了还是没生效。不过后面貌似换了pnpm就没遇到了
pnpm i

3、尝试运行

3.1、 前台运行

操作 命令
启动 node .
停止 node . stop
守护 node . daemon

3.2、使用 pm2 后台运行(推荐)

操作 命令
启动 pnpm start
停止 pnpm stop
日志 pnpm log

3.3、设置开机自启

pnpm start
pnpm pm2 save
pnpm pm2 startup
#然后通过pm2 进行管理和查看

4、插件安装

机器人所有的插件索引

4.1 、锅巴插件(优先安装)

到在云崽根目录下,也就是上述的 xxxx/yunzaibot/Yunzai,xxx是自己选的目录

#锅巴插件是一个后台管理页面,可以直接对插件进行ui操作管理,而不用后台一个个clone
#使用 Gitee(和github 选一个,根据网络情况 一般是直接用gitee )
git clone --depth=1 https://gitee.com/guoba-yunzai/guoba-plugin.git ./plugins/Guoba-Plugin/
#使用 Github
git clone --depth=1 https://github.com/guoba-yunzai/guoba-plugin.git ./plugins/Guoba-Plugin/

#安装依赖
pnpm install --filter=guoba-plugin

#然后重新启动
pnpm restart 

4.2、安装其他插件

  1. 启动yunzai后 进入锅巴后台,具体地址可以在日志中看到。先pm2 list 看yunzai的序号,比如我这里是5,就pm2 log 5 查看日志里面的具体地址,一般是 ip:2536/guoba
  2. 进入后需要验证,点击发送验证码,然后再后台日志复制验证码并且登录
  3. 然后就愉快的安装各种插件了,建议先选择不重启,需要的插件安装完后再重启
  4. 推荐安装插件(可选)

4.3 、添加到qq机器人

  1. 貌似pm2已经运行到后台的程序不能直接通信,所以先pnpm stop 停掉,然后手动 node . 执行

  2. 输入:#安装QQBot-Plugin

  3. 打开:QQ 开放平台 创建 Bot:(详细过程百度) ① 创建机器人 ② 开发设置 → 得到 机器人QQ号:AppID:Token:AppSecret

  4. 输入:#QQBot设置+QQ号:AppID:Token:AppSecret:[012]:[01]

    示例:(机器人QQ号 114 AppID 514 Token 1919 AppSecret 810 是否群Bot 1 是否频道私域 1)(是1 否0)

    ​ #QQBot设置114:514:1919:810:1:1

  5. 最后ctrl+C 退出前台运行,最后pnpm start 启动

5、总结

​ 一开始看到别人群里面的机器人,觉得挺稀奇的,正好自己有一个阿里云的服务器就拿来搭建一个了,这是第二次重新搭建,因为第一次弄的时候踩了很多坑,环境弄得乱七八糟,下了很多没必要的东西。例如一开始了解这是个什么东西,怎么搭建,还有一堆看不懂的名词规则看着挺头大的,也有可能是那天熬了通宵的关系,脑子不清醒了。

​ 第一次安装原版的MIAO-YUNZAI ,后来又说推荐装TRSS版本的有一个docker直接安装,还有一个管理面板,自带插件管理什么的,又跑去卸载了然后装了容器版本的TRSS。但是每次要操作什么东西还要进容器修改就很麻烦,而且第一次弄很多网络配置没弄好,没有写docekr compose ,导致重新构建容器挺麻烦的。然后还是卸载了,直接手动安装,然后用pm2进行管理进程。

​ 其中还尝试过用自己的qq或者是小号的qq,搭配qq插件进行登录,后来发现各种账号风险提示,异地登录等等,完全不能直接使用阿里云进行直接登录qq。后面找半天找到QQ机器人的插件,然后进行安装,再去QQ机器人平台去创建之类的,终于能够正常接到qq上了。

​ 这一次的重装是因为有一段时间没用,然后不知道为什么崩了,安装依赖也提示失败。想着算了,本来一个40G的服务器,为了这个乱下东西花了十个G,干脆重装算了。然后重新安装了一次,这次基本上一气呵成,没有遇到什么奇怪的问题,顺便重新记录一下。