configuración Local
Sección titulada «configuración Local»está guía contiene la configuración completa del entorno de desarrollo local para TalentBricksAI, incluyendo Stripe CLI, AWS S3, y configuración avanzada.
Requisitos Previos
Sección titulada «Requisitos Previos»- Node.js v20+ (recomendado: usar nvm)
- npm v10+
- Docker (para PostgreSQL local)
- Wasp CLI v0.21+
instalación de Wasp
Sección titulada «instalación de Wasp»# Instalar Wasp CLIcurl -sSL https://get.wasp-lang.dev/installer.sh | sh
# Verificar instalaciónwasp versiónClonar el Repositorio
Sección titulada «Clonar el Repositorio»git clone <repo-url>cd TalentBricksAIConfigurar la aplicación
Sección titulada «Configurar la aplicación»1. Instalar Dependencias
Sección titulada «1. Instalar Dependencias»cd appnpm install2. Configurar Variables de Entorno
Sección titulada «2. Configurar Variables de Entorno»Crear archivos de variables de entorno en el directorio app/:
.env.server
# Base de datos (Wasp la configura automaticamente en dev)# DATABASE_URL=postgresql://...
# JWT Secret (generar uno único)JWT_SECRET=tu-jwt-secret-muy-seguro
# StripeSTRIPE_SECRET_KEY=sk_test_...STRIPE_WEBHOOK_SECRET=whsec_...
# AWS S3 (para videos)AWS_ACCESS_KEY_ID=...AWS_SECRET_ACCESS_KEY=...AWS_S3_BUCKET=...AWS_S3_REGION=us-east-1
# Email (SendGrid para produccion)SENDGRID_API_KEY=...
# Notificaciones de ventas B2B (opcional)# Recibe un email cada vez que alguien llena el formulario de demo en /teamsSALES_NOTIFICATION_EMAIL=ventas@tuempresa.com
# OpenAI (opcional, para features de AI)OPENAI_API_KEY=sk-....env.client
REACT_APP_STRIPE_PUBLISHABLE_KEY=pk_test_...3. Iniciar la Base de Datos
Sección titulada «3. Iniciar la Base de Datos»En una terminal separada (dejar corriendo):
cd appwasp db startEsto inicia un contenedor Docker con PostgreSQL.
4. Ejecutar Migraciones
Sección titulada «4. Ejecutar Migraciones»wasp db migrate-devSi es la primera vez, te pedira un nombre para la migración (ej: “init”).
5. (Opcional) Seed de Datos
Sección titulada «5. (Opcional) Seed de Datos»# Crear cursos, usuarios de prueba y certificadoswasp db seed seedAllDummyData
# Crear usuario administradorwasp db seed seedAdminUserEsto crea 4 cursos de muestra, 50 usuarios de prueba, y un usuario con certificado. Ver Datos de Desarrollo para más detalles.
Credenciales de Prueba
Sección titulada «Credenciales de Prueba»| Usuario | Password | |
|---|---|---|
| Test User | test@talentbricks.ai | Test123! |
| Admin | admin@talentbricks.ai | Admin123! |
El usuario admin tiene acceso al panel de administración en /admin.
6. Iniciar el Servidor de Desarrollo
Sección titulada «6. Iniciar el Servidor de Desarrollo»En otra terminal:
cd appwasp startLa aplicación estara disponible en:
- Frontend: http://localhost:3000
- Backend: http://localhost:3001
configuración de Stripe (Desarrollo)
Sección titulada «configuración de Stripe (Desarrollo)»1. Instalar Stripe CLI
Sección titulada «1. Instalar Stripe CLI»# macOSbrew install stripe/stripe-cli/stripe
# Verificarstripe --versión2. Login en Stripe
Sección titulada «2. Login en Stripe»stripe login3. Escuchar Webhooks Locales
Sección titulada «3. Escuchar Webhooks Locales»En una terminal separada:
stripe listen --forward-to localhost:3001/payments-webhookEsto te dara un webhook secret que debes poner en .env.server:
STRIPE_WEBHOOK_SECRET=whsec_...Configuración de Storage (AWS S3 o Azure Blob)
Sección titulada «Configuración de Storage (AWS S3 o Azure Blob)»La aplicación soporta dos proveedores de almacenamiento. Se selecciona con la variable
STORAGE_PROVIDER (por defecto: aws).
Opción A: AWS S3
Sección titulada «Opción A: AWS S3»Agrega estas variables a .env.server:
STORAGE_PROVIDER=awsAWS_S3_IAM_ACCESS_KEY=...AWS_S3_IAM_SECRET_KEY=...AWS_S3_FILES_BUCKET=tu-bucketAWS_S3_REGION=us-east-1Crear Bucket S3
Sección titulada «Crear Bucket S3»aws s3 mb s3://talentbricksai-videos --región us-east-1Configurar CORS en el Bucket
Sección titulada «Configurar CORS en el Bucket»Ir a S3 > Bucket > Permissions > CORS configuration:
[ { "AllowedHeaders": ["*"], "AllowedMethods": ["GET", "PUT", "POST"], "AllowedOrigins": ["http://localhost:3000"], "ExposeHeaders": [] }](Opcional) Configurar CloudFront
Sección titulada «(Opcional) Configurar CloudFront»Para producción, configurar una distribución CloudFront apuntando al bucket S3.
Opción B: Azure Blob Storage
Sección titulada «Opción B: Azure Blob Storage»Agrega estas variables a .env.server:
STORAGE_PROVIDER=azureAZURE_STORAGE_ACCOUNT_NAME=tu-cuentaAZURE_STORAGE_ACCOUNT_KEY=tu-claveAZURE_STORAGE_CONTAINER_NAME=tu-contenedorEl contenedor debe tener acceso privado (la aplicación genera SAS URLs firmadas con TTL de 1 hora).
Comandos útiles
Sección titulada «Comandos útiles»| Comando | descripción |
|---|---|
wasp start | Iniciar servidor de desarrollo |
wasp db start | Iniciar PostgreSQL |
wasp db migrate-dev | Crear/aplicar migraciones |
wasp db studio | Abrir Prisma Studio (GUI de BD) |
wasp db seed | Ejecutar seed script |
wasp clean | Limpiar cache de Wasp |
wasp build | Build para producción |
Verificar instalación
Sección titulada «Verificar instalación»- Abrir http://localhost:3000
- Crear una cuenta de prueba
- Verificar que el email de verificación aparece en la consola (dev mode)
- Navegar por la aplicación
Troubleshooting
Sección titulada «Troubleshooting»Error: “wasp db start” falla
Sección titulada «Error: “wasp db start” falla»- Verificar que Docker este corriendo
- Intentar
docker system prunepara limpiar contenedores viejos
Error: “Cannot find module…”
Sección titulada «Error: “Cannot find module…”»cd apprm -rf node_modules .waspnpm installwasp startCambios en schema.prisma no se reflejan
Sección titulada «Cambios en schema.prisma no se reflejan»wasp db migrate-dev# Reiniciar wasp startPuerto 3000 en uso
Sección titulada «Puerto 3000 en uso»# Encontrar el procesolsof -i :3000
# Matar el procesokill -9 <PID>Error: “ENVIRONMENT VALIDATION FAILED”
Sección titulada «Error: “ENVIRONMENT VALIDATION FAILED”»Si ves este error al iniciar el servidor, significa que faltan variables de entorno requeridas:
🚨 ENVIRONMENT VALIDATION FAILED
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ REQUIRED Variables Missing (2)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
❌ STRIPE_API_KEY Stripe API key for payment processing Get it: https://dashboard.stripe.com/apikeysSolución:
- Verificar que tienes
.env.serverenapp/ - Agregar las variables que faltan según el error
- En desarrollo, puedes usar valores de test:
app/.env.server STRIPE_API_KEY=sk_test_...STRIPE_WEBHOOK_SECRET=whsec_...
Ver Variables de Entorno para referencia completa.
Nota: Solo variables marcadas como productionOnly: true en el validador son opcionales en
desarrollo.