折腾了两天,终于是让机器人跑起来了,接下来废话少说,直接展现怎么在群晖docker上搭建獭獭机器人。

首先是总体流程

部署go-cqhttp登录连接獭窝

部署go-cqhttp

我们要用的就是这个:

image-20230411223225468

第一步:开启群晖ssh连接

如何快速开启群晖SSH功能以及创建root账号群晖开启ssh游猫-cium的博客-CSDN博客

第二步:下载finalshell或其他ssh工具

因为群晖本身的docker过于难用,而群晖其实是可以运行docker compose的,我们就是通过ssh连接群晖来运行docker compose。

以下是我用的finalshell

下载后的finalshell打开后应是:

image-20230411223842830

第三步:连接你的群晖

点击左上角的蓝色文件夹,选择ssh连接。

image-20230411224124702

然后就是填写信息进去,这个我应该不必多说。

image-20230411224318451

连接进去后应该是这样的:

image-20230411225024528

现在假设你已经创建好了root账号,没创建好的返回第一步,输入sudo -i然后输入密码,不显示输入的密码是正常的

image-20230411225550517

然后就可以开始照着go-cqhttp的文档照抄下去了。

第四步:照抄文档

1.

输入以下命令,拉取go-cqhttp的Docker镜像

docker pull ghcr.io/mrs4s/go-cqhttp:master

部署在服务器的Docker不适宜用交互式界面生成配置文件,因此您需要事先准备好你的配置文件。我们假设您准备好的配置文件本地路径位于/path/to/config.yml

您也可以同时准备好设备文件device.json,此时我们一样假设本地路径为/path/to/device.json

关于位置:

这个的意思是我们需要自行新建一个文件夹,我们打开群晖自身的File Station,在 docker下面自行创建一个文件下,名字随意,只是最好方便到时候自行cd,到时候我们自行生成的配置也要上传到这里。**记得教程里的命令也替换成你的路径!**

image-20230411231716680

关于配置文件:

我在部署的时候就在这里卡了非常非常久,接下来介绍一个办法,我们在window版本上配置好了之后,直接把配置完的两个文件上传到群晖就好了。

注意要用rc5的版本,最新版的有bug。

image-20230411230410618

点击仍要运行

image-20230411230554114

输入02

image-20230411230738133

但其实输入什么都没有关系,因为我们的配置是从獭窝下载的。

重启后再启动一次,这时候就会生成两个文件了。

image-20230411230939337

但是这还没有完,因为我也不知道为什么的原因,用当前的协议登陆老是失败,我们需要修改一下协议。

我们点开device.json,按下ctrl+f,搜索 protocol,然后把后面的数字改成 2,意思是用手表的协议,这样子比较容易登录。

在这些都做完之后,我们就可以把文件上传上去了,但是如果你不打算自建獭窝,本教程也不涉及自建獭窝,其实为我们只需要上传devicce.json,而config.yml我们可以从獭窝下载,而獭窝怎么配置我不过多赘述,它的教程已经很详细了。

image-20230411232120126

记得把这个下载config.yml也上传上去。

2.

接下来输入以下命令以启动go-cqhttp

docker run \
-v /path/to/config.yml:/data/config.yml \
-v /path/to/device.json:/data/device.json \
-p 2333:8080 \
-d \
--name cqhttp \
ghcr.io/mrs4s/go-cqhttp:master

接下来逐行解释上面的命令:

  • docker run 代表命令 Docker 启动容器。
  • -v /path/to/config.yml:/data/config.yml 代表将本地计算机中的/path/to/config.yml映射至容器内的/data/config.yml。 Docker既支持文件映射也支持文件夹映射,因此若您需要读取音视频缓存文件,您可以直接替换-v /path/to/config.yml:/data/config.yml -v /path/to/device.json:/data/device.json-v /path/to/data:/data
  • -p 2333:8080 若您配置了正向服务器(包括正向HTTP、正向WebSocket),您需要通过这个命令将容器内服务器端口暴露至本地计算机。该命令代表将容器内8080端口映射至主机2333端口。在主机内可以通过localhost:2333来访问容器。 若您只配置了反向服务器,则无需输入该行命令。
  • -d 以后台形式运行。若没有这个选项将会实时显示程序输出。
  • --name cqhttp 定义容器名为cqhttp
  • ghcr.io/mrs4s/go-cqhttp:master 镜像的地址。

在以后台形式运行时,您会获得一个容器的识别码,形式如下:

$ docker run \
-v /path/to/config.yml:/data/config.yml \
-v /path/to/device.json:/data/device.json \
-p 2333:8080 \
-d \
--name cqhttp \
ghcr.io/mrs4s/go-cqhttp:master
aa89d8943600a653b7e06a9d404fd6396b33c5c4e3b37d28c27df2437b3df033 # 这个就是容器的识别码

3.

运行后,请务必查看容器的log,因为go-cqhttp可能会要求您扫码验证。获取log的命令如下:

docker container logs cqhttp

此处,cqhttp为容器名,若您忘记定义容器名,可以替换为容器识别码。

确认登陆成功后,请再一次获取log,以确认go-cqhttp正常运行。

至此,您已经学会了如何通过Docker快速部署go-cqhttp。

登录

上文提了一嘴下载獭窝配置好的config.yml,我并不建议用密码登录,因为用密码登录要滑条验证,不如直接扫码来的要快,但是群晖自带的日志是看不到二维码的,这非常非常蛋疼!

image-20230411233049058

群晖好感度-1

所以说,我们再用一用上述教程里的查log,在finalshell里面可以扫二维码

docker container logs cqhttp

image-20230411233152478

记得在finalshell里扫

扫完之后,至此,go-cqhttp已经登录成功来,接下来就是连接大脑——獭窝了,因为我个人能力太差,实在没法自建獭窝,所以很遗憾我提供不了自建獭窝教程,只能连接别人的獭窝,但这一点因为獭爹的教程已经很完备了,我就不用再造同一个轮子了。

在连接成功之后,我们的bot连接了大脑(獭窝),搭好了嘴(go-cqhttp),恭喜你,你就拥有了一个属于自己的獭獭bot!:)