> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.hodi.host/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# 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 ?](https://help.hodi.host/fr/article/hodiploy-gere-t-il-le-deploiement-via-git-14yny4j/).

|| **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

* [Hodiploy gère-t-il le déploiement via Git ?](https://help.hodi.host/fr/article/hodiploy-gere-t-il-le-deploiement-via-git-14yny4j/) 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 ?](https://help.hodi.host/fr/article/comment-recevoir-une-notification-webhook-apres-chaque-deploiement-1kurh8a/) pour brancher vos propres outils sur les déploiements