Definidas en .env (usar .env.example como base). La validación se realiza al arrancar con Joi en src/config/env.validation.ts.
Aplicación
| Variable | Ejemplo | Descripción |
|---|
HOST | 0.0.0.0 | Host donde escucha el servidor |
PORT | 3000 | Puerto HTTP |
APP_NAME | crm-api | Nombre de la aplicación |
APP_ENV | development | Entorno (development, production, test) |
Base de datos
| Variable | Ejemplo | Descripción |
|---|
MONGODB_URI | mongodb://localhost:27017/crm | URI de conexión MongoDB |
JWT
| Variable | Ejemplo | Descripción |
|---|
JWT_SECRET | supersecret | Clave de firma de tokens |
JWT_EXPIRES_IN | 1d | Duración del access token |
Almacenamiento (S3 / MinIO)
| Variable | Ejemplo | Descripción |
|---|
STORAGE_ENDPOINT | http://localhost:9000 | Endpoint del storage (MinIO compatible) |
STORAGE_ACCESS_KEY | minioadmin | Access key |
STORAGE_SECRET_KEY | minioadmin | Secret key |
STORAGE_BUCKET | crm-files | Nombre del bucket |
STORAGE_REGION | us-east-1 | Región |
Testing
| Variable | Ejemplo | Descripción |
|---|
TESTING | false | Si true, ejecuta la suite de tests antes de levantar el servidor |
Cómo se carga
Archivos de config tipados
Cada grupo de variables tiene su propio archivo en src/config/:
| Archivo | Variables que agrupa |
|---|
app.config.ts | HOST, PORT, APP_NAME, APP_ENV |
database.config.ts | MONGODB_URI |
jwt.config.ts | JWT_SECRET, JWT_EXPIRES_IN |
storage.config.ts | STORAGE_ENDPOINT, STORAGE_ACCESS_KEY, STORAGE_SECRET_KEY, STORAGE_BUCKET, STORAGE_REGION |