Este guia detalha o processo de implantação de um bot QQ utilizando a estrutura Mirai, gerenciada eficientemente com Docker Compose. Abordaremos desde a instalação das ferramentas essenciais até a configuração dos plugins e permissões necessárias para o funcionamento do seu bot.
- Instalação do Docker
O primeiro paso é garantir que o Docker esteja instalado em seu sistema operacional. Execute o seguinte script oficial para uma instalação rápida:
curl -sSL https://get.docker.com/ | sh
- Instalação do Docker Compose
Após a instalação do Docker, é necessário configurar o Docker Compose, uma ferramenta crucial para orquestrar aplicações multi-contêineres. Siga os comandos abaixo:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Para verificar se a instalação foi bem-sucedida, execute:
docker-compose --version
- Gerenciamento Visual com Portainer
Para uma administração visual e simplificada de seus contêineres Docker, recomendamos o Portainer. Execute o comando abaixo para implantar o Portainer Community Edition (CE):
docker run -d -p 9000:9000 \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
--name portainer \
portainer/portainer-ce:latest
Após a inicialização, acesse o Portainer através do seu navegador em http://seu_endereco_ip:9000 e siga as instruções para configurar uma senha de administrador.
- Configurando o Mirai com Docker Compose
Crie um arquivo chamado docker-compose.yml em um diretório de sua escolha. Este arquivo definirá os serviços necessários para o seu bot Mirai.
nano docker-compose.yml
Insira o seguinte conteúdo no arquivo. Este setup inclui um serviço VNC (novnc) para o login inicial do Mirai e o serviço principle do bot (mirai-cqhttp-bot):
version: '3.8'
services:
# Serviço VNC para acesso visual ao Mirai (necessário para login interativo)
novnc:
image: theasp/novnc:latest
restart: always
environment:
DISPLAY_WIDTH: 425
DISPLAY_HEIGHT: 900
RUN_XTERM: 'no'
ports:
- '11180:8080' # Porta para acessar o VNC via navegador
# Serviço principal do bot Mirai, utilizando a imagem mirai-cqhttp
mirai-cqhttp-bot:
image: nanahira/mirai-cqhttp:x
restart: always
ports:
- '6700:6700' # Porta padrão para o protocolo HTTP/WS do bot
volumes:
- ./data:/usr/src/app/data # Para dados persistentes do Mirai
- ./config:/usr/src/app/config # Para arquivos de configuração
- ./bots:/usr/src/app/bots # Para armazenar dados específicos do bot
- ./plugins:/usr/src/app/plugins # Para os plugins do Mirai
stdin_open: true # Permite interação via console para o processo de login
environment:
DISPLAY: novnc:0.0 # Conecta o Mirai ao ambiente gráfico do novnc
QQ_ID: SEU_ID_QQ # SUBSTITUA pelo número do seu QQ
QQ_PASS: SUA_SENHA_QQ # SUBSTITUA pela sua senha do QQ (cuidado: texto claro)
WS_PORT: 6700 # Porta para o WebSocket
WS_TOKEN: SUA_CHAVE_SECRETA # Token para autenticação de API (SUBSTITUA)
TZ: Asia/Shanghai # Define o fuso horário para o bot
Importante: Lembre-se de substituir SEU_ID_QQ, SUA_SENHA_QQ e SUA_CHAVE_SECRETA pelos seus dados reais. Considere usar variáveis de ambiente ou secrets para senhas em ambientse de produção.
- Executando o Mirai e Login Inicial
No diretório onde você criou o docker-compose.yml, inicie os serviços:
docker-compose up
O Mirai irá iniciar e tentar fazer login. Para concluir o processo (que pode exigir verificação), acesse a interface VNC em seu navegador:
http://seu_endereco_ip:11180/vnc.html
Na tela do VNC, siga as instruções para escanear um código QR ou usar o método de link/código de verificação no seu aplicativo QQ móvel. Após a verificação bem-sucedida e o login do bot, você pode parar o contêiner com Ctrl+C e então iniciá-lo novamente em modo "detacached" (segundo plano) se desejar:
docker-compose up -d
- Instalação de Plugins Essenciais
Para estender as funcionalidades do seu bot Mirai, instale os seguintes plugins:
chat-command: Permite executar comandos diretamente no chat, prefixados com/.mirai-api-http: Oferece suporte HTTP e WebSocket para integração com outras linguagens de programação e ferramentas.
Baixe os arquivos .jar das últimas versões desses plugins nos respectivos repositórios de release (geralmente no GitHub). Em seguida, interrompa os serviços do Docker Compose se estiverem em execução (docker-compose down) e coloque os arquivos .jar baixados no diretório plugins. Este diretório corresponde ao volume ./plugins que você mapeou no seu docker-compose.yml.
Se você enfrentar problemas de permissão para gravar no diretório plugins, pode precisar ajustar as permissões do diretório local ou, alternativamente, usar a interface do Portainer (http://seu_endereco_ip:9000/#/containers) para acessar o volume e fazer o upload dos arquivos.
Após adicionar os plugins, reinicie o Docker Compose:
docker-compose up -d
Os logs indicarão o carregamento dos plugins e a criação de arquivos de configuração padrão no diretório config.
- Configuração dos Plugins
7.1. Gerenciamento de Permissões
Para conceder acesso de administrador ao seu bot, edite o arquivo PermissionService.yml, que estará localizado em ./config/PermissionService.yml:
nano ./config/PermissionService.yml
Localize a seção de permissões e adicione os IDs QQ dos usuários que você deseja que sejam administradores. O formato para um usuário individual é u:SEU_ID_QQ. Por exemplo:
# Exemplo de conteúdo do PermissionService.yml
permissions:
# Permissão padrão para o console
- console:*
# Adicione seu ID QQ como administrador para todas as funcionalidades
- u:1234567890:* # Substitua 1234567890 pelo seu ID QQ
O curinga * após o ID concede acesso a todas as funcionalidades de todos os plugins. Salve as alterações e saia do editor.
7.2. Configuração do Protocolo HTTP/WS (mirai-api-http)
Edite o arquivo de configuração do plugin mirai-api-http, que se encontra em ./config/mirai-api-http/setting.yml:
nano ./config/mirai-api-http/setting.yml
Certifique-se de que os seguintes parâmetros estejam ajustados para permitir que seu bot seja acessível de fora do contêiner e utilize o token de segurança correto:
host: Defina como0.0.0.0para permitir conexões de qualquer endereço IP.porteverifyKey: Devem corresponder aos valores (6700eSUA_CHAVE_SECRETA) que você definiu no seudocker-compose.yml.
Um exemplo da seção relevante no setting.yml:
## Configurações para adapters
adapterSettings:
http:
host: 0.0.0.0
port: 6700
cors: ["*"] # Permite CORS de qualquer origem, ajuste conforme necessário para segurança
ws:
host: 0.0.0.0
port: 6700
reservedSyncId: -1
## Ativar verificação de chave
enableVerify: true
verifyKey: SUA_CHAVE_SECRETA # Deve corresponder a WS_TOKEN no docker-compose.yml
Salve as alterações e saia.
- Finalização
Após todas as configurações terem sido aplicadas, reinicie o Docker Compose uma última vez para que as alterações entrem em vigor:
docker-compose up -d
Seu bot QQ Mirai está agora totalmente configurado e pronto para uso, com suporte a comandos de chat e integração HTTP/WebSocket para desenvolvimento e automação avançada.