# ============================================================================= # .env.example - CLINICA VETERINARIA # ============================================================================= # Copia este archivo a .env y configura los valores # Generado por: @PERFIL_DEVENV # Referencia: orchestration/environment/ENVIRONMENT-INVENTORY.yml # ============================================================================= # ============================================================================= # APLICACION # ============================================================================= NODE_ENV=development APP_NAME=clinica-veterinaria APP_VERSION=1.0.0 # ============================================================================= # PUERTOS - Asignados por DEVENV-PORTS-INVENTORY.yml # ============================================================================= FRONTEND_PORT=3120 BACKEND_PORT=3121 # Alias para compatibilidad PORT=3121 # ============================================================================= # BASE DE DATOS - PostgreSQL # ============================================================================= # Desarrollo: Puerto 5440 (asignado en DEVENV-PORTS-INVENTORY.yml) # Produccion: Puerto 5432 (estandar) # ============================================================================= DB_HOST=localhost DB_PORT=5440 DB_NAME=clinica_veterinaria_dev DB_USER=veterinaria_dev # IMPORTANTE: Generar password seguro con: openssl rand -base64 32 DB_PASSWORD=CAMBIAR_POR_PASSWORD_SEGURO # Connection string completo (calculado de las variables anteriores) DATABASE_URL=postgresql://${DB_USER}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_NAME} # Pool de conexiones DB_POOL_SIZE=10 DB_CONNECTION_TIMEOUT=5000 # SSL (false para desarrollo, true para produccion) DB_SSL=false # ============================================================================= # BASE DE DATOS - Ambientes adicionales # ============================================================================= # Test (mismo servidor, diferente BD) # DB_NAME_TEST=clinica_veterinaria_test # Staging (servidor externo) # DB_HOST_STAGING=staging-db.example.com # DB_NAME_STAGING=clinica_veterinaria_staging # DB_USER_STAGING=veterinaria_staging # Produccion (servidor externo) # DB_HOST_PROD=prod-db.example.com # DB_NAME_PROD=clinica_veterinaria_prod # DB_USER_PROD=veterinaria_prod # ============================================================================= # REDIS - Cache y Sesiones # ============================================================================= # Desarrollo: Puerto 6387 (asignado en DEVENV-PORTS-INVENTORY.yml) # Produccion: Puerto 6379 (estandar) # ============================================================================= REDIS_HOST=localhost REDIS_PORT=6387 REDIS_DB=0 # Password (vacio para desarrollo, requerido en produccion) REDIS_PASSWORD= # Connection string REDIS_URL=redis://${REDIS_HOST}:${REDIS_PORT}/${REDIS_DB} # Configuracion de cache REDIS_CACHE_TTL=3600 REDIS_MAX_MEMORY=128mb # ============================================================================= # AUTENTICACION - JWT # ============================================================================= # IMPORTANTE: Generar secreto seguro con: openssl rand -base64 64 # Minimo 32 caracteres requeridos # ============================================================================= JWT_SECRET=CAMBIAR_POR_SECRETO_SEGURO_DE_AL_MENOS_32_CARACTERES # Tiempos de expiracion JWT_EXPIRES_IN=24h JWT_REFRESH_EXPIRES_IN=7d # Algoritmo (default: HS256) JWT_ALGORITHM=HS256 # ============================================================================= # CORS - Cross-Origin Resource Sharing # ============================================================================= FRONTEND_URL=http://localhost:3120 # Multiples origenes separados por coma ALLOWED_ORIGINS=http://localhost:3120,http://localhost:3121 # Metodos permitidos CORS_METHODS=GET,POST,PUT,PATCH,DELETE,OPTIONS # Headers permitidos CORS_HEADERS=Content-Type,Authorization,X-Requested-With # ============================================================================= # LOGGING # ============================================================================= # Niveles: debug, info, warn, error LOG_LEVEL=debug # Formatos: pretty (desarrollo), json (produccion) LOG_FORMAT=pretty # Archivo de logs (opcional) # LOG_FILE=./logs/app.log # Rotacion de logs # LOG_MAX_SIZE=10m # LOG_MAX_FILES=5 # ============================================================================= # ALMACENAMIENTO DE ARCHIVOS # ============================================================================= # Tipo: local, s3, minio STORAGE_TYPE=local # Path local (para desarrollo) STORAGE_PATH=./uploads # Tamano maximo de archivo (10MB en bytes) MAX_FILE_SIZE=10485760 # Tipos permitidos ALLOWED_FILE_TYPES=image/jpeg,image/png,application/pdf # ============================================================================= # AWS S3 (para produccion) # ============================================================================= # AWS_ACCESS_KEY_ID= # AWS_SECRET_ACCESS_KEY= # AWS_REGION=us-east-1 # AWS_S3_BUCKET=clinica-veterinaria-uploads # ============================================================================= # EMAIL - SMTP # ============================================================================= # MailHog para desarrollo: puerto 1025 # Servidor real para produccion # ============================================================================= SMTP_HOST=localhost SMTP_PORT=1025 SMTP_SECURE=false # Credenciales (para produccion) # SMTP_USER= # SMTP_PASSWORD= # Remitente por defecto SMTP_FROM_NAME=Clinica Veterinaria SMTP_FROM_EMAIL=noreply@clinica-vet.local # ============================================================================= # SEGURIDAD ADICIONAL # ============================================================================= # Rate limiting RATE_LIMIT_WINDOW=900000 RATE_LIMIT_MAX=100 # Helmet (headers de seguridad) HELMET_ENABLED=true # CSRF Protection CSRF_ENABLED=false # Throttle por IP THROTTLE_TTL=60 THROTTLE_LIMIT=10 # ============================================================================= # MONITOREO Y METRICAS # ============================================================================= # Health check endpoint HEALTH_CHECK_ENABLED=true # Metricas Prometheus (opcional) # METRICS_ENABLED=false # METRICS_PORT=9090 # Sentry (opcional) # SENTRY_DSN= # ============================================================================= # CONFIGURACION ESPECIFICA VETERINARIA # ============================================================================= # Recordatorios de vacunacion (dias antes) VACCINATION_REMINDER_DAYS=7 # Intervalo de monitoreo hospitalizacion (minutos) HOSPITALIZATION_MONITOR_INTERVAL=30 # Formatos de chip aceptados CHIP_FORMATS=ISO11784,ISO11785,FDXA,FDXB # ============================================================================= # DESARROLLO Y DEBUG # ============================================================================= # Habilitar debug de TypeORM # TYPEORM_LOGGING=true # Swagger UI SWAGGER_ENABLED=true SWAGGER_TITLE=Clinica Veterinaria API SWAGGER_VERSION=1.0.0 # Hot reload HOT_RELOAD=true # ============================================================================= # PRODUCCION # ============================================================================= # Estas variables deben configurarse via secrets manager en produccion: # # - DB_PASSWORD (secreto) # - JWT_SECRET (secreto) # - REDIS_PASSWORD (secreto) # - AWS_ACCESS_KEY_ID (si usa S3) # - AWS_SECRET_ACCESS_KEY (si usa S3) # - SMTP_USER (si usa email) # - SMTP_PASSWORD (si usa email) # - SENTRY_DSN (si usa Sentry) # # Diferencias de configuracion en produccion: # - NODE_ENV=production # - LOG_LEVEL=info # - LOG_FORMAT=json # - DB_PORT=5432 (estandar) # - DB_SSL=true # - REDIS_PORT=6379 (estandar) # - STORAGE_TYPE=s3 # - SWAGGER_ENABLED=false # - HOT_RELOAD=false # ============================================================================= # ============================================================================= # REFERENCIAS # ============================================================================= # Inventario de entorno: orchestration/environment/ENVIRONMENT-INVENTORY.yml # Inventario de puertos: orchestration/inventarios/DEVENV-PORTS-INVENTORY.yml # Perfil DevEnv: orchestration/agents/perfiles/PERFIL-DEVENV.md # =============================================================================