Pular para conteúdo

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.