# Synchroniser les variables depuis Doppler

Si tes secrets vivent déjà dans Doppler, relie une de tes configs à un environnement du projet. Doppler reste la source de vérité : chaque changement arrive dans Host sans copie à la main.

**Résultat attendu** : les variables de la config apparaissent dans l’environnement choisi, avec le badge **Doppler**, et ne se modifient plus que dans Doppler.

**Avant de commencer** : un projet Host, et un compte Doppler avec accès à la config à synchroniser.

## Relier une config

1. **Crée un jeton de service dans Doppler**

   Dans Doppler, ouvre la config, par exemple `prd`, onglet **Access**, et génère un jeton de service en lecture seule. Il commence par `dp.st.`.

2. **Relie la config au projet**

   Dans l’onglet **Variables d’environnement** du projet, section **Synchroniser depuis Doppler**, clique **Relier une config Doppler**. Choisis l’environnement, nomme la config, puis colle le jeton.

   Host essaie le jeton, le chiffre et ne l’affiche plus jamais. La première synchronisation part tout de suite.

   **Vérification** : les variables de la config apparaissent avec le badge **Doppler**.

3. **Ajoute le webhook dans Doppler**

   Host affiche une adresse et un secret de signature, une seule fois. Dans Doppler, ouvre **Webhooks**, ajoute un webhook avec cette adresse, coche la config et colle le secret.

   Chaque changement est alors signé, puis appliqué en quelques secondes.

   **Vérification** : modifie une valeur de test dans Doppler. Elle apparaît dans Host en quelques secondes.

## Ce qui est synchronisé

- Toutes les variables de la config, sauf les métadonnées de Doppler, comme `DOPPLER_PROJECT` ou `DOPPLER_CONFIG`.
- Les noms réservés, qui commencent par `VERCEL_` ou `AGENTHOST_`, ne sont pas synchronisés. Les valeurs de plus de 64 Ko non plus. La console les signale.
- 300 variables au plus par config.
- En production et en preview, les variables sont **sensibles** : elles ne descendent pas sur un poste par `vercel pull`. En développement, elles sont ordinaires. Voir [Variables](/docs/guides/variables-d-environnement/#marquer-une-variable-comme-sensible).

## Ce qui se passe quand une valeur change

- Une variable retirée de Doppler disparaît du projet au passage suivant.
- Une config devenue vide d’un coup ne retire rien : la console signale l’erreur. C’est une protection contre un accident de configuration.
- Une variable manuelle du même nom, sur le même environnement, l’emporte et n’est jamais écrasée. La console liste ces noms : supprime la variable manuelle pour que Doppler prenne le relais.
- Sans webhook, ou si un appel se perd, la synchronisation repasse toute seule toutes les six heures. Clique **Synchroniser** pour la lancer tout de suite.

## Redéployer à chaque changement

Pour un projet relié à GitHub et la config de production, active **Redéployer la production à chaque changement**. Quand une valeur change dans Doppler, le workflow du dépôt reconstruit la production avec les nouvelles valeurs.

Une synchronisation sans changement ne redéploie rien.

## Débrancher

**Débrancher** garde les variables dans le projet, redevenues manuelles. Aucun build ne les perd d’un coup. Retire ensuite le webhook et révoque le jeton dans Doppler.

> **Astuce**
>
> Le jeton de service et le secret du webhook sont chiffrés, liés au projet, et ne sont jamais renvoyés. Si tu perds le secret, clique **Générer un nouveau secret** sous l’adresse du webhook, puis remplace-le dans Doppler.

## Si ça ne marche pas

- La synchronisation affiche une erreur à la connexion : le jeton n’est pas un jeton de service de la config, ou il est révoqué. Crée-en un nouveau.
- Une variable n’arrive pas : elle porte un nom réservé, ou sa valeur dépasse 64 Ko. Vérifie la liste signalée dans la console.
- Le webhook ne déclenche rien : vérifie que l’adresse et le secret collés dans Doppler sont ceux affichés à la création du webhook. Sinon, génère un nouveau secret.
