# Déployer un site depuis GitHub

Dans ce parcours, tu importes un dépôt GitHub dans Host. À la fin, un `git push` sur la branche principale met ton site en production, et chaque autre branche reçoit sa propre preview.

**Avant de commencer** :

- un compte HGDC et une organisation dans Account ;
- un dépôt GitHub avec un site qui se construit (Astro, Vite, Next.js ou un site statique) ;
- le droit d’écriture (push) sur ce dépôt. Un dépôt où tu n’as que la lecture ne s’importe pas.

1. **Ouvre un nouveau projet**

   Dans ton organisation, clique **Nouveau projet**, puis **Importer depuis GitHub**.

   **Vérification** : la liste des dépôts accessibles s’affiche, ou Host te propose d’installer l’app GitHub.

2. **Installe l'app GitHub**

   Installe l’app **Host** sur ton compte GitHub ou sur celui de ton organisation. Tu peux la limiter à quelques dépôts.

   L’app ne demande que les droits dont le workflow a besoin. Le détail est dans [Déployer depuis GitHub](/docs/guides/deployer-depuis-github/).

   **Vérification** : le dépôt choisi apparaît dans la liste de Host.

3. **Choisis le dépôt et vérifie les réglages**

   Sélectionne le dépôt. Host lit le projet et propose le framework, les commandes d’installation et de build, la version de Node.js et la branche de production.

   Si le site est dans un sous-dossier ou dans un monorepo, choisis le dossier de l’app. Voir [Monorepo et sous-dossier](/docs/guides/monorepo/).

   **Vérification** : le framework détecté correspond à ton site. Corrige les réglages qui ne correspondent pas.

4. **Fusionne la PR d'installation**

   L’import ouvre une pull request qui ajoute le fichier `.github/workflows/hgdc-host.yml` et pose le secret `HGDC_HOST_TOKEN` dans le dépôt. Relis-la, puis fusionne-la sur la branche principale.

   Le secret est une clé limitée à ce projet. Elle ne peut ni créer de projet ni lire les autres.

   **Vérification** : la PR est fusionnée, et le fichier `hgdc-host.yml` existe sur la branche principale.

5. **Pousse une modification**

   Modifie une page du site, puis pousse-la sur la branche principale :

   ```bash
   git add .
   git commit -m "docs: ajoute une page de test"
   git push
   ```

   **Vérification** : l’onglet **Déploiements** du projet affiche un déploiement en cours, puis **Prêt**. L’adresse de production affiche la modification.

6. **Ouvre une preview**

   Crée une branche, pousse-la, puis ouvre une pull request sur la branche principale. Host construit la branche et publie une preview.

   **Vérification** : le commit affiche le statut du déploiement avec son lien. La preview répond sur son adresse `hgdc.cloud`.

## Et après

- Pour mettre le site sur ton domaine, suis [Brancher un domaine](/docs/guides/brancher-un-domaine/).
- Pour les variables de build, comme une clé publique ou l’adresse d’une API, suis [Variables d’environnement](/docs/guides/variables-d-environnement/).
- Pour comprendre ce qui se passe à chaque push, lis [Déploiements](/docs/concepts/deploiements/).

## Si ça ne marche pas

- Le build n’apparaît pas après le push : vérifie que la PR d’installation est fusionnée. Voir [Dépannage](/docs/guides/depannage/#le-build-github-est-absent).
- Le build échoue : ouvre le déploiement dans Host, la sortie du build y est affichée en direct.
