Como instalar o Chatwoot com Docker Compose

Como instalar o Chatwoot com Docker Compose


Este tutorial mostra como subir o Chatwoot usando contêineres Docker de forma simples e organizada, ideal para iniciantes, para isso iremos usar o Painel ICP da Integrator Host.

Neste tutorial, você verá:

✔️ Criar o docker compose
✔️ Acessa uma página de exemplo (https://example.com).


📌 Simplifique seu processo de deploy com o nosso painel ICP!

📌 Passo 1: Criar o seu docker-compose.yml

version: '3.8'

services:
  # Banco de dados PostgreSQL com pgvector instalado
  db:
    image: ankane/pgvector:latest
    restart: always
    environment:
      POSTGRES_DB: chatwoot_production
      POSTGRES_USER: chatwoot
      POSTGRES_PASSWORD: SENHA
    volumes:
      - db_data:/var/lib/postgresql/data

  # Cache e pub/sub para ActionCable
  redis:
    image: redis:6-alpine
    restart: always
    volumes:
      - redis_data:/data

  # Aplicação Rails (Web + API)
  chatwoot:
    image: chatwoot/chatwoot:latest
    depends_on:
      - db
      - redis
    restart: always
    env_file:
      - .env
    command: >
      sh -lc "
      bundle exec rails db:prepare &&
      bundle exec rails db:seed &&
      bundle exec rails server -b 0.0.0.0
      "
    environment:
      RAILS_ENV: production
      DATABASE_URL: postgres://chatwoot:SENHA@db:5432/chatwoot_production
      REDIS_URL: redis://redis:6379/0
      SECRET_KEY_BASE: ${SECRET_KEY_BASE}
      RAILS_MASTER_KEY: ${RAILS_MASTER_KEY}
    ports:
      - "3000:3000"
    volumes:
      - uploads:/app/public/uploads

  # Worker para jobs em background (Sidekiq)
  worker:
    image: chatwoot/chatwoot:latest
    command: bundle exec sidekiq
    depends_on:
      - db
      - redis
    restart: always
    env_file:
      - .env
    environment:
      RAILS_ENV: production
      DATABASE_URL: ${DATABASE_URL}
      REDIS_URL: ${REDIS_URL}
      SECRET_KEY_BASE: ${SECRET_KEY_BASE}
      RAILS_MASTER_KEY: ${RAILS_MASTER_KEY}

volumes:
  db_data:
  redis_data:
  uploads:

📌 Passo 2: Criar o seu .env

# Ambiente
RAILS_ENV=production

# Chave de segurança do Rails (gera com `rails secret`)
SECRET_KEY_BASE=2f8a9d3c4e7f6b1a5c2d9e8f3b4a1c0d6e7f5a4b3c2d1e0f9a8b7c6d5e4f3a2

# Chave mestre para descriptografar credentials (conteúdo de config/credentials/master.key)
RAILS_MASTER_KEY=3f1b2c4d5e6a7b8c9d0e1f2a3b4c5d6e

# Banco de dados PostgreSQL
DATABASE_URL=postgres://chatwoot:SENHA@db:5432/chatwoot_production

# Redis para cache, Sidekiq e ActionCable
REDIS_URL=redis://redis:6379/0

# URL do front-end (onde o usuário acessa o Chatwoot)
FRONTEND_URL=https://chat.panel-icp.integrator.host

# Configuração de e-mail (SMTP)
SMTP_ADDRESS=smtp.panel-icp.integrator.host
SMTP_PORT=587
SMTP_USER=usuario@panel-icp.integrator.host
SMTP_PASSWORD=OutraS3nh4!
SMTP_DOMAIN=chat.panel-icp.integrator.host
SMTP_AUTHENTICATION=login
SMTP_ENABLE_STARTTLS_AUTO=true

# Configurações opcionais para Pusher (se usar)
PUSHER_APP_ID=
PUSHER_KEY=
PUSHER_SECRET=
PUSHER_CLUSTER=

# Outras variáveis de configuração podem ir abaixo, conforme necessidade do Chatwoot

📌 Passo 3: Subir o seu docker-compose.yml usando o Painel ICP

Veja mais detalhes em nosso vídeo do Youtube.

https://youtu.be/Aq3TGhZUPMI