Saltearse al contenido

Configuración

La API de SMEISA se configura a través de variables de entorno definidas en un archivo .env ubicado en la raíz del proyecto.


# Base de datos (PostgreSQL)
DB_TYPE=postgres
DB_HOST=localhost
DB_PORT=5432
DB_USERNAME=postgres
DB_PASSWORD=tu_contraseña
DB_DATABASE=api_db
# JWT
JWT_SECRET=Tu_Clave_Secreta_32_Chars_Minimo!
JWT_EXPIRES_IN=1d
# App
PORT=3000
NODE_ENV=development

Puedes personalizar estas variables según tu entorno de desarrollo o producción.


⚠️ ATENCIÓN: La variable JWT_SECRET debe tener al menos 32 caracteres.

Si se define una clave de longitud menor, la aplicación lanzará un error y no podrá iniciarse. Esto garantiza un nivel mínimo de seguridad para la generación de tokens JWT.

✅ Recomendación: Usa una cadena aleatoria y robusta, por ejemplo:

Ventana de terminal
openssl rand -hex 32

Entorno de desarrollo (NODE_ENV=development)

Sección titulada «Entorno de desarrollo (NODE_ENV=development)»
  • Usa bases de datos locales o contenidas con Docker
  • Mantén la documentación Swagger habilitada
  • Usa npm run start:dev para hot-reload y debugging
  • No es necesario usar HTTPS

Entorno de producción (NODE_ENV=production)

Sección titulada «Entorno de producción (NODE_ENV=production)»
  • Usa gestores de procesos como PM2 para estabilidad
  • Usa HTTPS con certificados válidos
  • Desactiva documentación Swagger pública o protégela con autenticación
  • Usa variables seguras (ej. JWT_SECRET robusto)
  • Asegura que los puertos expuestos estén correctamente gestionados por firewalls o reverse proxies

  • Nunca subas el archivo .env a un repositorio público
  • Usa herramientas como dotenv-cli o dotenv-flow si manejas múltiples entornos
  • Cambiar JWT_SECRET con regularidad en producción
  • Usa PGSSLMODE=require si conectas a PostgreSQL en la nube (ej. Supabase, Railway)