Ce projet permet de gérer plusieurs instances de Dolibarr de manière isolée tout en partageant une infrastructure commune (Reverse Proxy, Base de données MariaDB partagée) via Docker.
reverse-proxy/: Configuration Traefik (v3) pour le routage des noms de domaines.database/: Configuration de la base de données MariaDB partagée (dolibarr-db).docker/: Configuration Docker pour les services Nginx et PHP par client.clients/: Données spécifiques à chaque client (fichiers.env, conf, documents, modules custom).dolibarr-source/: Submodule Git pointant vers le dépôt officiel Dolibarr.cores/: Dossiers de versions basés sur des Git Worktrees liés au submodule.modules-common/: Modules Dolibarr partagés entre tous les clients../client: Script de gestion principal.
Après avoir cloné ce dépôt, vous devez initialiser le submodule et les worktrees pour les versions de Dolibarr.
git submodule update --init --recursiveLes dossiers dans cores/ sont ignorés par Git. Vous devez les recréer à partir du submodule :
# Exemple pour les versions courantes
mkdir -p cores
for v in 16 17 18 19 20 21 22; do
git -C dolibarr-source worktree add ../cores/dolibarr-${v} ${v}.0
donePour récupérer les dernières mises à jour du dépôt officiel :
git submodule update --remote --mergeCela mettra à jour votre dossier dolibarr-source. Les dossiers dans cores/ étant branchés sur des noms de branches (ex: 18.0), ils seront également à jour lors de vos prochaines opérations Docker.
./client create <nom> [version_dolibarr] [image_php]Exemple : ./client create mon-projet 18 php:7.4-fpm-alpine
Note: ./client create ne pré-crée plus conf/conf.php pour laisser Dolibarr démarrer en mode "Fresh install" propre.
Les champs de la page d'installation restent pré-remplis via clients/<client>/conf/install.forced.php (généré automatiquement).
./client up <client>: Démarre l'instance../client down <client> [--volumes]: Arrête l'instance../client restore <client> [dump.sql(.gz)]: Restaure une BDD et crée leinstall.lock../client logs <client>: Logs en temps réel../client build <client>: Reconstruit l'image PHP.
Les dossiers custom des clients sont montés dans /var/www/html/custom/ pour assurer la visibilité des modules.
Le fichier conf.php utilise des chemins absolus pour éviter les erreurs de logs.