Operação · Produção

Infraestrutura.

Servidor de produção, containers, bancos, nginx, SSL, backups e procedimentos operacionais — tudo o que sustenta a operação 24/7.

Servidor principal

  • IP: 187.77.62.141
  • Acesso: SSH como root
  • Sistema: Linux (Ubuntu LTS)
  • Disco: SSD, com rotação de logs e limpeza de cache configuradas
  • Antecessor: 185.255.131.41 (migrado e desligado em 26/02/2026)

Orquestração — Docker Compose

Toda a stack roda em containers Docker, orquestrados por docker-compose.prod.yml:

ContainerFunçãoPorta interna
irb-apiAPI REST principal (Fastify)3000
irb-workerWorkers BullMQ assíncronos
irb-dashboardPainel React servido por nginx80
irb-postgresBanco relacional5432
irb-redisCache + filas6379
irb-mongoBanco documental27017
irb-bullboardMonitoramento de filas3001 (localhost)

Hardening

O painel BullBoard está restrito a localhost — só acessível via túnel SSH. Isso evita exposição pública das filas internas.

Nginx

Front-end HTTP da máquina. Cuida de:

  • TLS (Let's Encrypt, renovação automática)
  • Roteamento por domínio (irb.saraiva.ai, reinf.irb.saraiva.ai, entrega.irb.saraiva.ai)
  • Proxy para os containers
  • Compressão gzip

Domínios e SSL

DomínioAponta paraCertificado
irb.saraiva.aiPainel + API principalLet's Encrypt
reinf.irb.saraiva.aiPortal de comprovantesLet's Encrypt
entrega.irb.saraiva.aiEsta documentaçãoLet's Encrypt

Renovação automática via certbot.timer.

Procedimento de deploy

Para subir uma nova versão da API ou do dashboard:

```bash

1. Sincronizar arquivos para o servidor

rsync -avz --exclude node_modules --exclude .git \

irb-whatsapp-ai/ root@187.77.62.141:/opt/irb-whatsapp-ai/

2. Build e restart dos containers afetados

ssh root@187.77.62.141

cd /opt/irb-whatsapp-ai

docker compose -f docker-compose.prod.yml build --no-cache irb-api

docker compose -f docker-compose.prod.yml up -d irb-api

```

Importante: o .dockerignore é essencial. Sem ele, o COPY no Dockerfile sobrescreve os node_modules instalados pelo pnpm dentro do container.

Variáveis de ambiente principais

Todas em /opt/irb-whatsapp-ai/.env no servidor:

  • KLINGO_LOGIN, KLINGO_SENHA, KLINGO_DOMAIN
  • UAZAPI_URL, UAZAPI_TOKEN
  • ASAAS_API_KEY, ASAAS_WEBHOOK_TOKEN
  • OPENAI_API_KEY, ANTHROPIC_API_KEY
  • POSTGRES_*, MONGO_*, REDIS_*
  • JWT_SECRET

Manutenção realizada

  • 04/05/2026 — Limpeza de cache Docker (49 GB) + rotação de logs (16 GB) = 65 GB liberados
  • 19/03/2026 — BullBoard restrito a localhost (hardening de segurança)
  • 26/02/2026 — Migração do servidor antigo 185.255.131.41 para o atual

Backup

PostgreSQL e MongoDB têm volumes Docker persistentes em /var/lib/docker/volumes/. Recomenda-se configurar snapshot diário do volume e backup off-site — a operação a partir daqui é decisão da IRB sobre o provedor.

Healthcheck

GET /api/health retorna o status atual de cada serviço integrado. Útil para configurar monitoramento externo (Uptime Robot, BetterStack, etc).