Introdução/Indo para produção
Indo para produção
Guia completo para deploy da TurboZap API em produção
Checklist de produção
HTTPS habilitado (certificado SSL/TLS)
Variáveis de ambiente configuradas corretamente
Banco de dados PostgreSQL em servidor dedicado
Logs estruturados configurados
Backup automático do banco de dados
Monitoramento e alertas configurados
Rate limiting habilitado
Infraestrutura
Docker Compose (Recomendado)
docker-compose.yml
1version: '3.8'23services:4 api:5 image: turbozap-api:latest6 ports:7 - "8080:8080"8 environment:9 - DATABASE_URL=postgres://user:pass@db:5432/turbozap10 - LOG_LEVEL=info11 - LOG_FORMAT=json12 depends_on:13 - db14 restart: unless-stopped1516 db:17 image: postgres:15-alpine18 volumes:19 - postgres_data:/var/lib/postgresql/data20 environment:21 - POSTGRES_USER=turbozap22 - POSTGRES_PASSWORD=secure_password23 - POSTGRES_DB=turbozap24 restart: unless-stopped2526volumes:27 postgres_data:Requisitos mínimos
| Recurso | Mínimo | Recomendado |
|---|---|---|
| CPU | 1 vCPU | 2+ vCPUs |
| RAM | 512 MB | 2+ GB |
| Disco | 5 GB | 20+ GB SSD |
Segurança
Use HTTPS sempre
Configure um reverse proxy (Nginx, Traefik) com certificado Let's Encrypt para habilitar HTTPS.
Firewall configurado
Permita apenas portas 80, 443 e SSH. Bloqueie acesso direto à porta 8080 da API.
Rotação de API Keys
Implemente rotação periódica de API Keys e revogue chaves comprometidas imediatamente.
Aviso importante
Nunca exponha variáveis de ambiente ou API Keys em logs ou mensagens de erro em produção.
Monitoramento
A TurboZap API expõe métricas Prometheus no endpoint /metrics.
Métricas importantes
- Tempo de resposta das requisições HTTP
- Número de instâncias conectadas
- Mensagens enviadas/recebidas por minuto
- Erros por tipo
- Uso de memória e CPU
Backup e recuperação
Configure backups automáticos do PostgreSQL para garantir recuperação em caso de falhas:
Script de backup
#!/bin/bash
# backup.sh - Execute diariamente via cron
BACKUP_DIR="/backups/postgres"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
FILENAME="turbozap_$TIMESTAMP.sql.gz"
pg_dump -h localhost -U turbozap turbozap | gzip > "$BACKUP_DIR/$FILENAME"
# Manter apenas últimos 7 dias
find $BACKUP_DIR -name "*.sql.gz" -mtime +7 -deleteImportante: As sessões do WhatsApp são armazenadas no banco. Sem backup, você perderá todas as conexões em caso de falha do servidor.