领养一只可爱的小真寻—绪山真寻 Bot 部署教程

R.I.P.

file

介绍

一个基于 Nonebot2 和 go-cqhttp 开发,以 PostgreSQL 作为数据库的可爱 Bot

file

更多更详细的介绍请移步:[使用文档] | [项目地址]

前置准备

本教程默认采用 Ubuntu20 系统,其余系统可能细节会有不同,一定要在 root 用户下装,普通用户可能会出问题

安装 python

由于 Ubuntu20 自带 python3.8.10,所以不提供安装指令,如果是其他系统请自行安装 python3.8,3.9 也可

安装前置组件

国内机可额外运行下列命令将 pip 源换成清华源

sudo pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

依次逐行运行:

sudo apt update && sudo apt install -y wget git screen ffmpeg #安装 ffmpeg
sudo apt install -y python3-pip #安装 pip
sudo pip install poetry #安装 poetry 虚拟环境

安装 PostgreSQL 数据库

确保 PostgreSQL 版本在 9.0 以上即可,这里有两种安装方法,推荐宝塔应用商店自带的 PostgreSQL 管理器,方便数据库的备份和迁移。如果不想装宝塔,就用纯命令安装

宝塔安装

首先安装 PostgreSQL 管理器

file

安装完成后点击 「设置」,点 「版本管理」,安装 12.10 版本
file

点击 「数据库列表」,创建数据库
file

参数自定义,这里数据库名和用户名填 zhenxun,密码填 password,权限设置所有人
file

至此数据库安装完毕

命令安装

若已在宝塔内安装,请勿重复安装!
运行下列命令安装数据库

sudo apt install -y postgresql postgresql-contrib

依次逐行运行下列命令创建数据库

sudo su - postgres
psql
CREATE USER zhenxun WITH PASSWORD 'password';
CREATE DATABASE zhenxun OWNER zhenxun;
exit
exit

安装前置依赖

整段复制运行:

sudo apt install -y \
    libgl1 \
    libglib2.0-0 \
    libnss3 \
    libatk1.0-0 \
    libatk-bridge2.0-0 \
    libcups2 \
    libxkbcommon0 \
    libxcomposite1 \
    libxrandr2 \
    libgbm1 \
    libgtk-3-0 \
    libasound2 

安装中文字体

整段复制运行:

sudo apt-get install -y ttf-wqy-zenhei ttf-wqy-microhei fonts-arphic-ukai fonts-arphic-uming
sudo fc-cache -f -v

go-cqhttp 部署

安装

先装 wget

sudo apt install -y wget

再装 go-cqhttp,整段复制:

mkdir ~/go-cqhttp && \
    cd ~/go-cqhttp && \
    wget https://github.com/Mrs4s/go-cqhttp/releases/download/v1.0.1/go-cqhttp_linux_amd64.tar.gz -O go-cqhttp_linux_amd64.tar.gz && \
    tar -zxvf go-cqhttp_linux_amd64.tar.gz

修改配置

输入下列命令先运行一次 go-cqhttp

cd ~/go-cqhttp && echo -e "3\n" | ./go-cqhttp

前面步骤没错的话会出现以下界面:

file

之后修改/root/go-cqhttp/config.yml,将 universal 参数改成 ws://127.0.0.1:8080/onebot/v11/ws/并保存
file

持久化运行

依次逐行运行下列命令

sudo apt install -y screen #安装 screen
screen -S go-cqhttp #创建 screen
cd ~/go-cqhttp && echo -e "3\n" | ./go-cqhttp -faststart #运行

没有问题的话会出现二维码

file

这里如果提示风险无法登陆,就先去手机上下个爱加速,然后挂上和你服务器同一城市的节点,之后重新扫码登录即可
file

等到出好友列表后按 Ctrl+A+D 组合键退出 screen

zhenxun_bot 部署

下载源码

依次逐行运行:

sudo apt install -y git #安装 git
cd ~ && git clone https://ghproxy.com/github.com/HibiKier/zhenxun_bot.git

这里如果 git 太慢或者无法 git 或者作者删库跑路 (前车之鉴), 就手动上传源码,推荐去项目地址下载 release 版

file

为防止删库,这里放一个 0.1.5.9源码备份

修改配置

设置管理员

修改 bot 管理员账号,将你自己的 qq 账号改成你希望用来管理 bot 的 qq:

cd ~/zhenxun_bot && sed -i 's/SUPERUSERS.*/SUPERUSERS=[" 你自己的 qq 账号"]/g' .env.dev

如果这一步报错,去 root 目录下将真寻 bot 源码的文件夹名字改成 zhenxun_bot

链接数据库

修改数据库连接命令,如果你没对上面数据库的创建命令作出修改直接运行以下命令:

sed -i 's|bind.*|bind: str = "postgresql://zhenxun:password@localhost:5432/zhenxun"|g' configs/config.py

配置虚拟环境

该步骤非常重要!依次逐行运行下列命令:

cd ~/zhenxun_bot && poetry shell #进入虚拟环境
poetry install #安装依赖
playwright install chromium #安装 Playwright 浏览器

耐心等待环境安装完毕

启动 bot

启动真寻之前确定你进入了虚拟环境!
虚拟环境没问题的话,依次逐行运行:

screen -S zhenxun #创建 screen
cd ~/zhenxun_bot && poetry shell #进入虚拟环境
cd ~/zhenxun_bot && python3 bot.py #启动 bot

至此 bot 启动完毕,第一次启动需要下载各种素材,耐心等待,出现下图表示成功

file

Ctrl+A+D 组合键挂起 screen
现在将你的 Bot 邀请到任意群聊即可愉快的玩耍了,发送 「详细帮助」 就可以看当前 Bot 所有的功能了~

杂七杂八的错误

Unknown DB scheme

可能为新版 psql 数据库名称更改,运行命令将数据库名称改为 postgres

sed -i 's|bind.*|bind: str = "postgres://zhenxun:password@localhost:5432/zhenxun"|g' configs/config.py

zhenxun 反向链接失败

file

如果运行 bot 后提示反向链接失败,说明 go-cqhttp 配置错了,仔细检查

zhenxun 运行后自动退出

第一次运行可能会提示修改配置文件,这里可以修改/root/zhenxun_bot/configs/config.yaml,内容自定,也可以不修改直接再次运行命令 python3 bot.py 启动 bot

挂爱加速后依然无法登录

先下一个 win 版的 go-cqhttp,在本地登录一次,将生成的 device.json 覆盖到服务器上,一般可以解决问题。
QQ 会不定期封堵接口,建议更新到最新版,同时关注项目 issue

登录提示账号封停

device.json 删掉,重启 bot 尝试,小概率可以解决问题

账号风控,无法发送消息

原因众多,可参考此文章
QQ 会不定期封堵接口,建议更新到最新版,同时关注项目 issue

管理相关

screen -r zhenxun #进入 zhenxun 窗口
screen -X -S zhenxun quit #强制结束 zhenxun 窗口

screen -r go-cqhttp #进入 go-cqhttp 窗口
screen -X -S go-cqhttp quit #强制结束 go-cqhttp 窗口

安装插件

绪山真寻 Bot 提供了官方的插件库,点此跳转

file

安装方法也很简单,直接将插件文件夹拖到/root/zhenxun_bot/plugins 目录下,然后重启 bot 即可
需要注意的是,部分插件需要安装依赖,也有部分插件存在兼容问题无法使用,自行甄别


参考文章:https://www.smoe.top/2022/03/25/zhenxun-bot-deploy/

本文作者:小小黑
本文链接:https://lonelyenderman.top/archives/781
版权声明:本站采用 BY-NC-SA 进行许可。转载请注明出处!

评论

  1. 七宝
    Windows Chrome
    2 年前
    2023-7-27 14:26:32

    连接到反向 WebSocket Universal 服务器 ws://127.0.0.1:8080/onebot/v11/ws/ 时出现错误: dial tcp 127.0.0.1:8080: connect: connection refused 这怎么搞

    来自上海
    • 博主
      七宝
      Windows Chrome
      2 年前
      2023-8-01 18:01:00

      8080 端口能正常访问吗?

      来自山东
    • 博主
      七宝
      Windows Chrome
      2 年前
      2023-8-01 18:07:35

      也有可能是版本不一致,你可以参考下这篇文章,有这部分的解释

      来自山东
  2. 虚无
    Android Chrome
    2 年前
    2023-5-18 5:05:20

    真寻怎么添加通过 nb-cli 下载的插件啊

    来自广东
    • 博主
      虚无
      Windows Chrome
      2 年前
      2023-5-18 13:35:09

      我是直接去官方插件库下的源文件,然后丢到 zhenxun_bot/plugins 里重启真寻就好了

      来自陕西
  3. 小雨
    Windows Edge
    2 年前
    2023-5-13 8:45:00

    win 系统进入虚拟环境显示 poetry could not find a pyproject.toml file in C: Users 86138 or its parents 怎么办
    py 的版本是 3.10.8

    来自河北
    • 小雨
      小雨
      Windows Chrome
      2 年前
      2023-5-13 8:46:12

      很难受 就差这个了

      来自河北
    • 博主
      小雨
      Windows Chrome
      已编辑
      2 年前
      2023-5-13 9:49:06

      StackOverflow 有一篇类似的提问 (https://stackoverflow.com/questions/66257546/poetry-could-not-find-a-pyproject-toml-file-in-c ) ,翻译过来大概是:你必须先创建一个 pyproject.toml。进入你的项目文件夹,运行 poetry init 并按照指示操作。作为替代方法,你可以运行 poetry new myproject 来创建一个基本的文件夹结构和一个 pyproject.toml。也可以看一下文档。

      来自陕西
  4. liao
    Windows Edge
    2 年前
    2023-5-10 16:25:48

    大佬请问出现这个问题是什么原因啊
    psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
    Is the server running locally and accepting connections on that socket?
    这个是没开放远程连接吗,还是怎么回事>﹏<

    来自湖南
    • 博主
      liao
      Windows Chrome
      2 年前
      2023-5-10 16:31:50

      看起来是 PostgreSQL 报错,数据库配置出问题了吧

      来自陕西
  5. 六花
    Windows Edge
    2 年前
    2023-4-23 15:20:14

    难受已经用爱加速挂去广东了,还是显示登陆环境异常

    来自广西
    • 博主
      六花
      Windows Chrome
      2 年前
      2023-4-24 9:58:25

      还有一种办法,本地下个 go-cqhttp,登录一次,把生成的 device.json 覆盖到服务器上,曲线救国

      来自陕西
      • 六花
        小小黑
        Windows Edge
        2 年前
        2023-4-30 2:32:00

        试过了这俩方法都不行,折磨 2 周了,本地可以正常加载不需要验证码,移动到服务器上还需要扫码登陆╥﹏╥

        来自广西
        • 博主
          六花
          Android Chrome
          2 年前
          2023-5-01 1:04:33

          这种一般是 tx 封堵了接口,可以关注 go-cqhttp 的项目地址,更到最新版或者跟作者提 issue

          来自陕西
          • 六花
            小小黑
            Windows Edge
            2 年前
            2023-5-01 1:26:23

            好的感谢答复

            来自广西
  6. a
    Windows Firefox
    2 年前
    2023-2-04 15:51:59

    进入虚拟环境而且已经安装好依赖之后依然提示 ModuleNotFoundError: No module named 'nonebot.adapters'怎么办,Python3.10

    来自北京
    • 博主
      a
      Windows Chrome
      2 年前
      2023-2-06 14:38:48

      运行 pip install nonebot-adapter-onebot 安装依赖,如果还是报错,参考这个教程

      来自陕西
  7. a
    Windows Firefox
    2 年前
    2023-2-04 0:26:42

    安装依赖那一步安装 pyyaml 总是报错怎么办

    来自北京
    • 博主
      a
      Windows Chrome
      已编辑
      2 年前
      2023-2-04 9:42:12
      • python 版本是否为 3.8 或以上
      • 是否进入了虚拟环境
      • 详细报错内容是什么
      来自陕西

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(*^▽^*)
 ̄﹃ ̄
(╯‵□′)╯︵┴─┴
(~ ̄▽ ̄)~
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
( ͡° ͜ʖ ͡°)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
つ﹏⊂
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
(´▽`ʃ♡ƪ)
w(゚Д゚)w
(๑•̀ㅂ•́)و✧
(#`O′)
凸 (艹皿艹 )
o(≧口≦)o
≡ω≡
(*/ω\*)
○| ̄|_
(⊙ˍ⊙)
Σ(っ °Д °;)っ
o( ̄ヘ ̄o#)
<( ̄︶ ̄)>
(。・∀・)ノ゙
(o゜▽゜)o☆
╥﹏╥
ヾ(´・ω・`)ノ
😂
😀
😅
😊
🙂
😍
😘
😜
😝
😏
😒
🙄
😳
😔
😫
😱
😭
😶
🌚
😣
🤨
😣
🤐
😪
🤤
🥵
🤮
😨
😱
😓
🤬
👴
🤡
🙈
💊
🙏
🤺
💩
👻
🙌
🖕
👍
👫
👌
🙏
👀
🐒
🔪
Source: github.com/zhheo/Sticker-Heo
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
Heo
花!
上一篇
下一篇