Despliegue
Section titled “Despliegue”TalentBricksAI usa Fly.io para hosting. Esta guia cubre el despliegue completo.
Prerequisitos
Section titled “Prerequisitos”- Cuenta en Fly.io
- Fly CLI instalado
- Stripe configurado en modo produccion
- AWS S3/CloudFront configurado
Instalar Fly CLI
Section titled “Instalar Fly CLI”# macOSbrew install flyctl
# Linuxcurl -L https://fly.io/install.sh | sh
# Verificarfly versionLogin en Fly
Section titled “Login en Fly”fly auth loginDespliegue Inicial
Section titled “Despliegue Inicial”1. Configurar la Aplicacion
Section titled “1. Configurar la Aplicacion”Desde el directorio app/:
wasp deploy fly launch talentbricksai miatalentbricksai: nombre de la appmia: region (Miami, cercana a Latinoamerica)
Esto crea:
- Aplicacion de servidor
- Base de datos PostgreSQL
- Configuracion de despliegue
2. Configurar Variables de Entorno
Section titled “2. Configurar Variables de Entorno”# JWT Secret (generar uno seguro)wasp deploy fly cmd --context server secrets set JWT_SECRET="tu-jwt-secret-muy-seguro-para-produccion"
# Stripe (modo produccion)wasp deploy fly cmd --context server secrets set STRIPE_SECRET_KEY="sk_live_..."wasp deploy fly cmd --context server secrets set STRIPE_WEBHOOK_SECRET="whsec_..."
# AWS S3wasp deploy fly cmd --context server secrets set AWS_ACCESS_KEY_ID="AKIA..."wasp deploy fly cmd --context server secrets set AWS_SECRET_ACCESS_KEY="..."wasp deploy fly cmd --context server secrets set AWS_S3_BUCKET="talentbricksai-videos"wasp deploy fly cmd --context server secrets set AWS_S3_REGION="us-east-1"
# CloudFrontwasp deploy fly cmd --context server secrets set CLOUDFRONT_DOMAIN="d123abc.cloudfront.net"wasp deploy fly cmd --context server secrets set CLOUDFRONT_KEY_PAIR_ID="K123..."wasp deploy fly cmd --context server secrets set CLOUDFRONT_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----..."
# SendGrid (emails)wasp deploy fly cmd --context server secrets set SENDGRID_API_KEY="SG...."
# URL del clientewasp deploy fly cmd --context server secrets set CLIENT_URL="https://talentbricksai.fly.dev"3. Variables del Cliente
Section titled “3. Variables del Cliente”Para variables del cliente, editar fly.toml o usar:
wasp deploy fly cmd --context client secrets set REACT_APP_STRIPE_PUBLISHABLE_KEY="pk_live_..."4. Ejecutar Despliegue
Section titled “4. Ejecutar Despliegue”wasp deploy fly deployDespliegues Subsecuentes
Section titled “Despliegues Subsecuentes”Para actualizaciones:
cd appwasp deploy fly deployConfiguracion de Dominio Personalizado
Section titled “Configuracion de Dominio Personalizado”1. Obtener IP del Servidor
Section titled “1. Obtener IP del Servidor”fly ips list -a talentbricksai2. Configurar DNS
Section titled “2. Configurar DNS”En tu proveedor de DNS, agregar:
| Tipo | Host | Valor |
|---|---|---|
| A | @ | IP_DEL_SERVIDOR |
| A | www | IP_DEL_SERVIDOR |
3. Agregar Dominio en Fly
Section titled “3. Agregar Dominio en Fly”fly certs add tudominio.com -a talentbricksaifly certs add www.tudominio.com -a talentbricksai4. Actualizar Variables
Section titled “4. Actualizar Variables”wasp deploy fly cmd --context server secrets set CLIENT_URL="https://tudominio.com"Configurar Stripe para Produccion
Section titled “Configurar Stripe para Produccion”1. Activar Modo Produccion
Section titled “1. Activar Modo Produccion”En Stripe Dashboard:
- Completar verificacion de cuenta
- Cambiar a “Live mode”
- Obtener nuevas API keys
2. Configurar Webhook de Produccion
Section titled “2. Configurar Webhook de Produccion”- Ir a Developers > Webhooks
- Add endpoint:
https://tudominio.com/stripe-webhook - Seleccionar eventos necesarios
- Copiar signing secret y actualizar variable
Monitoreo
Section titled “Monitoreo”Logs en Tiempo Real
Section titled “Logs en Tiempo Real”fly logs -a talentbricksaiDashboard de Fly
Section titled “Dashboard de Fly”Visitar https://fly.io/dashboard para:
- Metricas de uso
- Estado de la base de datos
- Alertas
Conectar a la Base de Datos
Section titled “Conectar a la Base de Datos”fly postgres connect -a talentbricksai-dbEscalar la Aplicacion
Section titled “Escalar la Aplicacion”Escalar Servidor
Section titled “Escalar Servidor”# Ver maquinas actualesfly scale show -a talentbricksai
# Escalar a mas instanciasfly scale count 2 -a talentbricksai
# Cambiar tamano de maquinafly scale vm shared-cpu-2x -a talentbricksaiEscalar Base de Datos
Section titled “Escalar Base de Datos”# Ver estado actualfly postgres show -a talentbricksai-db
# Escalarfly postgres scale -a talentbricksai-db --vm-size shared-cpu-2xBackup de Base de Datos
Section titled “Backup de Base de Datos”Backup Manual
Section titled “Backup Manual”# Conectar via proxyfly proxy 5432 -a talentbricksai-db
# En otra terminal, hacer dumppg_dump -h localhost -p 5432 -U postgres -d talentbricksai > backup.sqlRestore
Section titled “Restore”psql -h localhost -p 5432 -U postgres -d talentbricksai < backup.sqlTroubleshooting
Section titled “Troubleshooting”Ver Logs de Error
Section titled “Ver Logs de Error”fly logs -a talentbricksai | grep -i errorReiniciar la Aplicacion
Section titled “Reiniciar la Aplicacion”fly apps restart talentbricksaiVerificar Estado
Section titled “Verificar Estado”fly status -a talentbricksaiProblemas Comunes
Section titled “Problemas Comunes”Error: “Connection refused”
- Verificar que la base de datos este corriendo
- Revisar variables de entorno
Error: “Stripe webhook failed”
- Verificar STRIPE_WEBHOOK_SECRET
- Asegurar que el endpoint sea accesible
Error: “S3 access denied”
- Verificar credenciales de AWS
- Revisar politicas IAM
Costos Estimados (Fly.io)
Section titled “Costos Estimados (Fly.io)”| Recurso | Costo |
|---|---|
| App (shared-cpu-1x, 256MB) | ~$1.94/mes |
| App (shared-cpu-2x, 512MB) | ~$3.88/mes |
| PostgreSQL (1GB) | ~$1.94/mes |
| PostgreSQL (10GB) | ~$19.40/mes |
Total inicial: ~$5-10/mes
Checklist de Produccion
Section titled “Checklist de Produccion”- Variables de entorno configuradas
- Stripe en modo produccion
- Webhook de Stripe configurado
- AWS S3/CloudFront funcionando
- SendGrid configurado para emails
- Dominio personalizado (opcional)
- SSL certificado activo
- Backups de base de datos configurados
- Monitoreo/alertas activos
Siguiente Paso
Section titled “Siguiente Paso”- Vision General - Revisar arquitectura
- Crear un Curso - Agregar contenido