Articles sur : 💟 Odoo Cloud & Hodiploy
Cet article est aussi disponible en :

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 ?.


La règle d'or : la racine de votre dépôt est le dossier d'addons de l'instance. Un module Odoo = un dossier à la racine, contenant son __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__.py est 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 :


  1. 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
  2. redémarre l'instance, en (ré)installant vos dépendances Python
  3. 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.yml ou odoo.conf dans 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


Mis à jour le : 26/08/2026

Cet article a-t-il répondu à vos questions ?

Partagez vos commentaires

Annuler

Merci !