Dolibarr est un ERP/CRM open source puissant et modulaire, mais comme toute application critique, son déploiement en environnement de production exige rigueur et anticipation. Cet article vous guide à travers les templates et les bonnes pratiques essentielles pour une installation stable, sécurisée et performante, illustrées d’exemples concrets.
1. Les Templates : Personnalisation et Cohérence
Les templates (modèles) dans Dolibarr concernent principalement les documents générés (factures, devis, bons de livraison, etc.) et, dans une moindre mesure, les interfaces. Une gestion méthodique des templates est cruciale pour l’image de marque et l’automatisation.
Pourquoi gérer ses templates en production ?
- Image professionnelle : Documents uniformes et aux couleurs de l’entreprise.
- Maintenabilité : Une modification (ex: ajout d’une mention légale) se fait en un seul fichier, pas dans chaque enregistrement.
- Conformité : Intégration facilitée des mentions obligatoires (TVA, SIRET, conditions de vente).
Bonne Pratique 1 : Organiser et versionner ses templates
Ne modifiez jamais les templates par défaut (htdocs/public/...). Utilisez le système de sous-thème ou de personnalisation via la constante DOL_MAIN_TEMPLATE_PATH.
Exemple concret : Structure de dossiers
dolibarr/
├── custom/
│ └── monentreprise_template/ # Votre dossier de模板 personnalisé
│ ├── styles.css.php # Votre CSS spécifique
│ ├── logo.png # Logo
│ ├── facture/ # Templates PDF/HTML pour factures
│ │ ├── A4_mycompany.php
│ │ └── A5_mycompany.php
│ └── ..
Action : Dans conf/conf.php ou via l’interface admin, définissez $dolibarr_main_data_root="./custom" et $dolibarr_main_url_root="" si nécessaire, puis choisissez votre thème dans Accueil > Configuration > Interface.
Bonne Pratique 2 : Adapter le template de facture avec des champs dynamiques
Ne mettez jamais d’informations "en dur" (ex: adresse fixe). Utilisez les variables et fonctions Dolibarr.
Exemple : Template de facture personnalisé (facture/A4_mycompany.php)
<?php
// ... (code standard de début de template Dolibarr)
?>
<!-- Votre en-tête personnalisé -->
<div class="logo">
<img src="<?php echo $mycompany->logo; ?>" alt="Logo">
<div class="infos-header">
<strong><?php echo $mycompany->name; ?></strong><br>
<?php echo $mycompany->address; ?><br>
<?php echo $mycompany->zip . ' ' . $mycompany->town; ?>
</div>
</div>
<!-- Utilisation des variables de l'objet facture -->
<table class="border bottom">
<tr>
<td width="50%">
<strong><?php echo $langs->trans('BillTo'); ?> :</strong><br>
<?php echo $object->getBillingAddress(); ?>
</td>
<td width="50%">
<strong><?php echo $langs->trans('ShipTo'); ?> :</strong><br>
<?php echo $object->getShippingAddress(); ?>
</td>
</tr>
</table>
<!-- Affichage conditionnel d'une mention spécifique -->
<?php if (!empty($object->note_private)): ?>
<p><strong><?php echo $langs->trans('Note'); ?> :</strong><br>
<?php echo nl2br($object->note_private); ?></p>
<?php endif; ?>
<?php
// ... (pied de page standard)
?>
Avantage : Si l’adresse de votre société change, une modification dans la fiche Société (menu Ventes > Sociétés) se répercute partout.
Bonne Pratique 3 : Utiliser les PDF via la bibliothèque interne (tcpdf/fpdf)
Privilégiez la génération PDF via les fonctions natives de Dolibarr ($object->write_file()) pour garantir la compatibilité avec les mises à jour. Évitez les manipulations externes complexes.
2. Bonnes Pratiques Générales pour la Production
1. Sécurité & Accès
- Renforcer l’accès admin : Utilisez un mot de passe très complexe pour le super-utilisateur
adminet désactivez-le si possible (créer un autre admin avec un nom d’utilisateur non standard). - Gestion fine des droits : Utilisez les profils (menu
Accueil > Administration > Utilisateurs & Groupes > Profils) et les Permissions par module. Appliquez le principe du moindre privilège. - SSL/TLS : Forcez HTTPS via le fichier
.htaccessou la configuration serveur. Exemple dans.htaccessà la racine de Dolibarr :RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] - Mettre à jour régulièrement : Abonnez-vous aux alertes de sécurité du projet. Testez les mises à jour en pré-production avant applying en production.
2. Performance & Base de Données
- Configuration PHP : Ajustez
memory_limit(min 512M, conseillé 1G),max_execution_time(min 300),upload_max_filesizeselon vos besoins. - Optimisation MySQL/MariaDB :
- Utilisez le moteur
InnoDB. - Activez le cache de requêtes (
query_cache_size). - Indexez les tables fréquemment interrogées (l’outil
dolibarr_install/checkspeut aider). - Planifiez un OPTIMIZE TABLE mensuel pour les tables à forte activité (via un cron).
- Utilisez le moteur
- Cache : Activez le cache de Dolibarr (
$dolibarr_main_cache_enabled=1dansconf.php) et, si possible, un cache externe comme Memcached ou Redis (nécessite une extension PHP).
3. Sauvegarde & Restauration
- Stratégie 3-2-1 : 3 copies, sur 2 supports différents, dont 1 hors-site.
-
Script de sauvegarde automatisée :
#!/bin/bash
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/backups/dolibarr"
DB_NAME="dolibarr_db"
DB_USER="db_user"
DB_PASS="votre_mot_de_passe_securise"
DOL_DIR="/var/www/dolibarr"
# Sauvegarde base de données (compressée)
mysqldump -u $DB_USER -p$DB_PASS $DB_NAME | gzip > $BACKUP_DIR/db_$DATE.sql.gz
# Sauvegarde des fichiers custom et documents (documents =/uploads)
tar czf $BACKUP_DIR/files_$DATE.tar.gz $DOL_DIR/custom $DOL_DIR/../documents
# Suppression des sauvegardes de plus de 30 jours
find $BACKUP_DIR -name "*.gz" -type f -mtime +30 -delete - Test de restauration : Effectuez une restauration complète (base + fichiers) au moins une fois par trimestre sur un serveur de test.
4. Supervision & Monitoring
- Journalisation (logs) : Activez les logs détaillés (
$dolibarr_main_prod=0temporairement pour debug, mais attention aux performances). Consultezdolibarr.logdans votre dossiercustomoudata. - Monitoring applicatif : Surveillez les processus longs (
list of running cron tasks) et les erreurs dans l’interface (Accueil > Outils > Informations système). - Monitoring système : Utilisez des outils comme Prometheus/Grafana, Netdata, ou au minimum les logs système (
/var/log/syslog,/var/log/apache2/error.log) pour suivre la charge CPU, mémoire, et I/O disque.
5. Intégration et Automatisation
- Tâches planifiées (Cron) : Configurez les tâches Dolibarr dans
Accueil > Configuration > Tâches planifiées. Exemples indispensables :dolibarr_clock(pour la fonction "Date/heure serveur").dolibarr_clean_temp(nettoyage des fichiers temporaires).dolibarr_send_reminder_email(relances impayés).- Exécution des exports comptables (si utilisé).
Action : Ajoutez la ligne de commande dans le crontab système (exemple toutes les heures) :
0 * * * * php /path/to/dolibarr/htdocs/comm/action/trigger.php
- Connections externes : Pour les APIs bancaires, envois d’emails (SMTP), ou synchronisation, paramétrez les connexions externes (
Accueil > Configuration > Connexions externes). Utilisez des identifiants dédiés et stockés de manière sécurisée.
3. Pièges Courants à Éviter (Exemples Concrets)
- "Ça marche en local, pas en production" : Vérifiez les chemins (
DOL_DATA_ROOT,DOL_UPLOAD_ROOT), les permissions des dossiers (chmod 755pour dossiers,644pour fichiers, propriété www-data/apache), et la configuration PHP différente (notammentmax_input_varsqui peut tronquer les formulaires longs comme les factures avec beaucoup de lignes). - Problèmes de mémoire : Une facture avec 100 lignes peut échouer. Augmentez
memory_limitet vérifiez les logs PHP. - Tâches cron non exécutées : La syntaxe de la ligne de commande cron dépend de l’utilisateur système. Testez-la manuellement en SSH (
php /chemin/trigger.php) avec l’utilisateur du serveur web avant de la planifier. - Modifications directes en base de données : Ne jamais modifier une valeur en SQL sans passer par l’interface ou un script Dolibarr (
$object->setValueFrom('field', 'value')) pour déclencher les hooks et mettre à jour les caches.
Conclusion
Dolibarr en production est un outil robuste à condition de le considérer comme un écosystème, pas comme une simple application web. La clé réside dans :
- L’organisation : Templates versionnés dans
custom/, scripts de déploiement. - L’automatisation : Sauvegardes, mises à jour, tâches cron.
- La surveillance : Logs, performance, sécurité.
- La documentation : Notez toute modification, configuration ou script personnalisé. C’est votre meilleure assurance en cas de changement d’administrateur.
En suivant ces templates de bonne pratique et ces exemples, vousposez les bases d’un déploiement Dolibarr qui résistera à l’épreuve du temps et des données, vous permettant de vous concentrer sur votre cœur de métier plutôt que sur la maintenance corrective.
Documentation officielle : https://wiki.dolibarr.org – Une référence incontournable pour les paramètres avancés.