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