Comment organiser mon dépôt Git pour Hodiploy ?
Votre dépôt Git est déployé tel quel : à chaque push, Hodiploy le clone et son contenu devient le dossier des modules personnalisés de votre instance Odoo. Bien organisé, il se déploie sans aucune configuration supplémentaire. Cet article décrit la structure attendue ; pour connecter le dépôt à une instance, voyez plutôt Hodiploy gère-t-il le déploiement via Git ?.
__manifest__.py.La structure attendue
votre-depot/
├── mon_module/
│ ├── __manifest__.py
│ ├── models/
│ └── views/
├── autre_module/
│ └── __manifest__.py
└── requirements.txt (facultatif)
- Tout dossier de premier niveau qui contient un fichier
__manifest__.pyest traité comme un module Odoo - Ne placez pas vos modules dans un sous-dossier (
addons/,src/, etc.) : Odoo ne les verrait pas. Si votre dépôt est organisé ainsi aujourd'hui, déplacez les modules à la racine - Les fichiers annexes à la racine (README, .gitignore...) ne gênent pas : seuls les dossiers porteurs d'un manifeste comptent
Ce qui se passe à chaque push
À chaque push sur la branche configurée, Hodiploy :
- clone à nouveau le dépôt de zéro (clone « shallow », sans l'historique) ; le contenu remplace intégralement les modules du déploiement précédent
- redémarre l'instance, en (ré)installant vos dépendances Python
- met à jour automatiquement les modules déjà installés dont les fichiers ont changé
Un module poussé pour la première fois doit être installé une fois via le menu Applications d'Odoo ; ses mises à jour suivantes seront automatiques. À l'inverse, retirer un module du dépôt ne le désinstalle pas de votre base : désinstallez-le depuis Odoo avant de le retirer du dépôt.
Les dépendances Python : requirements.txt
Si vos modules ont besoin de bibliothèques Python, ajoutez un fichier requirements.txt à la racine du dépôt. Il est installé automatiquement à chaque démarrage de l'instance, dans un environnement Python dédié.
Regroupez toutes vos dépendances dans ce fichier unique plutôt que de disséminer des requirements.txt dans des sous-dossiers.
Nommez vos modules simplement
Le nom du dossier est le nom technique du module : lettres non accentuées, chiffres et underscore, en commençant par une lettre. mon_module convient ; mon-module, Mon Module ou un nom accentué seraient ignorés par la mise à jour automatique.
Évitez aussi de donner à un module le nom d'un module standard d'Odoo ou d'Odoo Enterprise : la collision produit des comportements difficiles à diagnostiquer.
Ce que Hodiploy ne lit pas
- Les submodules Git ne sont pas récupérés. Pour embarquer des modules tiers (OCA par exemple), copiez-les directement dans le dépôt, chacun dans son dossier à la racine
- Git LFS n'est pas supporté : les fichiers suivis par LFS arriveraient sous forme de pointeurs texte
- Un éventuel
Dockerfile,docker-compose.ymlouodoo.confdans le dépôt est ignoré : la conteneurisation et la configuration d'Odoo sont gérées par Hodiploy
Gardez le dépôt léger
Le déploiement clone votre dépôt en quelques secondes tant qu'il ne contient que du code. N'y stockez pas de sauvegardes, de dumps de base de données ni de gros fichiers binaires : au-delà de quelques minutes de clonage, le déploiement est interrompu.
Pour aller plus loin
- Hodiploy gère-t-il le déploiement via Git ? pour connecter le dépôt (GitHub ou SSH), choisir la branche et configurer le webhook
- Comment recevoir une notification (webhook) après chaque déploiement ? pour brancher vos propres outils sur les déploiements
Mis à jour le : 26/08/2026
Merci !