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.
Services Inclus
chatwoot
chatwoot/chatwoot:latest
Variables d'Environnement :
sidekiq
chatwoot/chatwoot:latest
Variables d'Environnement :
postgres
postgres:16-alpine
Variables d'Environnement :
redis
redis:7-alpine
YAML Généré
# 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
Informations Rapides
- Services
- 4
- Réseaux
- 1
- Volumes
- 4
Quand l'Utiliser
Ce modèle est idéal pour mettre en place un environnement chatwoot Tous les services sont préconfigurés avec des healthchecks, des limites de ressources et des valeurs par défaut raisonnables. Personnalisez les variables d'environnement avant de déployer en production.
Conseils
- Changez tous les mots de passe par défaut avant le déploiement
- Vérifiez les limites de ressources pour votre matériel
- Ajoutez un reverse proxy pour le HTTPS en production
- Configurez des stratégies de sauvegarde pour les volumes de données