# 🐳 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:** ```bash # Copiar template de configuração cp .env.production .env # Editar configurações nano .env ``` **Windows:** ```powershell # Copiar template de configuração Copy-Item .env.production .env # Editar configurações notepad .env ``` ### **2. Configurar Variáveis (arquivo .env)** ```properties # 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:** ```bash chmod +x deploy.sh ./deploy.sh ``` **Windows:** ```powershell .\deploy.ps1 ``` ### **4. Deploy Manual** ```bash # 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:** ```bash # 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:** ```bash # 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:** ```bash # 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:** ```bash # 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:** ```bash # 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:** ```bash # Parar bot docker-compose down # Atualizar código (git pull, etc.) # Rebuild e reiniciar docker-compose up -d --build ``` ### **Atualizar dependências:** ```bash # 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:** ```bash # 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:** ```bash git clone cd bot-ajuda cp .env.production .env # Editar .env com credenciais reais ./deploy.sh ``` ### **Manutenção diária:** ```bash # 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:** ```bash 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!** 🚀🎯