Manutencao
Verificacao de Saude
Checklist Diario
# 1. Todos os servicos rodando?
docker service ls
# 2. Algum servico com replicas 0/1?
docker service ls | awk '$3 ~ /0\//'
# 3. Logs de erro recentes?
docker service logs marie_ai_backend --since 1h 2>&1 | grep ERROR
docker service logs marie_ai_frontend --since 1h 2>&1 | grep ERROR
Checklist Semanal
# 1. Espaco em disco
df -h
# 2. Uso de memoria
free -h
# 3. Imagens Docker antigas
docker image ls --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}\t{{.CreatedSince}}"
# 4. Containers parados
docker ps -a --filter "status=exited"
Limpeza de Imagens Docker
# Remover imagens nao utilizadas (com confirmacao)
docker image prune -a
# Remover apenas imagens sem tag
docker image prune
# Remover tudo (imagens, containers parados, networks nao usadas)
docker system prune -a
Warning
docker system prune -a remove todas as imagens nao usadas por containers ativos. O proximo deploy precisara fazer pull novamente.
Backup de Dados
RabbitMQ
Os dados ficam em /mnt/data/rabbitmq. Para backup:
sudo tar -czf /tmp/rabbitmq-backup-$(date +%Y%m%d).tar.gz /mnt/data/rabbitmq
WhatsApp Sessions
As sessoes ficam em /mnt/data/whatsapp. Para backup:
sudo tar -czf /tmp/whatsapp-backup-$(date +%Y%m%d).tar.gz /mnt/data/whatsapp
MongoDB
O MongoDB Atlas tem backup automatico. Para backup manual:
mongodump --uri="mongodb+srv://..." --db=dev-marie --out=/tmp/mongo-backup-$(date +%Y%m%d)
Variaveis de Ambiente
sudo tar -czf /tmp/env-backup-$(date +%Y%m%d).tar.gz /opt/marie_ai_backend/.env /opt/marie_ai_frontend/.env /opt/webhook_whatsapp/.env
Atualizar Imagem Base dos Servicos
Para atualizar Go-Whatsmeow ou RabbitMQ para versao mais recente:
# Editar a tag da imagem no docker-compose.yml
nano ~/stacks/whatsapp/docker-compose.yml
# Redeployar
docker stack deploy -c ~/stacks/whatsapp/docker-compose.yml whatsapp
Monitorar Uso de Recursos
# Uso de CPU/memoria por container
docker stats --no-stream
# Uso de disco por volume
du -sh /mnt/data/*
Renovar Certificados / Tokens
| Item | Renovacao |
|---|---|
| Cloudflare Tunnel | Automatica |
| RD Station OAuth2 | Automatica (via backend) |
| MongoDB Atlas | Sem expiracao (connection string) |
| Google API Key | Sem expiracao |
| GCS Service Account | Sem expiracao (chave privada) |
| SSH Keys | Manual (rotacionar periodicamente) |