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'
2
3services:
4 api:
5 image: turbozap-api:latest
6 ports:
7 - "8080:8080"
8 environment:
9 - DATABASE_URL=postgres://user:pass@db:5432/turbozap
10 - LOG_LEVEL=info
11 - LOG_FORMAT=json
12 depends_on:
13 - db
14 restart: unless-stopped
15
16 db:
17 image: postgres:15-alpine
18 volumes:
19 - postgres_data:/var/lib/postgresql/data
20 environment:
21 - POSTGRES_USER=turbozap
22 - POSTGRES_PASSWORD=secure_password
23 - POSTGRES_DB=turbozap
24 restart: unless-stopped
25
26volumes:
27 postgres_data:

Requisitos mínimos

RecursoMínimoRecomendado
CPU1 vCPU2+ vCPUs
RAM512 MB2+ GB
Disco5 GB20+ 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 -delete

Importante: As sessões do WhatsApp são armazenadas no banco. Sem backup, você perderá todas as conexões em caso de falha do servidor.