Bot Discord automatizado para execução de scripts de deploy em servidores EC2 com interface visual em tempo real e sistema completo de logs.
- Execução de Scripts: Execute scripts
.sh
diretamente através de comandos Discord - Progresso em Tempo Real: Monitore o progresso do deploy com atualizações visuais ao vivo
- Sistema de Logs Completo: Geração automática de logs e anexo após cada execução
- Sistema de Segurança: Proteção por senha e controle de usuários autorizados
- Gerenciamento Dinâmico: Adicione novos scripts sem reiniciar o bot
- Gerenciamento de Mensagens: Comandos para limpar histórico do canal
- Listagem de Scripts: Visualize todos os scripts disponíveis e seus caminhos
Executa um script de deploy com acompanhamento visual do progresso em tempo real.
Parâmetros:
script
: Selecione o script da lista disponívelpassword
: Senha de segurança
Adiciona um novo script à lista de scripts disponíveis.
Parâmetros:
nome
: Nome do script (deve terminar com.sh
)caminho
: Caminho completo para o arquivo do scriptpassword
: Senha de segurança
Lista todos os scripts disponíveis com seus respectivos caminhos.
Remove mensagens do canal atual.
Parâmetros:
quantidade
: Número de mensagens para deletar (1-100)password
: Senha de segurança
- Node.js 16.9.0 ou superior
- Servidor Discord com permissões de bot
- Acesso ao servidor onde os scripts serão executados
-
Clonar Repositório
git clone https://github.com/seu-usuario/discord-deploy-bot.git cd discord-deploy-bot
-
Instalar Dependências
npm install
-
Configuração do Ambiente
Crie um arquivo
.env
na raiz do projeto:# Configuração do Bot Discord BOT_TOKEN=seu_token_do_bot_aqui CLIENT_ID=seu_client_id_aqui GUILD_ID=seu_guild_id_aqui # Segurança PASSWORD=sua_senha_segura_aqui ALLOWED_USERS=id_usuario1,id_usuario2,id_usuario3 # Configuração de Arquivos SCRIPTS_FILE=scripts.json
-
Configuração de Scripts
Crie um arquivo
scripts.json
com seus scripts iniciais:{ "deploy-frontend.sh": "../frontend/deploy.sh", "deploy-backend.sh": "../backend/deploy.sh", "restart-services.sh": "/opt/scripts/restart.sh" }
-
Iniciar Bot
npm start
discord-deploy-bot/
├── .env # Variáveis de ambiente
├── .gitignore # Arquivos ignorados pelo git
├── package.json # Dependências e scripts
├── README.md # Documentação
├── index.js # Arquivo principal do bot
├── messages.js # Mensagens centralizadas
└── scripts.json # Lista de scripts disponíveis
- Acesse o Portal de Desenvolvedores Discord
- Clique em "New Application"
- Defina o nome da aplicação
- Navegue para a aba "Bot"
- Clique em "Add Bot"
- Copie o token e adicione ao
.env
O bot requer as seguintes permissões:
- Enviar Mensagens
- Usar Comandos Slash
- Gerenciar Mensagens
- Anexar Arquivos
- Ler Histórico de Mensagens
Use o link gerado no Portal de Desenvolvedores Discord com as permissões necessárias.
- BOT_TOKEN: Token do bot Discord
- PASSWORD: Senha para execução de comandos
- ALLOWED_USERS: Lista de IDs de usuários autorizados
- Mantenha o
.env
fora do controle de versão - Use senhas fortes
- Limite usuários autorizados
- Monitore logs de execução
- Mantenha scripts em diretórios seguros
Cada execução gera um log abrangente contendo:
- Timestamp da execução
- Nome do script executado
- Status (sucesso/erro)
- Saída completa do script
- Mensagens de erro (se houver)
Os logs são automaticamente anexados às respostas e removidos após 5 segundos.
O bot usa códigos ANSI para criar uma interface colorida e informativa:
┌─────────────────────────────────────┐
│ EXECUTANDO: deploy-frontend.sh │
└─────────────────────────────────────┘
✓ [ETAPA 1/5] Permissões verificadas
✓ [ETAPA 2/5] Código baixado do GitHub
⧗ [ETAPA 3/5] Executando deploy...
- Verificação de Permissões: Valida acesso ao script
- Download do GitHub: Simula recuperação de código atualizado
- Execução do Deploy: Executa o script selecionado
- Build e Processamento: Processa saída em tempo real
- Finalização: Gera log e anexa resultado
- Verifique se o bot está online
- Confirme permissões no servidor
- Valide token no
.env
- Verifique correção do caminho no
scripts.json
- Confirme permissões de execução do arquivo
- Teste execução manual do script
- Verifique se seu ID está em
ALLOWED_USERS
- Confirme se a senha está correta
- Teste com outro usuário autorizado
- Adicione comandos em
createSlashCommands()
- Implemente handler em
handleNomeComando()
- Adicione mensagens em
messages.js
- Registre no switch case principal
Edite o arquivo messages.js
para personalizar:
- Cores e formatação
- Textos das etapas
- Mensagens de erro
- Mensagens de sucesso
Variável | Descrição | Obrigatório |
---|---|---|
BOT_TOKEN |
Token do bot Discord | Sim |
CLIENT_ID |
ID do cliente da aplicação Discord | Sim |
GUILD_ID |
ID do servidor Discord (opcional para comandos globais) | Não |
PASSWORD |
Senha para execução de comandos | Sim |
ALLOWED_USERS |
Lista separada por vírgulas de IDs de usuários autorizados | Não |
SCRIPTS_FILE |
Caminho para arquivo de configuração de scripts | Não |
O arquivo scripts.json
segue esta estrutura:
{
"nome-script.sh": "/caminho/para/script.sh",
"outro-script.sh": "/outro/caminho/script.sh"
}