# ============================================================================= # .env.example # ============================================================================= # # Este archivo se llama env-example.txt para poder descargarlo. # En tu proyecto va renombrado a `.env.example`, en la raíz. # # Cómo funciona, en tres reglas: # # 1. `.env.example` SE SUBE a git. Lleva los NOMBRES de las variables y # explicaciones, nunca los valores reales. # 2. `.env.local` (o `.env`) NO se sube nunca. Es la copia con tus valores de # verdad. Agregala a `.gitignore` antes de escribir el primer secreto. # 3. Este archivo es la lista de todo lo que el proyecto necesita para arrancar. # Si alguien clona el repo y no puede correrlo con esto, le falta un renglón. # # La regla de seguridad que no se negocia: toda variable que empiece con # NEXT_PUBLIC_ (o VITE_, o PUBLIC_) termina dentro del JavaScript que se # descarga al navegador. Cualquiera la puede leer. Si es un secreto, no lleva # ese prefijo. No hay excepciones ni "es solo mientras pruebo". # # ============================================================================= # ----------------------------------------------------------------------------- # Público (el navegador los ve, y está bien) # ----------------------------------------------------------------------------- # La URL donde vive el sitio. Sin barra al final. # Se usa para armar links absolutos, canonicals e imágenes de Open Graph. NEXT_PUBLIC_SITE_URL=https://www.tudominio.com # Base de datos / backend, la parte pública. # La URL del proyecto, sin sufijos de API. NEXT_PUBLIC_SUPABASE_URL= # La llave anónima. Es pública a propósito: lo que protege los datos son las # políticas de acceso de la base, no esconder esta llave. NEXT_PUBLIC_SUPABASE_ANON_KEY= # Analítica. También público: vive en el HTML. NEXT_PUBLIC_GTM_ID= # ----------------------------------------------------------------------------- # Solo servidor (si esto se filtra, es un incidente) # ----------------------------------------------------------------------------- # Llave de administrador de la base. Se salta todas las políticas de acceso. # Nunca en el cliente, nunca en un componente que no diga explícitamente que # corre en el servidor. SUPABASE_SERVICE_ROLE_KEY= # Pagos. La secreta del proveedor y el secreto con el que se verifica que un # webhook viene de verdad de ellos y no de cualquiera con la URL. PAYMENT_SECRET_KEY= PAYMENT_WEBHOOK_SECRET= # Correos transaccionales. EMAIL_API_KEY= # Desde qué dirección salen. El dominio tiene que estar verificado en el # proveedor o todo cae en spam. EMAIL_FROM= # Endpoints que llama un servicio externo o una tarea programada. # Se verifican con `Authorization: Bearer `. Generá algo largo y # aleatorio, no una palabra. CRON_SECRET= # ----------------------------------------------------------------------------- # Antes de dar por hecho que funciona # ----------------------------------------------------------------------------- # # - Las variables públicas se hornean en el momento del build. Agregarlas en el # panel de tu hosting no arregla un deploy que ya salió: hay que volver a # deployar. # - Que exista en tu máquina no significa que exista en producción. Son dos # listas distintas y es el error que más veces rompe un lanzamiento. # - Un endpoint protegido tiene que responder 401 cuando lo llamás sin el # header. Probalo a mano. Si responde 500, es que la variable no está y # probablemente no esté haciendo nada desde hace días.