Pular para conteúdo

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)