Setup Inicial
Procedimento para configurar o ambiente do zero em um novo servidor.
Pre-requisitos
- VM Ubuntu com Docker instalado
- Docker Swarm inicializado (
docker swarm init) - Acesso SSH configurado
- IP do servidor na whitelist do MongoDB Atlas
1. Criar Network Overlay
docker network create --driver overlay --attachable network_swarm_01
2. Criar Diretorios de Dados
sudo mkdir -p /mnt/data/rabbitmq
sudo mkdir -p /mnt/data/whatsapp
sudo mkdir -p /opt/marie_ai_backend
sudo mkdir -p /opt/marie_ai_frontend
sudo mkdir -p /opt/webhook_whatsapp
mkdir -p ~/stacks/rabbitmq
mkdir -p ~/stacks/whatsapp
3. Configurar Variaveis de Ambiente
sudo nano /opt/marie_ai_backend/.env
sudo nano /opt/marie_ai_frontend/.env
sudo nano /opt/webhook_whatsapp/.env
Ver Variaveis de Ambiente para a lista completa.
4. Deploy RabbitMQ
# Copiar docker-compose.yml para ~/stacks/rabbitmq/
docker stack deploy -c ~/stacks/rabbitmq/docker-compose.yml rabbitmq
Verificar:
docker service ls | grep rabbitmq
docker service logs rabbitmq_rabbitmq --tail 20
5. Deploy WhatsApp API
# Copiar docker-compose.yml para ~/stacks/whatsapp/
docker stack deploy -c ~/stacks/whatsapp/docker-compose.yml whatsapp
Verificar:
docker service ls | grep whatsapp
docker service logs whatsapp_whatsapp --tail 20
6. Configurar GitHub Secrets
No GitHub (Settings > Environments > marie_ai_swarm_manager_01), adicionar todos os secrets listados em Secrets.
7. Primeiro Deploy via CI/CD
Fazer um push na branch main de cada repositorio para disparar o build e deploy automatico.
# Em cada repo, se necessario forcar:
git commit --allow-empty -m "ci: trigger first deploy" && git push origin main
8. Verificar Servicos
docker service ls
docker service logs marie_ai_backend --tail 20
docker service logs marie_ai_frontend --tail 20
docker service logs webhook_whatsapp --tail 20
9. Configurar Cloudflare Tunnel
Configurar os dominios no dashboard do Cloudflare Tunnel apontando para os servicos internos.
10. Configurar MongoDB Atlas
- Network Access: adicionar IP do servidor
- Verificar que o cluster e database existem
- Rodar migracoes se necessario
11. Configurar RD Station
- Marketing: configurar OAuth2 (client_id, client_secret, refresh_token)
- CRM: obter token da API v1
- Configurar webhooks apontando para
https://marie.exemple.com/api/webhook/rdstation
12. Vincular WhatsApp
Acessar a API do Go-Whatsmeow via Cloudflare Tunnel e escanear o QR code para vincular o dispositivo.