【2022.04.19】Docker-compose一鍵安裝mirai,搭建QQ機械人最快方法

先用官方的腳本安裝下docker

curl -sSL //get.docker.com/ | sh

安裝docker-compose

curl -L "//github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

然後驗證一下版本號,有的話就安裝成功了
docker-compose --version

安裝可視化的docker來管理其他docker

docker run -d -p 9000:9000 \
    --restart=always \
    -v /var/run/docker.sock:/var/run/docker.sock \
    --name prtainer \
    portainer/portainer

在文件目錄下新建docker-compose.yml文件

nano docker-compose.yml

在文件中填入以下內容並保存

version: '3'
services:
  novnc:
    restart: always
    image: theasp/novnc:latest
    environment:
      DISPLAY_WIDTH: 425
      DISPLAY_HEIGHT: 900
      RUN_XTERM: 'no'
    ports:
      - 11180:8080
  cqhttp:
    restart: always
    image: nanahira/mirai-cqhttp:x
    ports:
      - '6700:6700'
    volumes:
      - ./data:/usr/src/app/data
      - ./config:/usr/src/app/config
      - ./bots:/usr/src/app/bots
      - ./plugins:/usr/src/app/plugins
    stdin_open: true
    environment:
      DISPLAY: novnc:0.0
      QQ_ID: 你的QQ
      QQ_PASS: 你的密碼
      WS_PORT: 6700
      WS_TOKEN: 1234567890
      TZ: Asia/Shanghai

運行docker

docker-compose up

運行成功有如下顯示

image-20220419132537839

進入novnc獲取驗證碼

//你設定的ip:11180/vnc.html

連接上後獲得畫面,但是現在docker裏面沒有安裝中文字體

登錄手機QQ

在novnc界面獲取鏈接,會在剪貼板顯示,將這個鏈接發送給要登陸的手機QQ(掃描驗證碼啥的

image-20220419132641271

用已經登陸的機械人賬號打開它

image-20220419133409020

ctrl+c中止這個docker,然後重新docker-compose up,即登陸成功

image-20220419133228670

那麼這樣子機械人就搭好了

安裝基本的插件

這裡要安裝兩個插件,找到最新release並下載jar包

  • chat-command: 允許在聊天環境通過以 “/” 起始的消息執行指令
  • mirai-api-http:提供 HTTP 支持,允許使用其他編程語言的插件

安裝前要停止docker,進入docker可視化工具Portainer

//服務器ip:9000/#/containers

image-20220419134708705

將這兩個文件上傳到plugins,如果無法上傳,那麼在mirai目錄下使用命令

意思為你可以用這個賬號對這個目錄下的文件為所欲為

chown -R 你的用戶名 *

image-20220419140313754

上傳完成後,重新docker-compose up,以下命令代表成功加載插件

第一次加載會在config目錄下生成配置文件

image-20220419140427314

接下來要做的就是再次停止這個docker,去編輯config目錄下的文件

編輯配置文件

新增管理員

找到PermissionService.yml文件,並編輯它

image-20220419140951827

可以看到現在只有控制台有權限

image-20220419141128858

*:*的意思是,所有插件的所有功能

在下面添加管理員(注意要和上一行匹配

其中u就是個體,user的意思,也可以添加群來管理,前綴是g

image-20220419141257425

保存並退出,那麼基本的設置就已經解決了

http協議設置

編輯http插件目錄下的setting文件

image-20220419141623456

因為我們是在docker中搭建的,所以host不能為localhost,要改為0.0.0.0

verifyKey和port要和docker-compose.yml文件中的匹配

## 配置文件中的值,全為默認值

## 啟用的 adapter, 內置有 http, ws, reverse-ws, webhook
adapters:
  - http
  - ws

## 是否開啟認證流程, 若為 true 則建立連接時需要驗證 verifyKey
## 建議公網連接時開啟
enableVerify: true
verifyKey: 1234567890

## 開啟一些調式信息
debug: false

## 是否開啟單 session 模式, 若為 true,則自動創建 session 綁定 console 中登錄的 bot
## 開啟後,接口中任何 sessionKey 不需要傳遞參數
## 若 console 中有多個 bot 登錄,則行為未定義
## 確保 console 中只有一個 bot 登陸時啟用
singleMode: false

## 歷史消息的緩存大小
## 同時,也是 http adapter 的消息隊列容量
cacheSize: 4096

## adapter 的單獨配置,鍵名與 adapters 項配置相同
adapterSettings:
  ## 詳情看 http adapter 使用說明 配置
  http:
    host: 0.0.0.0
    port: 6700
    cors: ["*"]
  
  ## 詳情看 websocket adapter 使用說明 配置
  ws:
    host: 0.0.0.0
    port: 6700
    reservedSyncId: -1

保存並退出

重新docker-compose up

這下基本上全好了

image-20220419142229213

以上就是mirai基本操作