disco - Shell Interativo
Ferramenta de Gerenciamento Discourse com Notificações via Telegram
| Resumo | Um wrapper de linha de comando para gerenciamento do Discourse com interface de menu interativa e notificações automáticas via Telegram para operações de manutenção | |
| Link do Repositório | GitHub - DigneZzZ/discourse-cli: Discourse CLI interface with TG events when rebuild · GitHub | |
| Documentação | Guia de Instalação · Início Rápido · Exemplos |
Introdução
Olá, pessoal!
Quero compartilhar uma solução que criei enquanto gerenciava meu fórum da comunidade. Como muitos de vocês, tenho um grupo no Telegram para minha comunidade e estava constantemente recebendo perguntas sobre “O fórum está fora do ar?” ou “Quando a manutenção vai acabar?” sempre que precisava atualizar ou reiniciar o Discourse.
Para resolver isso (e facilitar minha vida), criei o disco - um wrapper de linha de comando para gerenciamento do Discourse que inclui notificações automáticas via Telegram e uma interface de menu interativa.
Que Problema Ele Resolve
- Fim das perguntas “O fórum está fora do ar?” - notificações automáticas para seu grupo no Telegram
- Gerenciamento simplificado - menu interativo em vez de memorizar comandos do launcher
- Segurança em primeiro lugar - confirmações para operações perigosas (rebuild, stop, cleanup)
- Melhor visibilidade - status em tempo real, logs e monitoramento de recursos
- Solução de problemas mais rápida - todas as operações em um só lugar com saída clara
Recursos
Interface de Menu Interativa
Execute disco sem argumentos para obter um menu numerado e bonito:
╔════════════════════════════════════════════════════════════╗
║ 🚀 Discourse Manager v1.2.0 ║
║ 📦 Container: app | Status: 🟢 Running ║
╚════════════════════════════════════════════════════════════╝
1. 📊 Mostrar Status
2. 🔄 Reiniciar Container
3. 📝 Ver Logs (últimas 100 linhas)
4. 📺 Monitor em Tempo Real
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
5. 🔧 Rebuild Completo (com atualizações) ⚠
6. ⚡ Rebuild Rápido
7. 💾 Criar Backup
8. 🧹 Limpar Recursos do Docker ⚠
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
9. ▶️ Iniciar Container
10. ⏸️ Parar Container ⚠
11. 🐚 Acessar Shell do Container
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
12. 📥 Atualizar Launcher
13. 📱 Testar Notificações via Telegram
14. ⚙️ Mostrar Configuração
15. 🔄 Atualizar disco
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
0. ❌ Sair
Recursos:
- Basta digitar um número (1-15) para selecionar a ação
- Status do container em tempo real no cabeçalho
- Avisos visuais (
) para operações críticas - Confirmações de segurança - digite “sim” para confirmar ações perigosas
- Detecção inteligente de sudo - avisa quando são necessários privilégios de root
Notificações via Telegram
Notificações automáticas mantêm sua comunidade informada:
Quando o rebuild começa:
🔧 O fórum entrará em manutenção
⏱ Tempo estimado: ~10 minutos
Pedimos desculpas pelo inconveniente temporário.
Quando concluído:
✅ O fórum está de volta online!
⏱ Tempo de manutenção: 7m 57s
🔖 Versão: 3.2.0.beta4
Obrigado pela sua paciência! 🚀
Em caso de erros:
❌ Falha na atualização do fórum
⏱ Duração da tentativa: 3m 12s
⚠️ Atenção do administrador necessária!
Verifique os logs: disco logs
Monitoramento e Diagnóstico
Visão Geral do Status:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 Status do Discourse
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📦 Container: app
🟢 Status: Em execução
⏱ Tempo de atividade: 3 dias
🔖 Versão: 3.2.0.beta4
💻 CPU: 2.5%
🧠 Memória: 1.2GB / 4GB
Recursos:
- Uso de CPU e memória em tempo real
- Rastreamento do tempo de atividade do container
- Detecção automática de versão via API
- Monitoramento de logs em tempo real com modo de acompanhamento
- Painel de monitoramento de recursos
Recursos de Segurança
- Prompts de confirmação para operações críticas (rebuild, stop, cleanup)
- Detecção de sudo - avisa quando são necessários privilégios
- Exibição de versão - sempre saiba qual versão está em execução
- Avisos detalhados - explica exatamente o que cada ação crítica fará
Operações Rápidas
Todas as operações padrão do Discourse disponíveis:
- Gerenciamento de container - iniciar, parar, reiniciar, acessar shell
- Manutenção - rebuild (completo/rápido), backup, limpeza
- Monitoramento - status, logs, monitor de recursos em tempo real
- Atualizações - atualizações do launcher com um único comando
Instalação
Instalação Rápida
# Baixar e instalar
curl -o disco https://raw.githubusercontent.com/DigneZzZ/discourse-cli/main/disco
chmod +x disco
sudo mv disco /usr/local/bin/
# Verificar instalação
disco version
# Iniciar menu interativo
disco
Configuração
Configuração Básica
Crie um arquivo de configuração em um dos seguintes locais:
~/.disco.env(recomendado)/etc/disco/.env- Ao lado do script
# Copiar configuração de exemplo
curl -o ~/.disco.env https://raw.githubusercontent.com/DigneZzZ/discourse-cli/main/.env.example
# Editar configurações
nano ~/.disco.env
Exemplo de Configuração
# Configurações básicas
DISCOURSE_PATH=/var/discourse
CONFIG_NAME=app
# Notificações via Telegram (opcional)
TELEGRAM_BOT_TOKEN=1234567890:ABCdefGHIjklMNOpqrsTUVwxyz
TELEGRAM_CHAT_ID=-1001234567890
TELEGRAM_THREAD_ID=1
Configurando Notificações via Telegram
1. Criar um bot:
- Envie uma mensagem para @BotFather no Telegram
- Envie o comando
/newbot - Siga as instruções
- Salve o token do bot
2. Obter o Chat ID:
- Envie qualquer mensagem para seu bot
- Acesse:
https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates - Encontre
"chat":{"id":...}na resposta
3. Obter o Thread ID (para grupos com tópicos):
- Envie uma mensagem para o tópico desejado em seu grupo
- Na resposta do getUpdates, encontre
message_thread_id
4. Testar notificações:
disco test-telegram
Uso
Menu Interativo (Recomendado)
# Iniciar menu interativo
disco
# Com sudo para ações administrativas
sudo disco
Basta digitar o número da ação que deseja realizar!
Modo de Linha de Comando
Para automação ou operações rápidas:
# Status e monitoramento
disco status # Mostrar status do container
disco logs # Ver últimas 100 linhas
disco logs 500 # Ver últimas 500 linhas
disco monitor # Monitoramento de recursos em tempo real
# Gerenciamento de container
sudo disco start # Iniciar container
sudo disco stop # Parar container
sudo disco restart # Reiniciar container
disco enter # Acessar shell do container
# Manutenção
sudo disco rebuild # Rebuild completo com atualizações
sudo disco fast-rebuild # Rebuild rápido (sem atualização do launcher)
sudo disco backup # Criar backup (nome automático)
sudo disco backup my-name # Criar backup (nome personalizado)
sudo disco cleanup # Limpar recursos do Docker
# Utilitários
sudo disco update-launcher # Atualizar launcher do Discourse
disco test-telegram # Testar notificações via Telegram
disco show-config # Mostrar configuração do disco
disco version # Mostrar versão
disco help # Mostrar ajuda
Configurações
| Nome | Descrição | Padrão | Obrigatório |
|---|---|---|---|
DISCOURSE_PATH |
Caminho para o diretório de instalação do Discourse | /var/discourse |
Não |
CONFIG_NAME |
Nome da configuração do container | app |
Não |
TELEGRAM_BOT_TOKEN |
Token do bot do Telegram do @BotFather | - | Não (para notificações) |
TELEGRAM_CHAT_ID |
ID do chat ou grupo do Telegram para notificações | - | Não (para notificações) |
TELEGRAM_THREAD_ID |
ID do thread em grupo com tópicos | - | Não (opcional) |
Casos de Uso
Gerente de Comunidade
- Mantenha a comunidade informada durante a manutenção automaticamente
- Fim das perguntas “o fórum está fora do ar?”
- Notificações de manutenção profissionais
Administrador de Sistema
- Menu interativo para tarefas ocasionais de gerenciamento
- Confirmações de segurança previnem acidentes
- Acesso rápido a logs e status
Equipes de DevOps
- Modo CLI para automação e scripts
- Operações consistentes entre membros da equipe
- Integração fácil com sistemas de monitoramento
Impacto no Mundo Real
Desde a implantação desta ferramenta:
Zero perguntas “o fórum está fora do ar?” em nosso grupo do Telegram
Operações de manutenção mais rápidas - sem troca de contexto entre terminal e mensagens
Menos erros durante atualizações - as confirmações de segurança funcionam!
Melhor monitoramento - acesso rápido a logs e uso de recursos
Documentação
- Guia de Instalação - Instruções detalhadas de instalação
- Guia de Início Rápido - Comece em 5 minutos
- Documentação de Recursos - Recursos do menu interativo explicados
- Exemplos de Uso - Fluxos de trabalho e cenários do mundo real
- Changelog - Histórico de versões
Por Que Criei Isso
Gerenciar o Discourse através do launcher padrão é poderoso, mas:
- Os comandos são difíceis de memorizar
- Não há sistema de notificação integrado para a comunidade
- É fácil cometer erros com operações críticas
- Membros da comunidade sempre perguntam sobre indisponibilidade
O disco envolve o launcher com uma interface amigável e mantém todos informados automaticamente.
Contribuindo
Contribuições são bem-vindas! Se você tem ideias ou sugestões:
- Faça um fork do repositório
- Crie uma branch de funcionalidade
- Faça suas alterações
- Envie um Pull Request
Ou simplesmente abra uma issue com seu feedback!
Licença
Licença MIT - completamente gratuita para usar e modificar.
Repositório no GitHub: GitHub - DigneZzZ/discourse-cli: Discourse CLI interface with TG events when rebuild · GitHub