Chatwoot
Chatwoot is an open-source, self-hosted customer engagement platform that provides live chat, email, social media, and messaging channel support in a unified inbox. It supports website live chat widgets, Facebook Messenger, Instagram, Twitter, WhatsApp, Telegram, Line, SMS, and email channels. This stack deploys the Chatwoot web application and a Sidekiq background worker for async job processing, backed by PostgreSQL 16 for data storage and Redis 7 for caching and job queuing. Chatwoot features agent assignment rules, canned responses, automation rules, conversation labels, team management, CSAT surveys, and reporting dashboards. It also provides a REST API, webhooks, and integrations with tools like Slack, Dialogflow, and custom bots. After deployment, access the web UI on port 3000 to create your admin account, set up your inbox channels, and install the chat widget on your website.
Servizi Inclusi
chatwoot
chatwoot/chatwoot:latest
Variabili d'Ambiente:
sidekiq
chatwoot/chatwoot:latest
Variabili d'Ambiente:
postgres
postgres:16-alpine
Variabili d'Ambiente:
redis
redis:7-alpine
YAML Generato
# Generated by ComposeHub (composehub.dev)
name: chatwoot
services:
chatwoot:
image: chatwoot/chatwoot:latest
restart: always
command:
- bundle
- exec
- rails
- s
- "-p"
- "3000"
- "-b"
- 0.0.0.0
ports:
- 3000:3000
volumes:
- chatwoot_storage:/app/storage
- chatwoot_public:/app/public
environment:
SECRET_KEY_BASE: ${SECRET_KEY_BASE:-changeme-generate-a-long-random-hex-string}
FRONTEND_URL: ${FRONTEND_URL:-http://localhost:3000}
RAILS_ENV: production
NODE_ENV: production
POSTGRES_HOST: postgres
POSTGRES_PORT: "5432"
POSTGRES_DATABASE: ${POSTGRES_DB:-chatwoot}
POSTGRES_USERNAME: ${POSTGRES_USER:-chatwoot}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-changeme}
REDIS_URL: redis://redis:6379
RAILS_LOG_TO_STDOUT: "true"
SMTP_ADDRESS: ${SMTP_ADDRESS:-}
SMTP_PORT: ${SMTP_PORT:-587}
SMTP_USERNAME: ${SMTP_USERNAME:-}
SMTP_PASSWORD: ${SMTP_PASSWORD:-}
MAILER_SENDER_EMAIL: ${MAILER_SENDER_EMAIL:-Chatwoot <[email protected]>}
networks:
- chatwoot
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
healthcheck:
test:
- CMD-SHELL
- curl -f http://localhost:3000/auth/sign_in || exit 1
interval: 30s
timeout: 10s
retries: 5
start_period: 90s
deploy:
resources:
limits:
cpus: "2.00"
memory: 1536M
reservations:
cpus: "0.50"
memory: 512M
labels:
com.composehub.description: Chatwoot web application and customer engagement platform
sidekiq:
image: chatwoot/chatwoot:latest
restart: always
command:
- bundle
- exec
- sidekiq
- "-C"
- config/sidekiq.yml
volumes:
- chatwoot_storage:/app/storage
- chatwoot_public:/app/public
environment:
SECRET_KEY_BASE: ${SECRET_KEY_BASE:-changeme-generate-a-long-random-hex-string}
FRONTEND_URL: ${FRONTEND_URL:-http://localhost:3000}
RAILS_ENV: production
POSTGRES_HOST: postgres
POSTGRES_PORT: "5432"
POSTGRES_DATABASE: ${POSTGRES_DB:-chatwoot}
POSTGRES_USERNAME: ${POSTGRES_USER:-chatwoot}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-changeme}
REDIS_URL: redis://redis:6379
networks:
- chatwoot
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
deploy:
resources:
limits:
cpus: "1.00"
memory: 1024M
reservations:
cpus: "0.25"
memory: 256M
labels:
com.composehub.description: Chatwoot Sidekiq background worker for async jobs
postgres:
image: postgres:16-alpine
restart: always
volumes:
- chatwoot_db:/var/lib/postgresql/data
environment:
POSTGRES_DB: ${POSTGRES_DB:-chatwoot}
POSTGRES_USER: ${POSTGRES_USER:-chatwoot}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-changeme}
networks:
- chatwoot
healthcheck:
test:
- CMD-SHELL
- pg_isready -U ${POSTGRES_USER:-chatwoot} -d ${POSTGRES_DB:-chatwoot}
interval: 5s
timeout: 5s
retries: 10
start_period: 30s
deploy:
resources:
limits:
cpus: "1.00"
memory: 512M
reservations:
cpus: "0.25"
memory: 128M
labels:
com.composehub.description: PostgreSQL 16 database for Chatwoot
redis:
image: redis:7-alpine
restart: always
command:
- redis-server
- "--save"
- "20"
- "1"
- "--loglevel"
- warning
- "--maxmemory"
- 256mb
- "--maxmemory-policy"
- allkeys-lru
volumes:
- chatwoot_redis:/data
networks:
- chatwoot
healthcheck:
test:
- CMD-SHELL
- redis-cli ping | grep PONG
interval: 5s
timeout: 5s
retries: 10
start_period: 10s
deploy:
resources:
limits:
cpus: "0.50"
memory: 320M
reservations:
cpus: "0.10"
memory: 64M
labels:
com.composehub.description: Redis 7 for Chatwoot caching and job queuing
networks:
chatwoot:
driver: bridge
volumes:
chatwoot_storage:
driver: local
chatwoot_public:
driver: local
chatwoot_db:
driver: local
chatwoot_redis:
driver: local
Informazioni Rapide
- Servizi
- 4
- Reti
- 1
- Volumi
- 4
Quando Usarlo
Questo template è ideale per configurare un ambiente chatwoot Tutti i servizi sono preconfigurati con healthchecks, limiti di risorse e valori predefiniti sensati. Personalizza le variabili d'ambiente prima di fare il deploy in produzione.
Consigli
- Cambia tutte le password predefinite prima del deploy
- Verifica i limiti di risorse per il tuo hardware
- Aggiungi un reverse proxy per HTTPS in produzione
- Configura strategie di backup per i volumi di dati