Chatwoot
Boîte de réception omnicanale orientée conversation. Email, widget de chat, WhatsApp, Facebook, Instagram, Twitter/X en une seule vue.
- Projet original : https://www.chatwoot.com/
- Remplace : Intercom, Front, Help Scout (canaux de chat)
- Connexion (SSO) : Non disponible — l’édition communautaire de cette app ne supporte pas OIDC. Les utilisateurs gardent un email/mot de passe par app.
Étapes de configuration
Section intitulée « Étapes de configuration »- Cliquez Deploy. Patientez ~2 min le premier démarrage (migrations Rails).
- Visitez votre domaine Chatwoot. Complétez l’assistant pour créer le premier admin.
- Ajoutez des canaux : Settings -> Inboxes -> Add inbox. Choisissez le canal (email, widget, WhatsApp, etc.) et suivez les instructions.
À propos de la connexion : l’édition communautaire de Chatwoot ne supporte pas OIDC/SSO — chaque agent garde un email/mot de passe spécifique à l’app. Le SSO SAML/OIDC est enterprise uniquement. Si le SSO est important, envisagez Zammad (compromis : flux orienté ticket au lieu de l’inbox orienté conversation de Chatwoot).
Variables d’environnement
Section intitulée « Variables d’environnement »Ces valeurs se trouvent dans l’onglet Environment du compose Dokploy. Les secrets aléatoires sont générés automatiquement au premier semi du template — vous n’avez pas à les générer vous-même.
| Variable | Valeur par défaut |
|---|---|
CHATWOOT_HOSTNAME | support.yourdomain.com |
SECRET_KEY_BASE | valeur aléatoire auto-générée |
DB_PASSWORD | valeur aléatoire auto-générée |
- Service et port :
rails:3000 - Nom d’hôte :
support.yourdomain.com
Le nom d’hôte est attaché automatiquement au semi du template ; modifiez-le dans l’onglet Domains avant de cliquer Deploy si vous souhaitez autre chose.
Fichier compose
Section intitulée « Fichier compose »Pour référence — c’est ce que le template déploie. Ne collez ceci nulle part. Le compose est semé dans Dokploy automatiquement ; les ajustements côté client se font dans les onglets Environment et Domains (décrits plus haut), jamais dans le compose lui-même.
# Chatwoot -- customer support / omnichannel inbox (email, live chat,# WhatsApp, Facebook, Instagram, Twitter, ...). Community edition uses# email/password for agent login; SAML/OIDC SSO is enterprise-only.
services: rails: image: chatwoot/chatwoot:v4.13.0-ce restart: unless-stopped entrypoint: docker/entrypoints/rails.sh command: ["bundle", "exec", "rails", "s", "-p", "3000", "-b", "0.0.0.0"] environment: RAILS_ENV: production NODE_ENV: production SECRET_KEY_BASE: ${SECRET_KEY_BASE} FRONTEND_URL: https://${CHATWOOT_HOSTNAME} DEFAULT_LOCALE: en FORCE_SSL: "true" INSTALLATION_NAME: "Chatwoot" POSTGRES_HOST: db POSTGRES_DATABASE: chatwoot POSTGRES_USERNAME: chatwoot POSTGRES_PASSWORD: ${DB_PASSWORD} REDIS_URL: redis://redis:6379 RAILS_LOG_TO_STDOUT: "true" ACTIVE_STORAGE_SERVICE: local depends_on: db: condition: service_healthy redis: condition: service_started volumes: - storage-data:/app/storage labels: - "vps.auth.mode=public" - "vps.auto-update=patch" networks: dokploy-network: aliases: - chatwoot default: {}
sidekiq: image: chatwoot/chatwoot:v4.13.0-ce restart: unless-stopped command: ["bundle", "exec", "sidekiq", "-C", "config/sidekiq.yml"] environment: RAILS_ENV: production NODE_ENV: production SECRET_KEY_BASE: ${SECRET_KEY_BASE} FRONTEND_URL: https://${CHATWOOT_HOSTNAME} POSTGRES_HOST: db POSTGRES_DATABASE: chatwoot POSTGRES_USERNAME: chatwoot POSTGRES_PASSWORD: ${DB_PASSWORD} REDIS_URL: redis://redis:6379 ACTIVE_STORAGE_SERVICE: local depends_on: - rails volumes: - storage-data:/app/storage labels: - "vps.auto-update=patch" networks: - default
db: image: postgres:16.13-alpine restart: unless-stopped environment: POSTGRES_USER: chatwoot POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_DB: chatwoot volumes: - db-data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U chatwoot"] interval: 10s timeout: 5s retries: 5 labels: - "vps.auto-update=patch" networks: - default
redis: image: redis:8.6.3-alpine3.23 restart: unless-stopped labels: - "vps.auto-update=patch" networks: - default
volumes: storage-data: db-data:
networks: dokploy-network: external: true