Saltar al contenido
envdiff

Comparador de variables de entorno

En staging funciona, en producción no. Compara los archivos env.

Pega dos archivos env y, si lo tienes, tu .env.example. Env Diff los alinea clave por clave, mantiene los valores ocultos y señala claves que faltan, valores distintos, claves de prueba en producción, secretos expuestos al navegador y valores de relleno que nadie reemplazó.

Ver todas las comprobaciones
- FEATURE_NEW_CHECKOUT=true
+ OPENAI_API_KEY=chan••••valor de relleno
~ APP_URL=http••••••••dirección http sin cifrar
~ NEXT_PUBLIC_STRIPE_KEY=pk_l••••••••
  STRIPE_SECRET_KEY=sk_t••••••••clave de prueba o sandbox
  JWT_SECRET=shar••••••••mismo secreto en ambos
Comparación de ejemplo. Los valores son inventados y se ocultan igual que la herramienta oculta los tuyos.

Qué es

Un comparador gratuito y privado de variables de entorno. Entiende dotenv, líneas export, comillas, valores de varias líneas, JSON y YAML sencillo.

Para quién es

Para quienes publican en solitario, responsables de versiones, equipos DevOps y cualquiera que haya perdido una tarde por una sola clave que faltaba en producción.

Qué resuelve

La deriva de configuración. El código se revisa y se prueba, los archivos env casi nunca. Así una clave olvidada o una clave de prueba en producción pasa sin que nadie la vea.

Compara dos entornos

El análisis y la comparación ocurren en esta pestaña. Nada se sube, se registra ni se guarda.

dotenv, JSON o líneas KEY: value.
dotenv, JSON o líneas KEY: value.
Opcional. Tu .env.example, usado como lista de claves que todo entorno debe tener.

Los valores siguen ocultos hasta que tú los muestres. El informe nunca incluye valores.

$ env diff ▌

Aún no hay nada comparado

Pega dos archivos env o carga los archivos de ejemplo para ver todos los tipos de hallazgo.

Los valores nunca salen de esta página. El informe y el CSV solo enumeran claves y hallazgos.

Qué significa cada comprobación

Los hallazgos del entorno B se tratan como de producción. Los secretos expuestos al navegador cuentan en cualquiera de los dos lados.

  • Secreto expuesto al navegador

    Prefijos como NEXT_PUBLIC o VITE meten el valor dentro de tu paquete de JavaScript. Cualquiera puede leerlo.

  • Clave de prueba o sandbox

    Claves como sk_test no cobran pagos reales ni envían correos reales. En staging está bien, en producción es una caída silenciosa.

  • Apunta a localhost

    Una dirección de base de datos, caché o API que solo funciona en el equipo de un desarrollador. En producción falla o llega al servicio equivocado.

  • Valor de relleno

    changeme, xxx, TODO o corchetes angulares. Alguien copió el ejemplo y nunca lo completó.

  • Mismo secreto en ambos

    Staging y producción comparten un secreto, así que una filtración en staging también abre producción.

  • Dirección http sin cifrar

    Una dirección pública sin https. Cookies, tokens y redirecciones pueden romperse o filtrarse.

  • Depuración activada

    Las opciones de depuración muestran trazas de error y detalles internos a los visitantes, y lo ralentizan todo.

  • Secreto demasiado corto

    Un secreto, token o contraseña de menos de 12 caracteres es fácil de adivinar.

  • Usa una variable inexistente

    El valor hace referencia a una variable que no está definida en el mismo archivo, así que queda vacío.

  • Vacía

    La clave existe pero no tiene valor. Muchas bibliotecas la dan por definida y luego fallan de formas raras.

Cómo se usa

  1. Pega el entorno A

    Normalmente staging o tu archivo local. Cambia la etiqueta para que coincida con tu configuración.

  2. Pega el entorno B

    Normalmente producción. Expórtalo desde tu proveedor de hosting o cópialo de tu gestor de secretos.

  3. Añade la plantilla

    Opcional. Pega .env.example para ver qué claves obligatorias faltan y cuáles no están documentadas.

  4. Lee la comparación

    Primero aparecen las claves que faltan, luego los valores distintos y al final los idénticos. Los valores de riesgo se marcan en cada fila.

  5. Corrige y comparte

    Descarga un .env.example nuevo con todas las claves y copia el informe en la lista de comprobación de la versión.

Conviene saber

  • Las comprobaciones miran nombres y patrones de valores. No pueden saber si una clave es realmente válida en el proveedor.
  • Las funciones de la shell como la sustitución de comandos no se ejecutan, solo se revisan referencias simples a variables.
  • El soporte de YAML cubre líneas planas KEY: value, no estructuras anidadas.
  • Mostrar los valores solo cambia lo que ves en pantalla. Cierra la pestaña para borrarlo todo.

Preguntas

¿Es seguro pegar aquí secretos reales?

La página no envía lo que pegas a ningún sitio y el informe no contiene valores. Aun así, la costumbre más segura es rotar cualquier secreto que se haya mostrado alguna vez en una pantalla compartida.

¿Por qué B cuenta como producción?

La mayoría compara staging con producción. Pon en B el entorno que vas a publicar y las comprobaciones de riesgo se aplicarán a él.

¿Qué es la huella?

Un SHA 256 corto de cada valor. Te deja ver que dos valores son distintos sin mostrar ninguno de los dos.

¿Puedo comparar más de dos archivos?

Compáralos de dos en dos con la misma plantilla. La plantilla ancla cada comparación a una única lista de claves.

Habla con el creador

¿Tienes una pregunta, una idea o una oferta de trabajo? Escribe por X o Telegram.

Apoya al creador

Si esta herramienta te ahorró tiempo, puedes enviar una propina a esta dirección EVM desde tu propia billetera.

0xd28Fd90eD69092bd01598f237aad33a0cc9c3EeA