HibiKier / zhenxun_bot

基于 Nonebot2 开发,非常可爱的绪山真寻bot
GNU Affero General Public License v3.0
3.35k stars 605 forks source link

真寻群晖Docker部署指南 #1175

Closed RealKiro closed 2 months ago

RealKiro commented 1 year ago

前言

基础架构

- go-cqhttp
    - xxx
    - config.yml
    - xxx
- zhenxun_bot
    - xxx
    - configs
        - config.py
    - xxx
- postgresql
    - 数据库名如database或zhenxundb
    - 默认端口为5432

部署方案

参考

环境

  1. 绪山真寻Bot 下载源码文件,上传到新建好的zhenxun_bot目录内并解压到当前目录(解压后有子目录可能需要手动移动)

    • [ ] 【可选】如果你是采用Docker Ubuntu安装方式,推荐一键脚本,否则直接跳到第3步
      
      apt-get update

    apt-get install curl bash -y

    bash <(curl -s -L https://raw.githubusercontent.com/zhenxun-org/zhenxun_bot-deploy/master/install.sh)

  2. 进入zhenxun_bot/configs文件夹,修改config.py文件中的postgresql数据库:

    bind: str = "postgresql://用户名:密码@192.168.0.100:15432/zhenxundb"  # 数据库连接链接
      • 注:
      • postgresql官方默认用户名为 postgres
      • 密码的变量为POSTGRES_PASSWORD,可自定义
      • IP为本人自建的(非内置)postgres的群晖IP:192.168.0.100
        • [ ] 如果是内置数据库,可不修改直接使用
      • 端口官方默认为5432,与群晖某个服务冲突,故映射为 15432
      • 数据库名为zhenxundb,可自定义
  3. 【可选】启动 Docker:PostGres

    • 使用自建,不使用内置PostgresSQL
    • 密码为环境变量中的POSTGRES_PASSWORD 自定义密码,与真寻的config配置一致
    • 端口映射:15432:5432
    • 使用Adminer可视化管理工具登录后手动创建名为zhenxundb的数据库(否则启动真寻后可能会报错)
  4. 【可选】启动 Docker:go-cqhttp

    • 使用自建,不使用内置
    • 启动后自动生成config.yaml文件,修改config.yaml文件

      • 添加QQ机器人账号

      • 修改、添加反代

      • ws-reverse:

        反向WS Universal 地址(zhenxunbot)

        注意 设置了此项地址后下面两项将会被忽略

        universal: ws://192.168.0.100:8082/onebot/v11/ws

        反向WS API 地址

        api: ws://your_websocket_api.server

        反向WS Event 地址

        event: ws://your_websocket_event.server

        重连间隔 单位毫秒

        reconnect-interval: 3000 middlewares: <<: *default # 引用默认中间件

      • ws-reverse:

        反向WS Universal 地址(傻妞sillyGirl)

        注意 设置了此项地址后下面两项将会被忽略

        universal: ws://192.168.0.100:8777/qq/receive

        反向WS API 地址

        api: ws://your_websocket_api.server

        反向WS Event 地址

        event: ws://your_websocket_event.server

        重连间隔 单位毫秒

        reconnect-interval: 3000 middlewares: <<: *default # 引用默认中间件

        • 真寻Bot使用8080端口,群晖其它服务被占用故映射端口为8082
  5. 启动 Docker 真寻全量版

    • WebUI环境变量:
      • 用户名 webui_user= admin ,可自定义
      • 密码 webui_passwd = 123456,可自定义
    • 端口映射:
      • WebUI可视化面板: 8081:80
      • 真寻bot端口:80828080
    • 存储卷映射:
      • 目录:docker/zxbot/zhenxun_bot:/home/zhenxun_bot

问题

RealKiro commented 1 year ago

@HibiKier 一键脚本中的go-cqhttp和postgressql可以设置为可选项吗?

NathanSummer commented 1 year ago

前言

基础架构

- go-cqhttp
  - xxx
  - config.yml
  - xxx
- zhenxun_bot
  - xxx
  - configs
      - config.py
  - xxx
- postgresql
  - 数据库名如database或zhenxundb
  - 默认端口为5432

部署方案

  • Linux环境直接部署

    • 推荐Ubuntu20.04,Python环境要求3.8或3.9
    • 优点:脚本一键部署简单直接
    • 缺点:不易管理和维护,没有方便易用的进程守护
  • 群晖Docker方案

    • Docker间接方案

    • Docker安装Ubuntu,通过Ubuntu一键部署或手搓

    • 优点:体积小,Ubuntu原版镜像不到80M

    • 缺点:需装依赖,其它同Linux

    • Docker直接方案

    • Docker pull 镜像安装

    • 优点:

      • 易维护,开箱即用
      • 环境简洁纯净,对其它服务无干扰
      • go-cqhttp可配合傻妞或其它服务复用
    • 缺点:

      • 体积大,启动慢

参考

环境

  • 群晖

    • Docker

配置

  1. 在群晖docker目录下新建目录zxbot,并创建~两~个子目录:

    • ~go-cqhttp~ (如果你是自建go-cqhttp则不需要)
    • zhenxun_bot
  2. 绪山真寻Bot 下载源码文件,上传到新建好的zhenxun_bot目录内并解压到当前目录(解压后有子目录可能需要手动移动)
  • [ ] 【可选】如果你是采用Docker Ubuntu安装方式,推荐一键脚本,否则直接跳到第3步

    apt-get update
    
    apt-get install curl bash -y
    
    bash <(curl -s -L https://raw.githubusercontent.com/zhenxun-org/zhenxun_bot-deploy/master/install.sh)
  1. 进入zhenxun_bot/configs文件夹,修改config.py文件中的postgresql数据库:
    bind: str = "postgresql://用户名:密码@192.168.0.100:15432/zhenxundb"  # 数据库连接链接
    • 注:

    • postgresql官方默认用户名为 postgres

    • 密码的变量为POSTGRES_PASSWORD,可自定义

    • IP为本人自建的(非内置)postgres的群晖IP:192.168.0.100

      • [ ] 如果是内置数据库,可不修改直接使用
    • 端口官方默认为5432,与群晖某个服务冲突,故映射为 15432

    • 数据库名为zhenxundb,可自定义

  1. 【可选】启动 Docker:PostGres

    • 使用自建,不使用内置PostgresSQL
    • 密码为环境变量中的POSTGRES_PASSWORD 自定义密码,与真寻的config配置一致
    • 端口映射:15432:5432
    • 使用Adminer可视化管理工具登录后手动创建名为zhenxundb的数据库(否则启动真寻后可能会报错)
  2. 【可选】启动 Docker:go-cqhttp

    • 使用自建,不使用内置
    • 启动后自动生成config.yaml文件,修改config.yaml文件

      • 添加QQ机器人账号
      • 修改、添加反代
      - ws-reverse:
         # 反向WS Universal 地址(zhenxunbot)
         # 注意 设置了此项地址后下面两项将会被忽略
         universal: ws://192.168.0.100:8082/onebot/v11/ws
         # 反向WS API 地址
         api: ws://your_websocket_api.server
         # 反向WS Event 地址
         event: ws://your_websocket_event.server
         # 重连间隔 单位毫秒
         reconnect-interval: 3000
         middlewares:
           <<: *default # 引用默认中间件
      
      - ws-reverse:
         # 反向WS Universal 地址(傻妞sillyGirl)
         # 注意 设置了此项地址后下面两项将会被忽略
         universal: ws://192.168.0.100:8777/qq/receive
         # 反向WS API 地址
         api: ws://your_websocket_api.server
         # 反向WS Event 地址
         event: ws://your_websocket_event.server
         # 重连间隔 单位毫秒
         reconnect-interval: 3000
         middlewares:
           <<: *default # 引用默认中间件      
      • 真寻Bot使用8080端口,群晖其它服务被占用故映射端口为8082
  1. 启动 Docker 真寻全量版

    • WebUI环境变量:

      • 用户名 webui_user= admin ,可自定义
      • 密码 webui_passwd = 123456,可自定义
    • 端口映射:

      • WebUI可视化面板: 8081:80
      • 真寻bot端口:80828080
    • 存储卷映射:

      • 目录:docker/zxbot/zhenxun_bot:/home/zhenxun_bot

问题

  • 全量版内置go-cqhttp无反应,自建的go-cqhttp真寻和傻妞都正常
  • WebUI可视化面板不可用

那就是说要在全量版的基础上自建go-cqhttp嘛?