【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
運行成功有如下顯示
進入novnc獲取驗證碼
連接上後獲得畫面,但是現在docker裡面沒有安裝中文字體
登錄手機QQ
在novnc介面獲取鏈接,會在剪貼板顯示,將這個鏈接發送給要登陸的手機QQ(掃描驗證碼啥的
用已經登陸的機器人帳號打開它
ctrl+c中止這個docker,然後重新docker-compose up,即登陸成功
那麼這樣子機器人就搭好了
安裝基本的插件
這裡要安裝兩個插件,找到最新release並下載jar包
- chat-command: 允許在聊天環境通過以 “/” 起始的消息執行指令
- mirai-api-http:提供 HTTP 支援,允許使用其他程式語言的插件
安裝前要停止docker,進入docker可視化工具Portainer
將這兩個文件上傳到plugins,如果無法上傳,那麼在mirai目錄下使用命令
意思為你可以用這個帳號對這個目錄下的文件為所欲為
chown -R 你的用戶名 *
上傳完成後,重新docker-compose up,以下命令代表成功載入插件
第一次載入會在config目錄下生成配置文件
接下來要做的就是再次停止這個docker,去編輯config目錄下的文件
編輯配置文件
新增管理員
找到PermissionService.yml文件,並編輯它
可以看到現在只有控制台有許可權
*:*的意思是,所有插件的所有功能
在下面添加管理員(注意要和上一行匹配
其中u就是個體,user的意思,也可以添加群來管理,前綴是g
保存並退出,那麼基本的設置就已經解決了
http協議設置
編輯http插件目錄下的setting文件
因為我們是在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
這下基本上全好了
以上就是mirai基本操作