Servicos Docker
RabbitMQ
Stack: /home/contato/stacks/rabbitmq/docker-compose.yml
version: "3.8"
services:
rabbitmq:
image: rabbitmq:management
hostname: rabbitmq
networks:
- network_swarm_01
volumes:
- /mnt/data/rabbitmq:/var/lib/rabbitmq/
environment:
- RABBITMQ_ERLANG_COOKIE=<cookie>
- RABBITMQ_DEFAULT_VHOST=default
- RABBITMQ_DEFAULT_USER=<user>
- RABBITMQ_DEFAULT_PASS=<pass>
deploy:
mode: replicated
replicas: 1
placement:
constraints:
- node.role == manager
resources:
limits:
cpus: "1"
memory: 1024M
healthcheck:
test: ["CMD", "rabbitmq-diagnostics", "check_running"]
interval: 30s
timeout: 10s
retries: 5
start_period: 40s
networks:
network_swarm_01:
external: true
Deploy: docker stack deploy -c docker-compose.yml rabbitmq
- Fila principal:
events(tipo quorum) - Management UI na porta 15672 (interna)
Go-Whatsmeow (WhatsApp API)
Stack: /home/contato/stacks/whatsapp/docker-compose.yml
version: "3.8"
services:
whatsapp:
image: ghcr.io/aldinokemal/go-whatsapp-web-multidevice:latest
command: [rest]
environment:
APP_HOST: "0.0.0.0"
APP_PORT: "3000"
APP_DEBUG: "false"
APP_OS: "Chrome"
APP_BASIC_AUTH: "<user>:<pass>"
APP_ACCOUNT_VALIDATION: "false"
APP_TRUSTED_PROXIES: "0.0.0.0/0"
WHATSAPP_WEBHOOK: "http://webhook_whatsapp:3000/events"
WHATSAPP_WEBHOOK_EVENTS: ""
WHATSAPP_WEBHOOK_INCLUDE_OUTGOING: "true"
volumes:
- /mnt/data/whatsapp:/app/storages
networks:
- network_swarm_01
deploy:
mode: replicated
replicas: 1
placement:
constraints:
- node.role == manager
resources:
limits:
cpus: "1.0"
memory: 1G
networks:
network_swarm_01:
external: true
Deploy: docker stack deploy -c docker-compose.yml whatsapp
Webhook
O WHATSAPP_WEBHOOK aponta para http://webhook_whatsapp:3000/events — hostname interno da network overlay. Se o service webhook_whatsapp nao estiver rodando, mensagens serao perdidas.
Eventos
WHATSAPP_WEBHOOK_EVENTS: "" vazio = todos os eventos sao enviados.
Webhook WhatsApp (Bridge)
Gerenciado via: GitHub Actions (CI/CD)
Imagem: ghcr.io/the-cmos/whatsapp_webhook_sqs
Env: /opt/webhook_whatsapp/.env
Recebe webhooks do Go-Whatsmeow e publica na fila events do RabbitMQ.
Marie AI Backend
Gerenciado via: GitHub Actions (CI/CD)
Imagem: ghcr.io/the-cmos/marie_ai
Env: /opt/marie_ai_backend/.env
Dockerfile: node:20-slim (Debian — necessario para SSL com MongoDB Atlas)
Marie AI Frontend
Gerenciado via: GitHub Actions (CI/CD)
Imagem: ghcr.io/the-cmos/marie_frontend
Env: /opt/marie_ai_frontend/.env
Dockerfile: node:20-alpine + output: "standalone" (Next.js)