Skip to content

Configuración del Entorno

Yastubo Backend utiliza variables de entorno para gestionar conexiones seguras, secretos criptográficos y habilitar integraciones de terceros. Este enfoque garantiza que el sistema sea agnóstico al entorno (Desarrollo, Staging o Producción).

El script de instalación automática genera un archivo .env basado en .env.example. Debe configurar las siguientes variables para la funcionalidad completa del sistema.


  • SECRET_KEY: Cadena utilizada para firmar los tokens JWT. Debe ser una clave criptográfica fuerte.
  • APP_ENV: Define el modo de ejecución (development, staging, production).
  • DATABASE_URL: URL de conexión asíncrona para PostgreSQL.
    • Ejemplo: postgresql+asyncpg://user:password@localhost:5432/yastubo
  • REDIS_URL: Conexión para el motor de tareas asíncronas y caché.
    • Ejemplo: redis://localhost:6379

Yastubo permite habilitar módulos dinámicamente. El sistema desactivará las llamadas externas si los secretos no están configurados.

VariableMóduloDescripción
STRIPE_SECRET_KEYPaymentsGestión de cobros vía Stripe.
GOOGLE_API_KEYAI (Gemini)Agentes de IA para soporte y análisis.
CRM_ENABLEDCRM (Zoho)Sincronización con Zoho CRM.
WHATSAPP_ENABLEDNotificacionesEnvío de alertas vía Twilio.

Análisis Técnico: Validación de Configuración

Section titled “Análisis Técnico: Validación de Configuración”

En Yastubo, la configuración se somete a una Validación Estricta mediante Pydantic.

Si al iniciar el servidor falta una variable obligatoria o el formato de los datos es incorrecto, el sistema interrumpirá el arranque. Esto evita comportamientos erráticos en entornos de producción.

app/core/config.py
class Settings(BaseSettings):
DATABASE_URL: str # Pydantic valida que sea una cadena obligatoria
REDIS_URL: str = "redis://localhost:6379"
Terminal window
# Entorno
APP_ENV="development"
DEBUG=True
# Persistencia
DATABASE_URL="postgresql+asyncpg://user:password@localhost:5432/yastubo"
REDIS_URL="redis://localhost:6379"
# Stripe Test Mode
STRIPE_SECRET_KEY="sk_test_..."
STRIPE_WEBHOOK_SECRET="whsec_..."

[FLOW: Al inicio, Pydantic Settings busca variables en el entorno del Sistema Operativo. Si no existen, lee el archivo .env. Valida los esquemas de datos en app/core/config.py. Si la validación es exitosa, se inyecta el objeto Settings; de lo contrario, se genera un ValidationError.]