• Importante: Leitura das Regras

    Você deve ler as Regras do Fórum AxTudo antes de fazer sua primeira postagem. O não cumprimento pode resultar em pontos de advertência permanentes ou em um banimento definitivo.

    Os recursos disponíveis no Fórum AxTudo são LIMPOS e SEGUROS, prontos para serem utilizados em seus projetos de desenvolvimento e testes. Para garantir que você tenha acesso total a todos os conteúdos, recomendamos que desative qualquer bloqueador de anúncios (AdBlock) enquanto navega pelo fórum.

    Aproveite sua experiência no Fórum AxTudo!

  • Passamos um tempo sem envio de e-mails, mas já foi resolvido. [Email Novo, Veja na caixa de spam]
Instalação do Chatwoot no Ubuntu 22.04 Utilizando Portainer e Traefik

Instalação do Chatwoot no Ubuntu 22.04 Utilizando Portainer e Traefik v3.10.3

Sem permissão para baixar. Registre-se é Grátis

Freitas

Membro conhecido
Membro da equipe
Administrador
Entrou
26 Abril 2021
Mensagens
137
Pontos de reação
108
Pontos
565
Localização
Brasil
Freitas enviou um novo recurso:

Instalação do Chatwoot no Ubuntu 22.04 Utilizando Portainer e Traefik - Neste tutorial, vamos passar pelos passos necessários para a instalação do Chatwoot no Ubuntu 22...

O Chatwoot é uma plataforma de suporte ao cliente de código aberto que ajuda empresas a gerenciar conversas com clientes em vários canais. Esta versão utiliza Docker para simplificar o processo de instalação e configuração, garantindo escalabilidade e flexibilidade.

Neste tutorial, vamos passar pelos passos necessários para a instalação do Chatwoot no Ubuntu 22.04, utilizando Docker via Portainer. Caso você já tenha o Portainer instalado e o Traefik (ou outro proxy reverso)...

Leia mais sobre este recurso ...
 

Freitas

Membro conhecido
Membro da equipe
Administrador
Entrou
26 Abril 2021
Mensagens
137
Pontos de reação
108
Pontos
565
Localização
Brasil

Ligações Ilimitadas no WhatsApp com WAVOIP + Chatwoot!​

Grupo Wavoip​

Wavoip (Cadastro)​

Arquivos do Vídeo​

Passo a Passo​

Código:
CHATWOOT + WAVOIP

====================================

[ 1 ] Preparar dominios e VPS
[ 2 ] Subir a Stack

====================================

# Senha ex.: 9qekEApusnMmfumLMVwe

# Exemplo de SUBS:
    - wavoipportaineryt.comunidadezdg.com.br (Portainer)
    - wavoipchatwootyt.comunidadezdg.com.br (Chatwoot)
    - wavoipevolutionyt.comunidadezdg.com.br (Evolution API)
    - [email protected]
# https://dnschecker.org/

====================================

### EXECUTAR NA VPS

    - chmod +x wavoip.sh && ./wavoip.sh

====================================

# Copiar a stack dentro d - 1
    - chatwootn.yaml

====================================

# Alterar Subdomínios:
    - Linha 10: SERVER_URL=https://wavoipevolutionyt.comunidadezdg.com.br
    - Linha 131: traefik.http.routers.evolution_v2.rule=Host(`wavoipevolutionyt.comunidadezdg.com.br`)
    - Linha 144: FRONTEND_URL=https://wavoipchatwootyt.comunidadezdg.com.br
    - Linha 258: traefik.http.routers.chatwoot.rule=Host(`wavoipchatwootyt.comunidadezdg.com.br`)
    - Linha 284: traefik.http.routers.chatwoot.rule=Host(`wavoipchatwootyt.comunidadezdg.com.br`)

# Alterar Secret Keys (Tokens):
    - Linhas 11 e 143

====================================

# Liberar Wavoip no Superadmin
# Criar Conexão na Evolution
    - https://app.wavoip.com/assets/logo_dark.ff9e035e.png
# Configurar Token Wavoip na Caixa de Entrada
# Conectar Wavoip na Evolution
    - CUPOM: ZDG40

wavoip.sh​


Código:
#!/bin/bash

print_banner() {

  clear

  printf "\n\n"

  printf "${GREEN}";
  printf " █████████      ███████         █████████\n";
  printf "       ███      ███    ██       ███      \n";
  printf "     ███        ███    ███      ███      \n";
  printf "   ███          ███    ███      ███  ████\n";
  printf " ███            ███    ██       ███    ██\n";
  printf " █████████      ███████         █████████\n";
  printf "\n";
  printf "\n";
  printf " © COMUNIDADE ZDG - comunidadezdg.com.br\n";
  printf "${NC}";

  printf "\n"
}

# Função para verificar se o Docker está instalado
check_docker() {
    if ! [ -x "$(command -v docker)" ]; then
        echo "Docker não está instalado. Instalando Docker..."
        sudo apt update
        sudo apt install docker.io -y
        sudo systemctl start docker
        sudo systemctl enable docker
    else
        echo "Docker já está instalado."
    fi
}

# Função para verificar se o Docker Compose está instalado
check_docker_compose() {
    print_banner
    if ! [ -x "$(command -v docker-compose)" ]; then
        echo "Docker Compose não está instalado. Instalando Docker Compose..."
        sudo apt update
        sudo apt install docker-compose -y
    else
        echo "Docker Compose já está instalado."
    fi
}

# Solicitar o domínio para o Portainer
print_banner
read -p "Digite o domínio para o Portainer (ex: portainer.comunidadezdg.com.br): " DOMAIN

# Solicitar o email para o Traefik
read -p "Digite o seu email para o Traefik (ex: [email protected]): " EMAIL

# Verificar e instalar Docker e Docker Compose
check_docker
check_docker_compose

# Criar a rede interna 'chatwoot'
print_banner
echo "Criando rede Docker chamada 'chatwoot'..."
docker network create chatwoot

# Criar diretório para o Traefik
print_banner
echo "Configurando o Traefik..."
mkdir traefik
cd traefik

# Criar arquivo docker-compose.yml para Traefik
cat <<EOL > docker-compose.yml
version: '3'

services:
  traefik:
    image: traefik:v2.10
    command:
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.websecure.address=:443"
      - "--certificatesresolvers.myresolver.acme.tlschallenge=true"
      - "--certificatesresolvers.myresolver.acme.email=$EMAIL"
      - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
    ports:
      - "80:80"
      - "443:443"
      - "8080:8080"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
      - "./letsencrypt:/letsencrypt"
    networks:
      - chatwoot

networks:
  chatwoot:
    external: true
EOL

# Iniciar o Traefik
docker-compose up -d
cd ..

# Criar diretório para o Portainer
print_banner
echo "Configurando o Portainer..."
mkdir portainer
cd portainer

# Criar arquivo docker-compose.yml para Portainer
cat <<EOL > docker-compose.yml
version: '3'

services:
  portainer:
    image: portainer/portainer-ce
    command: -H unix:///var/run/docker.sock
    container_name: portainer
    ports:
      - "9000:9000"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"
      - "portainer_data:/data"
    networks:
      - chatwoot
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.portainer.rule=Host(\`$DOMAIN\`)"
      - "traefik.http.routers.portainer.entrypoints=websecure"
      - "traefik.http.routers.portainer.tls.certresolver=myresolver"
      - "traefik.http.services.portainer.loadbalancer.server.port=9000"

networks:
  chatwoot:
    external: true

volumes:
  portainer_data:
EOL

# Iniciar o Portainer
docker-compose up -d

print_banner
echo "Configuração do Traefik e Portainer concluída com sucesso!"
echo "O Portainer está disponível no domínio: https://$DOMAIN"

chatwootn.yaml​


Código:
# Alterar Subdomínios:
    - Linha 10: SERVER_URL=https://wavoipevolutionyt.comunidadezdg.com.br
    - Linha 131: traefik.http.routers.evolution_v2.rule=Host(`wavoipevolutionyt.comunidadezdg.com.br`)
    - Linha 144: FRONTEND_URL=https://wavoipchatwootyt.comunidadezdg.com.br
    - Linha 258: traefik.http.routers.chatwoot.rule=Host(`wavoipchatwootyt.comunidadezdg.com.br`)
    - Linha 284: traefik.http.routers.chatwoot.rule=Host(`wavoipchatwootyt.comunidadezdg.com.br`)

# Alterar Secret Keys (Tokens):
    - Linhas 11 e 143
Código:
services:
  evolution2:
    image: atendai/evolution-api:v2.1.0
    networks:
      - chatwoot
    entrypoint: >
      /bin/sh -c "docker-entrypoint.sh && ./Docker/scripts/deploy_database.sh && apk add git && rm -rfv ./evolution-scripts && git clone https://github.com/wavoip/evolution-scripts.git && chmod 777 -R ./evolution-scripts && ./evolution-scripts/sync_wavoip_docker.sh && npm run start:prod"
    environment:
      - REDIS_PASSWORD=
      - SERVER_URL=https://wavoipevolutionyt.comunidadezdg.com.br
      - AUTHENTICATION_API_KEY=teste
      - AUTHENTICATION_EXPOSE_IN_FETCH_INSTANCES=true
      - LANGUAGE=en
      - DEL_INSTANCE=false
      - DATABASE_PROVIDER=postgresql
      - DATABASE_CONNECTION_URI=postgresql://evolution2:evolution2@postgres:5432/evolution2?schema=public
      - DATABASE_SAVE_DATA_INSTANCE=true
      - DATABASE_SAVE_DATA_NEW_MESSAGE=true
      - DATABASE_SAVE_MESSAGE_UPDATE=true
      - DATABASE_SAVE_DATA_CONTACTS=true
      - DATABASE_SAVE_DATA_CHATS=true
      - DATABASE_SAVE_DATA_LABELS=true
      - DATABASE_SAVE_DATA_HISTORIC=true
      - DATABASE_CONNECTION_CLIENT_NAME=evolution2
      #Rabbitmq
      - RABBITMQ_ENABLED=false
      - RABBITMQ_URI=amqp://admin:admin@rabbitmq:5672/default
      - RABBITMQ_EXCHANGE_NAME=evolution
      - RABBITMQ_GLOBAL_ENABLED=false
      - RABBITMQ_EVENTS_APPLICATION_STARTUP=false
      - RABBITMQ_EVENTS_INSTANCE_CREATE=false
      - RABBITMQ_EVENTS_INSTANCE_DELETE=false
      - RABBITMQ_EVENTS_QRCODE_UPDATED=false
      - RABBITMQ_EVENTS_MESSAGES_SET=false
      - RABBITMQ_EVENTS_MESSAGES_UPSERT=true
      - RABBITMQ_EVENTS_MESSAGES_EDITED=false
      - RABBITMQ_EVENTS_MESSAGES_UPDATE=false
      - RABBITMQ_EVENTS_MESSAGES_DELETE=false
      - RABBITMQ_EVENTS_SEND_MESSAGE=false
      - RABBITMQ_EVENTS_CONTACTS_SET=false
      - RABBITMQ_EVENTS_CONTACTS_UPSERT=false
      - RABBITMQ_EVENTS_CONTACTS_UPDATE=false
      - RABBITMQ_EVENTS_PRESENCE_UPDATE=false
      - RABBITMQ_EVENTS_CHATS_SET=false
      - RABBITMQ_EVENTS_CHATS_UPSERT=false
      - RABBITMQ_EVENTS_CHATS_UPDATE=false
      - RABBITMQ_EVENTS_CHATS_DELETE=false
      - RABBITMQ_EVENTS_GROUPS_UPSERT=false
      - RABBITMQ_EVENTS_GROUP_UPDATE=false
      - RABBITMQ_EVENTS_GROUP_PARTICIPANTS_UPDATE=false
      - RABBITMQ_EVENTS_CONNECTION_UPDATE=true
      - RABBITMQ_EVENTS_CALL=false
      - RABBITMQ_EVENTS_TYPEBOT_START=false
      - RABBITMQ_EVENTS_TYPEBOT_CHANGE_STATUS=false
      #SqS
      - SQS_ENABLED=false
      - SQS_ACCESS_KEY_ID=
      - SQS_SECRET_ACCESS_KEY=
      - SQS_ACCOUNT_ID=
      - SQS_REGION=
      - WEBSOCKET_ENABLED=false
      - WEBSOCKET_GLOBAL_EVENTS=false
      - WA_BUSINESS_TOKEN_WEBHOOK=evolution
      - WA_BUSINESS_URL=https://graph.facebook.com
      - WA_BUSINESS_VERSION=v20.0
      - WA_BUSINESS_LANGUAGE=pt_BR
      #Webhook
      - WEBHOOK_GLOBAL_URL=''
      - WEBHOOK_GLOBAL_ENABLED=false
      - WEBHOOK_GLOBAL_WEBHOOK_BY_EVENTS=false
      - WEBHOOK_EVENTS_APPLICATION_STARTUP=false
      - WEBHOOK_EVENTS_QRCODE_UPDATED=true
      - WEBHOOK_EVENTS_MESSAGES_SET=true
      - WEBHOOK_EVENTS_MESSAGES_UPSERT=true
      - WEBHOOK_EVENTS_MESSAGES_EDITED=true
      - WEBHOOK_EVENTS_MESSAGES_UPDATE=true
      - WEBHOOK_EVENTS_MESSAGES_DELETE=true
      - WEBHOOK_EVENTS_SEND_MESSAGE=true
      - WEBHOOK_EVENTS_CONTACTS_SET=true
      - WEBHOOK_EVENTS_CONTACTS_UPSERT=true
      - WEBHOOK_EVENTS_CONTACTS_UPDATE=true
      - WEBHOOK_EVENTS_PRESENCE_UPDATE=true
      - WEBHOOK_EVENTS_CHATS_SET=true
      - WEBHOOK_EVENTS_CHATS_UPSERT=true
      - WEBHOOK_EVENTS_CHATS_UPDATE=true
      - WEBHOOK_EVENTS_CHATS_DELETE=true
      - WEBHOOK_EVENTS_GROUPS_UPSERT=true
      - WEBHOOK_EVENTS_GROUPS_UPDATE=true
      - WEBHOOK_EVENTS_GROUP_PARTICIPANTS_UPDATE=true
      - WEBHOOK_EVENTS_CONNECTION_UPDATE=true
      - WEBHOOK_EVENTS_LABELS_EDIT=true
      - WEBHOOK_EVENTS_LABELS_ASSOCIATION=true
      - WEBHOOK_EVENTS_CALL=true
      - WEBHOOK_EVENTS_TYPEBOT_START=false
      - WEBHOOK_EVENTS_TYPEBOT_CHANGE_STATUS=false
      - WEBHOOK_EVENTS_ERRORS=false
      - WEBHOOK_EVENTS_ERRORS_WEBHOOK=
      - CONFIG_SESSION_PHONE_CLIENT=Evolution API V2
      - CONFIG_SESSION_PHONE_NAME=Chrome
      - CONFIG_SESSION_PHONE_VERSION=2.3000.1015901307 # https://web.whatsapp.com/check-update?version=0&platform=web
      - QRCODE_LIMIT=30
      #Openai
      - OPENAI_ENABLED=true
      #Dify
      - DIFY_ENABLED=true
      #Typebot
      - TYPEBOT_ENABLED=true
      - TYPEBOT_API_VERSION=latest
      #Chatwoot
      - CHATWOOT_ENABLED=true
      - CHATWOOT_MESSAGE_READ=true
      - CHATWOOT_MESSAGE_DELETE=true
      - CHATWOOT_IMPORT_DATABASE_CONNECTION_URI=postgresql://evolution2:evolution2@postgres:5432/chatwoot?sslmode=disable
      - CHATWOOT_IMPORT_PLACEHOLDER_MEDIA_MESSAGE=true
      #redis
      - CACHE_REDIS_ENABLED=true
      - CACHE_REDIS_URI=redis://redis:6379
      - CACHE_REDIS_PREFIX_KEY=evolution
      - CACHE_REDIS_SAVE_INSTANCES=false
      - CACHE_LOCAL_ENABLED=false
      #Minio
      - S3_ENABLED=false
      - S3_ACCESS_KEY=suachave
      - S3_SECRET_KEY=suachave
      - S3_BUCKET=evolutionv3
      - S3_PORT=443
      - S3_ENDPOINT=minioserver.meubot.top
      - S3_USE_SSL=true
    labels:
      - traefik.enable=true
      - traefik.http.routers.evolution_v2.rule=Host(`wavoipevolutionyt.comunidadezdg.com.br`)
      - traefik.http.routers.evolution_v2.entrypoints=websecure
      - traefik.http.routers.evolution_v2.priority=1
      - traefik.http.routers.evolution_v2.tls.certresolver=myresolver
      - traefik.http.routers.evolution_v2.service=evolution_v2
      - traefik.http.services.evolution_v2.loadbalancer.server.port=8080
      - traefik.http.services.evolution_v2.loadbalancer.passHostHeader=true
    volumes:
      - evolution_code_data:/evolution
  base: &base
    image: sendingtk/chatwoot:v3.13.6
    environment:
      - SECRET_KEY_BASE=teste2
      - FRONTEND_URL=https://wavoipchatwootyt.comunidadezdg.com.br
      - ASSET_CDN_HOST=
      - FORCE_SSL=false
      - ENABLE_ACCOUNT_SIGNUP=false
      # Redis config
      - REDIS_URL=redis://redis:6379
      - REDIS_PASSWORD=
      - REDIS_SENTINELS=
      - REDIS_SENTINEL_MASTER_NAME=
      # Postgres Database config variables
      - POSTGRES_HOST=postgres
      - POSTGRES_USERNAME=evolution2
      - POSTGRES_PASSWORD=evolution2
      - RAILS_MAX_THREADS=5
      # Email configuration
      - MAILER_SENDER_EMAIL="Chatwoot <[email protected]>"
      - SMTP_DOMAIN=chatwoot.com
      - SMTP_ADDRESS=
      - SMTP_PORT=1025
      - SMTP_USERNAME=
      - SMTP_PASSWORD=
      - SMTP_AUTHENTICATION=
      - SMTP_ENABLE_STARTTLS_AUTO=true
      - SMTP_OPENSSL_VERIFY_MODE=peer
      # Mail Incoming
      - MAILER_INBOUND_EMAIL_DOMAIN=
      - RAILS_INBOUND_EMAIL_SERVICE=
      - RAILS_INBOUND_EMAIL_PASSWORD=
      - MAILGUN_INGRESS_SIGNING_KEY=
      - MANDRILL_INGRESS_API_KEY=
      # Storage
      - ACTIVE_STORAGE_SERVICE=local
      # Amazon S3
      - S3_BUCKET_NAME=
      - AWS_ACCESS_KEY_ID=
      - AWS_SECRET_ACCESS_KEY=
      - AWS_REGION=
      # Log settings
      - RAILS_LOG_TO_STDOUT=true
      - LOG_LEVEL=info
      - LOG_SIZE=500
      # Social media channels
      - FB_VERIFY_TOKEN=
      - FB_APP_SECRET=
      - FB_APP_ID=
      - IG_VERIFY_TOKEN=
      - TWITTER_APP_ID=
      - TWITTER_CONSUMER_KEY=
      - TWITTER_CONSUMER_SECRET=
      - TWITTER_ENVIRONMENT=
      # Slack integration
      - SLACK_CLIENT_ID=
      - SLACK_CLIENT_SECRET=
      # Google OAuth
      - GOOGLE_OAUTH_CLIENT_ID=
      - GOOGLE_OAUTH_CLIENT_SECRET=
      - GOOGLE_OAUTH_CALLBACK_URL=
      # Mobile app env variables
      - IOS_APP_ID=L7YLMN4634.com.chatwoot.app
      - ANDROID_BUNDLE_ID=com.chatwoot.app
      - ANDROID_SHA256_CERT_FINGERPRINT=AC:73:8E:DE:EB:56:EA:CC:10:87:02:A7:65:37:7B:38:D4:5D:D4:53:F8:3B:FB:D3:C6:28:64:1D:AA:08:1E:D8
      # Push Notification
      - ENABLE_PUSH_RELAY_SERVER=true
      # Stripe API key
      - STRIPE_SECRET_KEY=
      - STRIPE_WEBHOOK_SECRET=
      # Direct uploads
      - DIRECT_UPLOADS_ENABLED=
      # MS OAUTH creds
      - AZURE_APP_ID=
      - AZURE_APP_SECRET=
      # AI powered features
      # OPENAI_API_KEY=""
      # Advanced configurations
      # SIDEKIQ_CONCURRENCY=10
    volumes:
      - /data/storage:/app/storage
    networks:
      - chatwoot
  db_prepare:
    <<: *base
    depends_on:
      - postgres
      - redis
    extends:
      service: base
    command: /bin/sh -c "until nc -z postgres 5432; do sleep 1; done; bundle exec rails db:chatwoot_prepare"
    environment:
      - NODE_ENV=production
      - RAILS_ENV=production
      - INSTALLATION_ENV=docker
      - REDIS_URL=redis://redis:6379
      - REDIS_PASSWORD=
      - REDIS_SENTINELS=
      - REDIS_SENTINEL_MASTER_NAME=
    networks:
      - chatwoot
  rails:
    <<: *base
    extends:
      service: base
    depends_on:
      - postgres
      - redis
      - db_prepare
    deploy:
      mode: replicated
      replicas: 1
      placement:
        max_replicas_per_node: 1
      labels:
        - "traefik.enable=true"
        - "traefik.constraint-label=traefik-public"
        - "traefik.http.services.chatwoot.loadbalancer.server.port=3000"
        - "traefik.http.routers.chatwoot.rule=Host(`wavoipchatwootyt.comunidadezdg.com.br`)"
        - "traefik.http.routers.chatwoot.tls=true"
        - "traefik.http.middlewares.chatwoot.headers.SSLRedirect=true"
        - "traefik.http.middlewares.chatwoot.headers.STSSeconds=315360000"
        - "traefik.http.middlewares.chatwoot.headers.browserXSSFilter=true"
        - "traefik.http.middlewares.chatwoot.headers.contentTypeNosniff=true"
        - "traefik.http.middlewares.chatwoot.headers.forceSTSHeader=true"
        - "traefik.http.middlewares.chatwoot.headers.SSLHost=example.io"
        - "traefik.http.middlewares.chatwoot.headers.STSIncludeSubdomains=true"
        - "traefik.http.middlewares.chatwoot.headers.STSPreload=true"
        - "traefik.http.routers.chatwoot.middlewares=chatwoot@docker"
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=production
      - RAILS_ENV=production
      - INSTALLATION_ENV=docker
      - REDIS_URL=redis://redis:6379
      - REDIS_PASSWORD=
      - REDIS_SENTINELS=
      - REDIS_SENTINEL_MASTER_NAME=
    entrypoint: docker/entrypoints/rails.sh
    command: ["bundle", "exec", "rails", "s", "-p", "3000", "-b", "0.0.0.0"]
    restart: always
    labels:
      - traefik.enable=true
      - traefik.http.routers.chatwoot.rule=Host(`wavoipchatwootyt.comunidadezdg.com.br`)
      - traefik.http.routers.chatwoot.entrypoints=websecure
      - traefik.http.routers.chatwoot.priority=1
      - traefik.http.routers.chatwoot.tls.certresolver=myresolver
      - traefik.http.routers.chatwoot.service=chatwoot
      - traefik.http.services.chatwoot.loadbalancer.server.port=3000
      - traefik.http.services.chatwoot.loadbalancer.passHostHeader=true
    networks:
      - chatwoot
  postgres:
    image: postgres:latest
    environment:
      POSTGRES_DB: evolution2
      POSTGRES_USER: evolution2
      POSTGRES_PASSWORD: evolution2
    networks:
      - chatwoot
    volumes:
      - evolution_postgres_data:/var/lib/postgresql/data
  redis:
    image: redis:latest
    command:
      - "redis-server"
      - "--appendonly yes"
      - "--port 6379"
    volumes:
      - evolution_redis_data:/data
    networks:
      - chatwoot
    environment:
      - REDIS_URL=redis://redis:6379
      - REDIS_PASSWORD=
      - REDIS_SENTINELS=
      - REDIS_SENTINEL_MASTER_NAME=
  sidekiq:
    <<: *base
    extends:
      service: base
    depends_on:
      - postgres
      - redis
      - db_prepare
    environment:
      - NODE_ENV=production
      - RAILS_ENV=production
      - INSTALLATION_ENV=docker
      - REDIS_PASSWORD=
    command: ["bundle", "exec", "sidekiq", "-C", "config/sidekiq.yml"]
    restart: always
    networks:
      - chatwoot

volumes:
  evolution_code_data:
  evolution_postgres_data:
  evolution_redis_data:

networks:
  chatwoot:
    external: true
 
shape1
shape2
shape3
shape4
shape7
shape8
Top