Chatwoot est la plateforme de support client utilisée dans l'infra LORVA. Elle centralise les tickets entrants depuis deux sources :
[email protected] (via Mailcow → IMAP/SMTP)taskori-manage (création de tickets internes)URL publique : https://support.taskori.app
Hébergement : lorva-public:/docker/chatwoot/
| Conteneur | Image | Rôle |
|---|---|---|
chatwoot-rails-1 |
chatwoot/chatwoot:latest |
Application Rails (web + API) |
chatwoot-sidekiq-1 |
chatwoot/chatwoot:latest |
Workers asynchrones (emails, webhooks, jobs) |
chatwoot-redis-1 |
redis:alpine |
Cache, queues Sidekiq |
chatwoot-postgres-1 |
pgvector/pgvector:pg16 |
Base de données principale (pgvector activé) |
| Réseau | Driver | Usage |
|---|---|---|
chatwoot_default |
bridge | Réseau interne entre les 4 conteneurs |
chatwoot-net |
bridge | Réseau additionnel (potentiellement pour intégrations futures) |
traefik-public |
bridge | Exposition via Traefik (conteneur rails uniquement) |
/docker/chatwoot/
├── docker-compose.yml
├── .env
└── (volumes Docker gérés par compose)
Chatwoot est exposé via Traefik sur lorva-public. L'entrée dans le fichier dynamique taskori.yml exclut explicitement support.taskori.app du routeur principal Taskori via la règle :
(Host(`taskori.app`) || HostRegexp(`^.+\.taskori\.app$`)) && !Host(`support.taskori.app`)
Chatwoot dispose donc de son propre routeur avec labels Docker dans docker-compose.yml.
taskori.app est derrière le proxy orange cloud)letsencrypt (configuré dans traefik.yml)[email protected])| Paramètre | Valeur |
|---|---|
| Type | Email (IMAP) |
| Adresse | [email protected] |
| IMAP host | mail.lorva.dev (Mailcow) |
| SMTP outgoing | Désactivé intentionnellement |
| Pourquoi SMTP désactivé | Les réponses sortantes passent par Mailcow directement, pas via Chatwoot SMTP |
L'inbox en mode IMAP pull récupère les mails entrants depuis Mailcow à intervalles réguliers (job Sidekiq). Chaque email entrant sur [email protected] crée ou met à jour une conversation dans Chatwoot.
Threading : Chatwoot utilise les headers In-Reply-To et References des emails pour rattacher les réponses à la bonne conversation existante.
taskori-manage)| Paramètre | Valeur |
|---|---|
| Type | API (programmatique) |
| Source | Application taskori-manage |
| Authentification | API key — voir Flatnotes (taskori-sync) ou variables CI/CD GitLab |
| Usage | Création de tickets depuis l'interface Taskori (ex. bouton "Contacter le support") |
Variables côté taskori-manage :
| Variable | Description |
|---|---|
CHATWOOT_API_URL |
https://support.taskori.app |
CHATWOOT_API_KEY |
Voir variables CI/CD GitLab (repo taskori-manage) |
CHATWOOT_ACCOUNT_ID |
ID du compte Chatwoot (visible dans l'URL admin) |
CHATWOOT_INBOX_ID |
ID de l'inbox #2 (API) |
Le fichier .env est situé dans /docker/chatwoot/.env sur lorva-public. Voir Flatnotes pour les valeurs sensibles.
| Variable | Rôle |
|---|---|
SECRET_KEY_BASE |
Clé Rails (critique) |
POSTGRES_* |
Credentials base de données |
REDIS_URL |
Connexion Redis interne |
RAILS_ENV |
production |
FRONTEND_URL |
https://support.taskori.app |
SMTP_ADDRESS |
Host Mailcow pour l'envoi |
SMTP_USERNAME / SMTP_PASSWORD |
Compte SMTP sortant |
IMAP_ADDRESS |
mail.lorva.dev |
IMAP_USERNAME / IMAP_PASSWORD |
Compte [email protected] |
IMAP_PORT |
993 (IMAPS) |
| Accès | Détail |
|---|---|
| Interface web | https://support.taskori.app |
| Panel super-admin | https://support.taskori.app/super_admin |
| SSH | ssh lorva-public puis cd /docker/chatwoot |
| Console Rails | docker compose exec rails bundle exec rails console |
Voir la page wiki pour les commandes bash complètes (logs, restart, mise à jour, migrations, console Rails).
In-Reply-To / Referencesrails + réseau traefik-public + labels Traefik.env sur lorva-public — ne jamais commitertaskori-sync — détails intégration Chatwoot ↔ taskori-managetaskori-manage — variables CI/CD, code d'intégration API