Files
rodrigonet/PRODUCTION-DEPLOY.md
T
2026-04-04 23:23:42 -03:00

6.3 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! 🚀🎯