Dolibarr est un ERP/CRM open source puissant et polyvalent, mais son déploiement en environnement de production exige une attention particulière pour garantir performance, stabilité et évolutivité. Au-delà de l’installation standard, l’utilisation stratégique des webhooks et le respect de bonnes pratiques d’optimisation sont essentiels pour tirer pleinement parti de l’outil dans un contexte professionnel exigeant.
1. Comprendre le contexte "production" pour Dolibarr
Contrairement à un environnement de test ou de démonstration, la "production" implique :
- Des utilisateurs simultanés (équipes commerciales, comptabilité, gestion de stock).
- Des données critiques et volumineuses (historique, fichiers joints, transactions).
- Des besoins de disponibilité élevée (temps de réponse < 2s).
- Une intégration avec d’autres systèmes ( sites e-commerce, outils de paie,_LOGICIELS comptables).
C’est ici que les webhooks et l’optimisation deviennent stratégiques.
2. Les Webhooks dans Dolibarr : Automatisation et intégration temps réel
Qu’est-ce qu’un webhook Dolibarr ?
Un webhook est une notification HTTP automatique envoyée par Dolibarr lorsqu’un événement spécifique se produit (ex. : création d’une facture, ajout d’un contact, changement de statut de commande). C’est un push vers une URL externe, évitant ainsi les requêtes polling coûteuses.
Événements exploitables (extraits) :
ACTION_CREATE/ACTION_UPDATE/ACTION_DELETEsur tout objet (facture, commande, produit, etc.)MEMBER_SUBSCRIPTION(adhésion à une association)BILL_PAYED(facture payée)PROJECT_TASK(tâche de projet créée/modifiée)
Cas d’usage concrets en production :
- Synchronisation avec un outil de business intelligence : Envoi automatique des nouvelles factures vers un dashboard Power BI/Tableau.
- Alertes métier : Notifier un canal Slack/Teams lors de l’ajout d’un gros client ou d’une facture impayée.
- Workflows externes : Déclencher la préparation d’une commande dans un système de gestion d’entrepôt (WMS) dès qu’une commande est validée.
- Audit et conformité : Envoyer une copie sécurisée de chaque document sensible vers un système d’archivage à valeur probante.
Configuration et bonnes pratiques :
- Sécurité : Toujours utiliser des URLs HTTPS avec authentification (token dans l’en-tête, Basic Auth, ou vérification de signature HMAC).
- Fiabilité : Configurer un système de file d’attente (comme RabbitMQ ou Redis) côté récepteur pour éviter la perte de notifications en cas de pic de charge. Dolibarr n’attend pas la réponse du webhook ; il le lance et passe à la suite.
- Filtrage : Ne déclencher les webhooks que pour les événements utiles, avec des filtres sur les objets/statuts (ex. : seulement pour les factures > 1000€).
- Test et monitor : Simuler les événements via l’interface d’administration (
Accueil > Outils > Webhooks) et logger systématiquement les réponses des endpoints distants. - Logique de rejeu : Prévoir un mécanisme pour renvoyer les webhooks échoués (via une table de log dédiée).
3. Bonnes pratiques de performance pour Dolibarr en production
A. Infrastructure et serveur
-
Stack recommandée :
- PHP : Version 8.1+ (OPcache activé et optimisé).
- MySQL/MariaDB : Version 10.6+ avec
innodb_buffer_pool_sizeréglé à 70-80% de la RAM. - Web server : Nginx (plus performant que Apache pour PHP-FPM en charge).
- PHP-FPM : Ajuster
pm.max_children,pm.start_servers,pm.min_spare_serversselon la RAM et le nombre de cœurs. Surveillermax_execution_time(300s pour les exports lourds).
-
Cache applicatif :
- OPcache :
opcache.memory_consumption=512,opcache.max_accelerated_files=10000. - Cache de session : Stocker les sessions PHP en Redis ou Memcached, pas en fichiers (surtout en cluster).
- Cache Dolibarr : Activer le cache de résultats dans
dokuwiki/htdocs/conf/extra/conf.php(si utilisé) ou via des extensions tierces.
- OPcache :
- Fichiers statiques et sessions :
- Servir les documents stockés (
documents/) via un CDN ou un sous-domaine dédié (ex. :files.monentreprise.com). - Configurer un domaine de session séparé pour éviter les conflits de cookies si plusieurs applications PHP sur le même serveur.
- Servir les documents stockés (
B. Configuration Dolibarr
- Désactiver le debug : En production,
$dolibarr_main_prod = 1;dansconf.php. - Limiter les logs : Niveau
WARNINGouERRORpour les logs système (dolibarr.log), rotation automatique. - Optimiser les modules :
- Désactiver les modules inutilisés (réduit la charge mémoire et le chargement des menus).
- Éviter les champs personnalisés inutiles sur les tables principales (ralentissent les requêtes).
- Gestion des images et documents :
- Limiter la taille des uploads (
upload_max_filesize,post_max_size). - Ne pas stocker de fichiers binaires en base (Dolibarr les stocke en fichiers par défaut, c’est bon).
- Limiter la taille des uploads (
C. Base de données
- Indexation :
- Vérifier régulièrement les requêtes lentes (
slow_query_log). - Indexer les champs fréquemment utilisés en
WHERE/JOIN(ex. :fk_socsur les tables de transactions).
- Vérifier régulièrement les requêtes lentes (
- Archivage :
- Mettre en place une politique d’archivage des données anciennes (ex. : déplacer les factures de +10 ans vers une base séparée ou un stockage froid).
- Utiliser les sauvegardes incrémentielles (xtrabackup, dump partiel).
- Nettoyage :
- Programmer le nettoyage des tables temporaires (
llx_cronqueue,llx_action_trigger). - Purger les emails logs (
llx_societe_mailing) après envoi.
- Programmer le nettoyage des tables temporaires (
D. Surveillance et maintenance
- Monitoring :
- APM (Application Performance Monitoring) : utiliser New Relic, Datadog ou Scout APM pour tracer les transactions Dolibarr et identifier les slow endpoints.
- Infra :监控 CPU/RAM/Disque (Prometheus/Grafana).
- Logs : Centraliser les logs Dolibarr et PHP vers ELK ou Graylog.
- Cronjobs :
- Limiter les tâches planifiées (
dolibarr_cron) aux strictes nécessités (envoi d’emails massifs, calculs de com, génération de PDF). - Les exécuter hors heures de pointe.
- Éviter les cron qui recalculent des totaux sur de grandes périodes en une fois (préférer des traitements par lots).
- Limiter les tâches planifiées (
- Mises à jour :
- Toujours mettre à jour (correctifs de sécurité et performance).
- Tester en pré-production avec un jeu de données réaliste.
- Sauvegarder base et dossiers documents avant toute MAJ.
4. Checklist démarrage en production
| Point de contrôle | Priorité |
|---|---|
| PHP-FPM paramétré selon la RAM | ⭐⭐⭐⭐ |
| Cache OPcache + Redis sessions | ⭐⭐⭐⭐ |
| HTTPS partout (web + webhooks) | ⭐⭐⭐⭐⭐ |
| Authentification webhook (token HMAC) | ⭐⭐⭐⭐⭐ |
Backup automatique (base + documents/) |
⭐⭐⭐⭐⭐ |
| Monitoring temps de réponse (APM) | ⭐⭐⭐⭐ |
| Modules inutiles désactivés | ⭐⭐⭐⭐ |
| Logs rotés, niveau WARNING | ⭐⭐⭐⭐ |
| Archivage des données anciennes planifié | ⭐⭐⭐ |
Tests de charge avec ab ou k6 |
⭐⭐⭐⭐ |
5. Conclusion : Performance rime avec anticipation
Dolibarr en production n’est pas une simple application que l’on "lance". C’est un écosystème qui doit être :
- Connecté via des webhooks fiables et sécurisés pour s’intégrer à votre paysage IT.
- Observable avec des métriques claires (temps de réponse, erreurs, charge DB).
- Maintenu avec des mises à jour régulières, un nettoyage périodique et une infrastructure adaptée.
En appliquant ces pratiques, vous transformez Dolibarr d’un ERP "gratuit" en un système d’information robuste et performant, capable de supporter la croissance de votre activité sans crispation. L’objectif n’est pas seulement de "faire tourner" Dolibarr, mais de le faire tourner vite et bien — au service de vos processus métier, et non l’inverse.
Article rédigé par un expert en déploiement de solutions open source pour les PME/ETI. Les réglages précis dépendent de votre volumétrie et de votre hébergement ( mutualisé, VPS, dédié, cloud ).