Aller au contenu
envdiff

Comparaison de variables d'environnement

Tout marche en staging, rien en production. Comparez les fichiers env.

Collez deux fichiers env et, si vous l'avez, votre .env.example. Env Diff les aligne clé par clé, garde les valeurs masquées et signale les clés manquantes, les valeurs différentes, les clés de test en production, les secrets exposés au navigateur et les valeurs provisoires que personne n'a remplacées.

Voir tous les contrôles
- FEATURE_NEW_CHECKOUT=true
+ OPENAI_API_KEY=chan••••valeur provisoire
~ APP_URL=http••••••••adresse http non chiffrée
~ NEXT_PUBLIC_STRIPE_KEY=pk_l••••••••
  STRIPE_SECRET_KEY=sk_t••••••••clé de test ou de bac à sable
  JWT_SECRET=shar••••••••même secret des deux côtés
Comparaison de démo. Les valeurs sont fictives et masquées comme l'outil masque les vôtres.

Ce que c'est

Un comparateur gratuit et privé pour variables d'environnement. Il comprend dotenv, les lignes export, les guillemets, les valeurs sur plusieurs lignes, le JSON et le YAML simple.

Pour qui

Les développeurs qui livrent seuls, les responsables de mise en production, les équipes DevOps et tous ceux qui ont perdu une soirée à cause d'une seule clé absente en production.

Le problème résolu

La dérive de configuration. Le code est relu et testé, les fichiers env rarement. Une clé oubliée ou une clé de test en production passe alors sans que personne ne la voie.

Comparer deux environnements

L'analyse et la comparaison se font dans cet onglet. Rien n'est envoyé, journalisé ni conservé.

dotenv, JSON ou lignes KEY: value.
dotenv, JSON ou lignes KEY: value.
Facultatif. Votre .env.example, utilisé comme liste des clés que chaque environnement doit avoir.

Les valeurs restent masquées tant que vous ne les affichez pas. Le rapport ne contient jamais de valeur.

$ env diff ▌

Rien de comparé pour l'instant

Collez deux fichiers env, ou chargez les fichiers de démo pour voir chaque type de résultat.

Les valeurs ne quittent jamais cette page. Le rapport et le CSV ne listent que les clés et les résultats.

Ce que signifie chaque contrôle

Les résultats de l'environnement B sont traités comme ceux de la production. Les secrets exposés au navigateur comptent des deux côtés.

  • Secret exposé au navigateur

    Les préfixes comme NEXT_PUBLIC ou VITE placent la valeur dans votre bundle JavaScript. N'importe qui peut la lire.

  • Clé de test ou de bac à sable

    Les clés comme sk_test n'encaissent aucun vrai paiement et n'envoient aucun vrai courriel. Sans souci en staging, une panne silencieuse en production.

  • Pointe vers localhost

    Une adresse de base de données, de cache ou d'API qui ne fonctionne que sur le poste d'un développeur. En production, elle échoue ou atteint le mauvais service.

  • Valeur provisoire

    changeme, xxx, TODO ou des chevrons. Quelqu'un a copié l'exemple sans jamais le remplir.

  • Même secret des deux côtés

    Staging et production partagent un secret, donc une fuite en staging ouvre aussi la production.

  • Adresse http non chiffrée

    Une adresse publique sans https. Cookies, jetons et redirections peuvent casser ou fuiter.

  • Débogage activé

    Les options de débogage montrent aux visiteurs des traces de pile et des détails internes, et ralentissent tout.

  • Secret trop court

    Un secret, jeton ou mot de passe de moins de 12 caractères se devine facilement.

  • Renvoie à une variable inconnue

    La valeur fait référence à une variable absente du même fichier et se retrouve donc vide.

  • Vide

    La clé existe mais n'a pas de valeur. Beaucoup de bibliothèques la considèrent comme définie puis échouent de façon étrange.

Mode d'emploi

  1. Collez l'environnement A

    En général le staging ou votre fichier local. Renommez l'étiquette selon votre organisation.

  2. Collez l'environnement B

    En général la production. Exportez ses variables depuis votre hébergeur ou copiez son contenu depuis votre coffre de secrets.

  3. Ajoutez le modèle

    Facultatif. Collez .env.example pour voir quelles clés obligatoires manquent et lesquelles ne sont documentées nulle part.

  4. Lisez la comparaison

    Les clés manquantes d'abord, puis les valeurs différentes, puis les identiques. Les valeurs à risque sont signalées sur chaque ligne.

  5. Corrigez et partagez

    Téléchargez un nouveau .env.example avec toutes les clés et copiez le rapport dans la liste de contrôle de la mise en production.

Bon à savoir

  • Les contrôles portent sur les noms et la forme des valeurs. Ils ne savent pas si une clé est réellement valide chez le fournisseur.
  • Les fonctions du shell comme la substitution de commande ne sont pas exécutées, seules les références simples à des variables sont vérifiées.
  • La prise en charge du YAML couvre les lignes plates KEY: value, pas les structures imbriquées.
  • Afficher les valeurs ne change que ce que vous voyez à l'écran. Fermez l'onglet pour tout effacer.

Questions

Coller de vrais secrets ici, c'est sans risque ?

La page n'envoie nulle part ce que vous collez et le rapport ne contient aucune valeur. Le réflexe le plus sûr reste toutefois de renouveler tout secret qui a été affiché sur un écran partagé.

Pourquoi B compte comme la production ?

La plupart des gens comparent le staging à la production. Mettez dans B l'environnement que vous allez livrer et les contrôles de risque s'y appliqueront.

À quoi sert l'empreinte ?

C'est un court SHA 256 de chaque valeur. Elle montre que deux valeurs diffèrent sans révéler ni l'une ni l'autre.

Et pour comparer plus de deux fichiers ?

Comparez vos fichiers deux à deux avec le même modèle. Le modèle rattache chaque comparaison à une seule liste de clés.

Contacter le créateur

Une question, une idée ou une offre d’emploi ? Écrivez sur X ou Telegram.

Soutenir le créateur

Si cet outil vous a fait gagner du temps, vous pouvez envoyer un pourboire à cette adresse EVM depuis votre portefeuille.

0xd28Fd90eD69092bd01598f237aad33a0cc9c3EeA