# Migrer un projet depuis Vercel

Host reprend les outils que tu utilises déjà : la CLI Vercel, `vercel.json` et le format Build Output API. Migrer revient à recréer le projet, reprendre ses variables, puis changer le DNS.

**Résultat attendu** : ton domaine sert le site depuis Host, et le projet Vercel n’envoie plus de déploiement.

**Avant de commencer** : vérifie que ton site n’utilise que des fonctions prises en charge. Les fonctions, le runtime edge, l’ISR et les crons sont en préversion, voir [Compatibilité](/docs/reference/compatibilite/).

1. **Crée le projet sur Host**

   Importe le dépôt depuis GitHub, voir [Déployer depuis GitHub](/docs/guides/deployer-depuis-github/). Ou lance `vercel deploy` depuis le dossier du projet avec une clé Host.

   Supprime d’abord le dossier `.vercel` s’il existe : il pointe vers le projet Vercel.

   ```bash
   rm -rf .vercel
   vercel --api https://api.host.hgdc.ch deploy
   ```

   **Vérification** : un déploiement de preview est **Prêt**.

2. **Reprends les variables**

   Sur Vercel, `vercel env pull .env.production --environment=production` écrit les variables lisibles dans un fichier.

   Colle le contenu de ce fichier dans **Ajouter**, dans l’onglet **Variables d’environnement** de Host, en choisissant l’environnement Production. Les variables marquées « Sensitive » sur Vercel ne se relisent pas : saisis-les à nouveau.

   **Vérification** : le nombre de variables correspond à celui de Vercel.

3. **Vérifie la preview**

   Ouvre l’adresse du déploiement et parcours le site : pages, redirections, page 404 et ressources.

   **Vérification** : aucune page ne répond `404` ou `501` de façon inattendue.

4. **Ajoute le domaine et change le DNS**

   Ajoute le domaine au projet, pose le TXT de propriété, puis remplace les enregistrements qui pointaient vers Vercel par le CNAME ou le A indiqué. Le détail est dans [Brancher un domaine](/docs/guides/brancher-un-domaine/).

5. **Retire le projet de Vercel**

   Une fois le trafic arrivé et le certificat émis, débranche le dépôt côté Vercel. Tu évites ainsi deux déploiements à chaque push.

> **Astuce**
>
> Pose d’abord le TXT : il ne change rien au trafic. Ne change le CNAME ou le A que quand le domaine est prêt côté Host. Baisse le TTL de l’enregistrement quelques heures avant la bascule, pour revenir vite en arrière si besoin.

## Si ça ne marche pas

- La preview affiche une page `501` : une fonction n’est pas encore ouverte à ton organisation. Voir [Préversion](/docs/concepts/preversion/).
- Le site répond encore depuis Vercel : le DNS n’est pas propagé, ou un ancien enregistrement subsiste. Voir [Dépannage](/docs/guides/depannage/#mon-domaine-reste-en-attente).
