Variables de entorno y secretos
Tu código necesita claves de , URLs de y tokens. Estos nunca deben subirse a tu repositorio. Una vez que un está en el historial de , es efectivamente público para siempre — borrar la línea en un posterior no lo elimina del historial, y hay bots que rastrean repositorios públicos nuevos en busca de claves filtradas en cuestión de minutos. Dos reglas te llevan lejos:
- Guarda los secretos en un archivo
.envlocal, y asegúrate de que.envesté en tu.gitignore. - Configura los mismos valores como variables de entorno en el panel de tu host (o vía — la Command-Line Interface, la ventana de comandos de texto donde escribes en lugar de hacer clic) para producción.
# .env (solo local — nunca subir esto)
DATABASE_URL=postgres://localhost:5432/app
STRIPE_SECRET_KEY=sk_test_xxx
SESSION_SECRET=change-me
# Configura los equivalentes de producción en el host
wrangler secret put STRIPE_SECRET_KEY
vercel env add STRIPE_SECRET_KEY production
Mantén un .env.example versionado que liste los nombres (no los valores) de cada variable, para que tú en el futuro y la IA sepan qué espera la app. Fíjate en el prefijo sk_test_ de arriba — mantén tus claves de prueba y en vivo claramente diferenciadas, y nunca dejes que una clave en vivo se quede en un .env local que podrías pegar en un chat. Si alguna vez pegas un secreto en un chat o lo subes por accidente, trátalo como comprometido y rótalo de inmediato: genera una clave nueva en el panel del proveedor, actualízala en todos lados, y revoca la anterior. Rotar te cuesta cinco minutos; una de base de datos filtrada puede costarte todo lo que hay en la base de datos.