~/VibeHandbook
PDF gratis

Capítulo 05 · 05

Variables de entorno y configuración

Algunos valores no se pueden escribir dentro de tu código: claves secretas, contraseñas de , la dirección de un servicio. Y algunos necesitan cambiar dependiendo de dónde se ejecute la aplicación. El código que pruebas en tu laptop (el entorno de desarrollo, o dev) debería hablar con una base de datos de prueba; la aplicación en vivo que tocan tus usuarios (el entorno de producción, o prod) debe hablar con la real — usando el mismo código.

La respuesta son las variables de entorno (a menudo "env vars"): valores nombrados que viven fuera del código y se le proporcionan cuando se ejecuta. El código dice "dame DATABASE_URL", y el entorno decide cuál entregar.

# A config file (e.g. .env) — values live here, not in the code

DATABASE_URL=postgres://localhost/myapp_dev
STRIPE_SECRET_KEY=sk_test_51H...     # dev = a test key
SEND_REAL_EMAILS=false               # don't email real users while testing

Dos reglas te ahorrarán un verdadero dolor de cabeza:

  • Los secretos nunca van en el código. Cualquier cosa en tu código puede terminar siendo pública (especialmente en un repositorio compartido), y una clave de pago o contraseña de base de datos filtrada es una emergencia real. Los secretos pertenecen a las variables de entorno, fuera del control de versiones.
  • Dev y prod son diferentes. El punto es que el mismo código se comporte correctamente en ambos, porque el entorno — no el código — decide qué base de datos y qué claves usar.

Mismo código, dos hogares — las variables de entorno son lo que difiere:

        SAME CODE
       /         \
      ▼           ▼
   ┌─────────────────┐     ┌─────────────────┐
   │  DEV            │     │  PROD           │
   │  your laptop    │     │  hosting (cloud)│
   │  test database  │     │  real database  │
   │  test API key   │     │  live API key   │
   │  fake emails    │     │  real emails    │
   └─────────────────┘     └─────────────────┘
     only you see it         your users see it

¿Lo quieres sin conexión?

Descarga el libro entero en PDF o EPUB — gratis.