Architecture Dolibarr : n8n pour équipes hybrides

Comment combiner le meilleur du ERP open‑source et des automatisations sans code pour des collaborateurs à distance et sur site


1. Introduction

Les équipes modernes sont rarement regroupées autour d’un même bureau. Les équipes hybrides – qui alternent télétravail, coworking et présence physique – ont besoin d’outils qui unifient la gestion des processus métiers tout en restant simples à utiliser et à faire évoluer.

Dans ce contexte, Dolibarr (ERP/CRM léger, open source) et n8n (workflow engine « no‑code/low‑code ») forment un duo complémentaire :

  • Dolibarr centralise les données (clients, fournisseurs, stocks, devis, factures, etc.) dans une base unique.
  • n8n orchestre les interactions entre Dolibarr et les autres outils de l’entreprise (Slack, Teams, Gmail, Google Drive, Shopify, etc.) créant des automatisations réactives sans écrire de code.

L’article qui suit décrit l’architecture recommandée, les bonnes pratiques d’intégration et les cas d’usage les plus pertinents pour les équipes hybrides.


2. Pourquoi associer Dolibarr & n8n ?

Dolibarr n8n
Gestion unifiée des processus métiers (CRM, ERP, gestion de projet) Orchestration sans serveur d’appels API, de flux de travail, de notifications
Interface web légère, compatible mobile Éditeur visuel drag‑and‑drop qui rend la création de workflows accessible à tous
Base de données unique (MySQL/MariaDB, PostgreSQL) facile à sauvegarder Support de plus de 300 connecteurs (REST, Webhooks, Slack, Teams, Gmail, etc.)
Modélisation simple des devis, factures, contacts Déclencheurs en temps réel (événement MQTT, webhook, schedule)
Licence GPL 3 → libre d’auto‑héberger Licence MIT, extensible via des fonctions JavaScript personnalisées

En combinant les deux, vous obtenez :

  1. Une source de vérité unique (Dolibarr) où chaque changement de données (ex. : nouveau devis) peut être propagé instantanément.
  2. Des processus automatisés (n8n) qui réagissent à ces changements pour envoyer des emails, créer des tickets, mettre à jour des tableaux de bord, ou même déclencher des actions physiques (IoT, impression de factures, etc.).
  3. Une flexibilité totale : vous pouvez ajouter ou retirer des connecteurs sans toucher au code source de Dolibarr.


3. Architecture proposée

3.1. Schéma fonctionnel

+-------------------+                +-------------------+
| Clients / Utilis.| | Outils externes |
+-------------------+ +-------------------+
| |
(Web UI) (API, Webhooks, etc.)
| |
+------v------+ +-------v------+
| Dolibarr | <--- REST / | n8n Engine |
| (Self‑host) | Webhooks ----> | (Docker) |
+-------------+ +-------------+
| |
+--- > Base de données (MySQL) <----+

3.2. Composants clés | Composant | Rôle | Technologies conseillées |

|———–|——|—————————|
| Dolibarr | Gestion des données (CRM, ERP, stocks) | Installation via docker-compose, certificat HTTPS (Let’s Encrypt), configuration en mode multi‑tenant si besoin |
| n8n | Automation / orchestrateur | Docker container, persistance via PostgreSQL (ou SQLite pour petits déploiements), authentification OAuth/OIDC ou basic auth |
| Reverse Proxy (Traefik / Nginx) | Point d’entrée unique, TLS termination, routing entre Dolibarr et n8n | Let’s Encrypt, headers sécurisés (Content‑Security‑Policy, HSTS) |
| Base de données | Stockage partagé | MySQL/MariaDB ou PostgreSQL, sauvegarde quotidienne via pg_dump ou mysqldump |
| Message Queue (optionnel) | Découplage et haute disponibilité des triggers | RabbitMQ ou Kafka (pour des scénarios très asynchrones) |
| Monitoring & Alerting | S健康监控 (Uptime, erreurs) | Prometheus + Grafana ou UptimeRobot/Yunohost alerts |

3.3. Flux typique

  1. Un utilisateur saisit un devis dans Dolibarr (UI web).
  2. Dolibarr crée/modifie un record (table llx_discount, llx_invoice, etc.). 3. Webhook déclenché (via le module Dolibarr de n8n) qui capte l’événement invoice.created.
  3. n8n exécute : – Envoi d’un email de notification au client (via Gmail/SMTP).

    • Création d’une tâche dans Todoist ou Microsoft To‑Do pour le suivi.
    • Mise à jour d’un tableau de bord Metabase/Power BI.
  4. Le résultat est immédiatement visible par tous les membres de l’équipe, même ceux qui travaillent à distance.


4. Déploiement en 5 étapes

4.1. Prérequis

Élément Version minimale
Docker Engine 20.10
Docker‑Compose 2.4
OpenSSL 1.2.1
NodeJS 18 (pour debugger n8n)
Base de données MySQL 8 / PostgreSQL 13

4.2. Installation de Dolibarr

# docker-compose.dolibarr.ymlversion: "3.8"
services:
dolibarr:
image: dolibarr/dolibarr:latest
container_name: dolibarr
restart: unless-stopped
environment:
- Dolibarr_WebServer_PORT=8080 - Dolibarr_HTTPS=1
- Dolibarr_HTTPS_CERT_PATH=/certs/fullchain.pem - Dolibarr_HTTPS_KEY_PATH=/certs/privkey.pem
ports:
- "8080:8080"
volumes:
- ./dolibarr_data:/var/www/html - ./certs:/certs:ro
networks:
- back
networks:
back:
driver: bridge

  • HTTPS obligatoire pour protéger les webhooks.
  • Activez le module “Webhooks” dans l’admin Dolibarr (Configuration → Webhooks). – Créez un secret token qui sera partagé avec n8n (ex. WEBHOOK_SECRET=async-secret-2025).

4.3. Installation de n8n

« `yaml# docker-compose.n8n.yml
version: "3.8"
services:
n8n:
image: n8nio/n8n:latest
container_name: n8n
restart: unless-stopped
ports:

  • "5678:5678"
    environment:
  • N8N_HOST=0.0.0.0
  • N8N_PORT=5678
  • N8N_BASIC_AUTH_METHOD=octane
  • N8N_BASIC_AUTH_ACTIVE=true
  • N8N_BASIC_AUTH_USER=admin
  • N8N_BASIC_AUTH_PASSWORD=YOUR_STRONG_PASSWORD
  • N8N_PROD=true – NODE_ENV=production
  • DB_TYPE=postgresdb
  • DB_POSTGRESDB_HOST=db
  • DB_POSTGRESDB_PORT=5432
  • DB_POSTGRESDB_USER=n8n
  • DB_POSTGRESDB_PASSWORD=n8n_secret
  • DB_POSTGRESDB_DBNAME=n8n volumes:
  • n8n_data:/data
    depends_on:
  • db networks:
  • back

    db:
    image: postgres:15-alpine container_name: n8n_db
    environment:
    POSTGRES_DB: n8n
    POSTGRES_USER: n8n
    POSTGRES_PASSWORD: n8n_secret
    volumes:

  • n8n_db:/var/lib/postgresql/data
    networks:
  • back

volumes:
n8n_data:
n8n_db:
networks:
back:
driver: bridge


- Activez le **mode production** (`N8N_PROD=true`) pour désactiver les logs verbeux. - Vous pouvez ajouter **n8n comunidad nodes** (ex. `n8n-nodes-base`, `n8n-nodes-external`) via la commande `npm install -g n8n-nodes-external`.
### 4.4. Configuration du bridge Webhook 1. **Dans Dolibarr** → *Configuration → Webhooks → Add*
- **URL** : `https://your-domain.com/n8n/workflow`
- **Méthode** : `POST`
- **En‑tête** : `X-Webhook-Signature: {{WEBHOOK_SECRET}}` (ou `Authorization: Bearer ...`)
- **Événement** : `Invoice:Created`, `Order:Created`, `Product:Created`, etc.
2. **Dans n8n** → créez un **Webhook node**
- **Resource** : `Custom Request` → **URL** = l’adresse publique de votre endpoint. - **Method** : `POST`
- **Headers** → `X-Webhook-Signature: {{WEBHOOK_SECRET}}`
- **Body** → JSON, choisissez **Parse JSON** pour récupérer les champs (`{{$json["event"]}}`, `{{$json["data"]["invoice_number"]}}`, …).
3. **Testez** l’envoi d’une requête d’un devis fictif pour vérifier la signature et le parsing des données.
### 4.5. Construction d’un workflow d’automatisation
**Exemple : Notification Slack lorsqu’une facture dépasse 10 000 €**
1. **Déclencheur** – `Webhook (Dolibarr)` → `Invoice Created`
2. **Condition** – `IF` node : `{{$json["data"]["amount"]} > 10000}`
3. **Action** – `Slack` → `Send a message` - Channel : `#finance` - Message : `🧾 *Facture ${$json["data"]["reference"]} dépasse 10 000 €* – Concernée : ${$json["data"]["customer"]["name"]}`
4. **Optionnel** – `Google Calendar` → **Create Event** pour placer un rappel de suivi.
Ce workflow peut être exporté/importé au format JSON et versionné dans un dépôt Git (via le module `n8n-nodes-uploadfiles`).
---
## 5. Cas d’usage concrets pour les équipes hybrides
| Scénario | Comment Dolibarr + n8n aide l’équipe | Bénéfice principal |
|----------|---------------------------------------|--------------------|
| **Vente à distance** (client prospecting depuis l’étranger) | Création d’un devis → envoi automatisé d’un PDF signé via DocuSign → déclenchement d’un rappel Slack au responsable commercial | **Gain de productivité** : aucune saisie manuelle, suivi instantané |
| **Gestion des stocks entre entrepôts physiques et cloud** | Ajout d’un produit → mise à jour du stock → notifications Telegram au responsable logistique + création d’une tâche dans Asana pour réapprovisionnement | **Visibilité en temps réel** : tous les membres voient les niveaux de stock |
| **Suivi des dépenses de voyage** | Un employé soumet une note de frais → Dolibarr enregistre la dépense → n8n envoie la dépense à un tableau Google Sheets + crée un ticket « Validation » dans Jira | **Contrôle budgétaire** : centralisation et auditabilité |
| **Production de rapports hebdomadaires** | Chaque dimanche, n8n récupère les commissions (table `llx_c_event`) → génère un PDF avec Chart.js → email à la direction et upload sur SharePoint | **Reporting automatisé** – aucune tâche manuelle chaque lundi matin |
| **Gestion des contrats clients** | Lorsqu’un contrat expire dans < 7 jours, le workflow envoie un email de rappel, crée un ticket dans Odoo, et propose d’ajouter une opportunité de vente | **Gestion proactive** des renouvellements, réduction du churn |
---
## 6. Bonnes pratiques & astuces
### 6.1. Sécurité
- **TLS obligatoire** sur chaque endpoint public (Dolibarr et n8n).
- Utilisez **fundamental** les tokens ou OAuth2 pour les webhooks (pas d’IP whitelisting qui bloque les IP dynamiques).
- Limitez les scopes des comptes de service (l’API n8n doit être configurée en lecture‑seule pour les tables critiques).
- Activez **rate‑limiting** via le reverse proxy (ex. `limit_req_zone` en Nginx).
### 6.2. Performances
- **Cachez les réponses** des Webhooks avec `Cache-Control: private, max-age=60` si le traitement est lourd (ex. génération de PDF).
- **Scellez les jobs** avec la fonction « Retry on Failure » de n8n, mais limitez le nombre de retries pour éviter les boucles infinies.
- Partitionnez la base de données Dolibarr en **schémas** si vous avez plusieurs entités juridiques (ex. `llx_companyA`, `llx_companyB`).
### 6.3. Monitoring
- **Prometheus metrics** exposés par n8n (`/metrics`) → créez un tableau de bord Grafana montrant le nombre d’exécutions, les latences, les erreurs 5xx.
- **Alerte** sur `HTTP 500` ou sur le taux d’erreurs des webhooks (> 5 % en 5 min).
- **Logs centralisés** (ELK ou Loki) pour rechercher les `Exception` dans Dolibarr (`/var/log/apache2/error.log`).
### 6.4. Versionning & CI/CD
- Stockez **les workflows n8n** sous forme de fichiers `.json` dans un repo Git.
- Utilisez **GitHub Actions** ou **GitLab CI** pour tester chaque workflow (validation JSON schema, test d’appel API) avant le déploiement.
- Déployez via **Docker Compose** avec `docker compose up -d` suivi d’un `docker compose exec n8n n8n lint` pour vérifier la syntaxe.
---
## 7. Checklist de mise en production (Hybride)
| ✅ | Item |
|----|------|
| 1 | Docker compose (`docker-compose.yml`) combine **dolibarr**, **n8n**, **db** et **reverse‑proxy** |
| 2 | Certificat HTTPS valide (`fullchain.pem`) installé sur le reverse‑proxy |
| 3 | Webhooks Dolibarr créés avec secret partagé (`WEBHOOK_SECRET`) |
| 4 | n8n **authentifié** (basic auth ou OAuth) |
| 5 | Tests de bout‑en‑bout : création d’un devis → notification Slack → mise à jour tableau de bord |
| 6 | Monitoring (Prometheus + Grafana) configuré et alertes testées |
| 7 | Backup quotidien des bases (Dolibarr + n8n) sur stockage hors‑site |
| 8 | Documentation des workflows versionnée (Git) |
| 9 | Processus de reprise d’urgence décrit (restauration DB, reconstruction des containers) |
|10 | Revue de sécurité (scan de vulnérabilités Docker, headers HTTP) |
---
## 8. Conclusion
Pour les équipes hybrides qui cherchent à **concilier centralisation des données** et **automatisation des processus**, la combinaison **Dolibarr + n8n** constitue une solution puissante, économique et extensible.
- **Dolibarr** assure la **source unique de vérité** (CRM, ERP, stocks) avec une empreinte légère et une communauté mature.
- **n8n** apporte la **flexibilité de l’automatisation** sans code, capable de réagir à chaque changement de donnée via des webhooks ou des schedules.
En suivant l’architecture présentée, en appliquant les bonnes pratiques de sécurité et en capitalisant sur les workflows versionnés, les organisations peuvent :
1. Réduire les tâches manuelles de 30 % à 70 % selon les processus,
2. Garantir une visibilité en temps réel pour les collaborateurs dispersés,
3. Adapter rapidement les automatisations aux nouveaux outils (Teams, Discord, IoT, etc.).
Adoptez donc cette stack dès aujourd’hui, testez vos premiers scénarios sur un environnement de dev, et faites‑c évoluer au rythme de la maturité de vos équipes hybrides.
*Bon automatisme !* 🚀

Publications similaires