6.0 KiB
6.0 KiB
🐳 Deploy em Produção - Bot de Ajuda Telegram
📦 ARQUIVOS CRIADOS
🔧 Arquivos Docker
- ✅
Dockerfile- Configuração da imagem Docker - ✅
docker-compose.yml- Orquestração de containers - ✅
.dockerignore- Otimização do build
⚙️ Arquivos de Configuração
- ✅
.env.production- Template de configuração de produção - ✅
deploy.sh- Script de deploy para Linux/Mac - ✅
deploy.ps1- Script de deploy para Windows
🚀 INSTRUÇÕES DE DEPLOY
Pré-requisitos:
- 🐳 Docker instalado
- 🔧 Docker Compose instalado
- 🔑 Token do bot do Telegram
- 🌐 Acesso SSH aos equipamentos
1. Configurar Ambiente
Linux/Mac:
# Copiar template de configuração
cp .env.production .env
# Editar configurações
nano .env
Windows:
# Copiar template de configuração
Copy-Item .env.production .env
# Editar configurações
notepad .env
2. Configurar Variáveis (arquivo .env)
# Token do Bot (OBRIGATÓRIO)
TELEGRAM_BOT_TOKEN=7673419014:AAGK7HNBYMMWl-bTNc5VBAl4FDLutMBx7pc
# SSH (OBRIGATÓRIO)
DEFAULT_SSH_HOST=131.0.192.254
DEFAULT_SSH_USER=rodrigo
DEFAULT_SSH_PASSWORD=@102030Rod
# Bot
BOT_DEBUG=false
NODE_ENV=production
# Usuários autorizados
ALLOWED_USERS=593272271
3. Deploy Automatizado
Linux/Mac:
chmod +x deploy.sh
./deploy.sh
Windows:
.\deploy.ps1
4. Deploy Manual
# Build e iniciar
docker-compose up -d --build
# Verificar status
docker-compose ps
# Ver logs
docker-compose logs -f telegram-bot
🏗️ ARQUITETURA DO CONTAINER
Base Image: node:18-alpine
- 📦 Tamanho otimizado (~50MB)
- 🔒 Segurança aprimorada
- ⚡ Performance superior
Características de Segurança:
- 👤 Usuário não-root (
botuser) - 🛡️ Permissões restritivas
- 🔐 Variáveis de ambiente seguras
- 📋 Health checks automáticos
Recursos do Container:
- 💾 Memória: 256MB-512MB
- ⚡ CPU: 0.25-0.5 cores
- 📊 Logs: Rotação automática (10MB, 3 arquivos)
- 🔄 Restart: unless-stopped
🎛️ GERENCIAMENTO
Comandos Essenciais:
# Ver status
docker-compose ps
# Ver logs em tempo real
docker-compose logs -f telegram-bot
# Reiniciar bot
docker-compose restart telegram-bot
# Parar bot
docker-compose down
# Atualizar e reiniciar
docker-compose up -d --build
# Limpar logs
docker-compose logs --tail=0 telegram-bot
# Executar comando no container
docker-compose exec telegram-bot npm --version
Monitoramento:
# CPU e Memória
docker stats bot-ajuda-telegram
# Health check
docker-compose ps telegram-bot
# Logs de erro
docker-compose logs telegram-bot | grep ERROR
📊 VOLUMES E PERSISTÊNCIA
Logs Persistentes:
- 📁
./logs→/app/logs - 🔄 Rotação automática
- 📝 Formato JSON estruturado
Configuração:
- 🔧 Variáveis via
.env - 🔒 Secrets via Docker Compose
- 📋 Configuração read-only no container
🚨 TROUBLESHOOTING
Bot não inicia:
# Verificar configuração
docker-compose config
# Ver logs de erro
docker-compose logs telegram-bot
# Verificar variáveis
docker-compose exec telegram-bot env | grep TELEGRAM
Erro de SSH:
# Testar conectividade
docker-compose exec telegram-bot ping 131.0.192.254
# Verificar credenciais
docker-compose logs telegram-bot | grep SSH
Bot não responde:
# Health check manual
docker-compose exec telegram-bot node -e "console.log('Bot is running')"
# Verificar logs do Telegram
docker-compose logs telegram-bot | grep TelegramError
🔄 ATUALIZAÇÕES
Atualizar código:
# Parar bot
docker-compose down
# Atualizar código (git pull, etc.)
# Rebuild e reiniciar
docker-compose up -d --build
Atualizar dependências:
# Rebuild sem cache
docker-compose build --no-cache
docker-compose up -d
🔒 SEGURANÇA EM PRODUÇÃO
Variáveis Sensíveis:
- 🔑 Nunca commitar arquivo
.env - 🔐 Usar Docker secrets em produção
- 🛡️ Restringir acesso ao servidor
Monitoramento:
- 📊 Logs de tentativas de acesso
- 🚨 Alertas de falhas
- 📈 Métricas de uso
Backup:
- 💾 Backup regular da configuração
- 📋 Documentar usuários autorizados
- 🔄 Plano de disaster recovery
📈 MÉTRICAS E LOGS
Logs Importantes:
# Comandos executados
docker-compose logs telegram-bot | grep "📨 Mensagem"
# Operações SSH
docker-compose logs telegram-bot | grep "SSH"
# Acessos negados
docker-compose logs telegram-bot | grep "🚫 Acesso negado"
# Errors
docker-compose logs telegram-bot | grep "❌"
Monitoramento Automático:
- 🔍 Health checks a cada 30s
- 📊 Restart automático em falhas
- 📝 Logs estruturados para análise
🎯 COMANDOS DE PRODUÇÃO
Deploy inicial:
git clone <repo>
cd bot-ajuda
cp .env.production .env
# Editar .env com credenciais reais
./deploy.sh
Manutenção diária:
# Ver status
docker-compose ps
# Ver logs recentes
docker-compose logs --tail=50 telegram-bot
# Restart se necessário
docker-compose restart telegram-bot
Deploy de atualização:
git pull
docker-compose down
docker-compose up -d --build
docker-compose logs --tail=20 telegram-bot
✅ RESULTADO FINAL
Após o deploy bem-sucedido, você terá:
- 🤖 Bot rodando em container Docker
- 🔒 Usuário restrito e seguro
- 📊 Logs persistentes e organizados
- 🔄 Restart automático em falhas
- 📈 Monitoramento via health checks
- 🛡️ Variáveis de ambiente seguras
- ⚡ Performance otimizada
Para testar: Envie /start para o bot no Telegram!
🎉 PRONTO PARA PRODUÇÃO!
Seu bot agora está:
- ✅ Containerizado e isolado
- ✅ Configurado para produção
- ✅ Monitorado automaticamente
- ✅ Seguro e restrito
- ✅ Fácil de gerenciar e atualizar
Deploy completo e bot em produção! 🚀🎯