系统版本:Ubuntu20.04
1. Docker安装postgres
docker库:https://hub.docker.com/_/postgres
1.1 拉取镜像
docker pull postgres
1.2 运行镜像
docker run -it --name postgres --restart always \
-e TZ='Asia/Shanghai' \
-e POSTGRES_PASSWORD='password' \
-e ALLOW_IP_RANGE=0.0.0.0/0 \
-v /opt/postgres/data:/var/lib/postgresql \
-p 5432:5432 -d postgres
参数解释:
- --name postgres #容器名称为postgres 可自行更改
- --restart always #总是开机启动
- -e TZ='Asia/Shanghai' #时区
- -e POSTGRES_PASSWORD='password' #数据库密码设置 自行更改
- -e ALLOW_IP_RANGE=0.0.0.0/0 #放行远端IP
- -v /opt/postgres/data:/var/lib/postgresql #容器映射的本地路径为/opt/postgres/data 可自行更改
- -p 5432:5432 #映射的端口为5432 可自行更改
1.3 创建数据库
我设置的容器名称为 postgres ,所以根据docker名进入容器内的命令为
docker exec -it postgres bash
然后一条一条的复制如下命令
su - postgres # 切换用户
psql
# 创建用户 #用户名↓ # 密码↓
CREATE USER zhenxun WITH PASSWORD 'zhenxunpassword';
# 创建库 #数据库名称↓ #用户名↓
CREATE DATABASE zhenxundata OWNER zhenxun;
#创建完成敲几遍exit退出docker容器即可
2. Docker安装真寻bot
docker库:https://hub.docker.com/r/hibikier/zhenxun_bot
2.1 拉取镜像
docker pull hibikier/zhenxun_bot
2.2 运行镜像
docker run \
--name zhenxun_bot \
--network=host \
-v /opt/zhenxun_bot:/bot \ #映射路径 可自行更改
-e SU='管理员企鹅号' \ #(可选)
-e DB='数据库链接地址' \ #(可选)
hibikier/zhenxun_bot:latest
# 确保映射的目录 /opt/zhenxun_bot 为空
2.3 设置配置文件
首次运行后会在映射文件夹下生成zhenxun_bot文件,首先在里面找到.env.dev 文件并打开,然后在SUPERUSERS中添加自己的QQ,如果在运行docker的时候已经设置了超级管理员qq,应该配置文件里已经修改好了。
SUPERUSERS=["123456789"]
然后再打开 configs/config.py 设置数据库
from typing import Optional
from pathlib import Path
from .utils import ConfigsManager
# 回复消息名称
NICKNAME: str = "小真寻"
# 数据库(必要)
# 如果填写了bind就不需要再填写后面的字段了#)
# 示例:"bind": "postgresql://user:password@127.0.0.1:5432/database"
bind: str = "postgresql://zhenxun:zhenxunpassword@127.0.0.1:5432/zhenxundata" # 数据库连接链接
sql_name: str = "postgresql"
user: str = "" # 数据用户名
password: str = "" # 数据库密码
address: str = "" # 数据库地址
port: str = "" # 数据库端口
database: str = "" # 数据库名称
# 代理,例如 "http://127.0.0.1:7890"
SYSTEM_PROXY: Optional[str] = None # 全局代理
Config = ConfigsManager(Path() / "data" / "configs" / "plugins2config.yaml")
打开 configs/config.yaml 设置插件api 其他api也可自行申请
alapi:
# alapi
# ALAPI_TOKEN: 在https://admin.alapi.cn/user/login登录后获取token
ALAPI_TOKEN:
设置好后,再重启zhenxun_bot docker
输入
docker logs zhenxun_bot
查看运行日志,没有报错即可。
3. Docker安装gocqhttp
docker库:https://hub.docker.com/r/pcrbot/gocqhttp
3.1 拉取镜像
docker pull pcrbot/gocqhttp:ffmpeg
3.2 运行镜像
docker run --rm -it --name gocqhttp --network=host -v /opt/gocqhttp_data:/data -v /opt/zhenxun_bot:/bot pcrbot/gocqhttp:ffmpeg
首次运行会让你选择通信方式,选择 3(反向Websocket通信),会生成一个配置文件config.yml,打开config.yml文件
- 将uin修改为bot账号
- password最好也填上,扫码登录有时候会失效
- 将 universal: ws://your_websocket_universal.server 修改为 universal: ws://127.0.0.1:8080/onebot/v11/ws/
account: # 账号相关
uin: 1234567 # 机器人QQ账号
password: '1234' # 密码为空时使用扫码登录
encrypt: false # 是否开启密码加密
status: 12 # 在线状态 请参考 https://docs.go-cqhttp.org/guide/config.html#在线状态
# 连接服务列表
servers:
# 添加方式,同一连接方式可添加多个,具体配置说明请查看文档
#- http: # http 通信
#- ws: # 正向 Websocket
#- ws-reverse: # 反向 Websocket
#- pprof: #性能分析服务器
# 反向WS设置
- ws-reverse:
# 反向WS Universal 地址
# 注意 设置了此项地址后下面两项将会被忽略
universal: ws://127.0.0.1:8080/onebot/v11/ws/
# 反向WS API 地址
api: ws://your_websocket_api.server
# 反向WS Event 地址
event: ws://your_websocket_event.server
# 重连间隔 单位毫秒
reconnect-interval: 3000
middlewares:
<<: *default # 引用默认中间件
3.3 查看日志
再次运行gocqhttp docker
docker run -d --name gocqhttp --network=host -v /opt/gocqhttp_data:/data -v /opt/zhenxun_bot:/bot pcrbot/gocqhttp:ffmpeg
查看日志
docker logs gocqhttp
如果没有报错即可正常使用机器人了,命令文档在此链接可以查看https://hibikier.github.io/zhenxun_bot/docs/help_doc/plugins_index.html