Spaces:
Runtime error
Despliegue en Render.com + Neon Database
Arquitectura
- Aplicación: Render.com (Docker)
- Base de Datos: Neon PostgreSQL (gratis, 500MB)
- Outputs: Disco persistente en Render (5GB)
Paso 1: Crear la Base de Datos en Neon
Ir a Neon
- Visitá https://neon.tech
- Click en "Sign Up" (usá GitHub para más facilidad)
Crear un nuevo proyecto
- Click en "New Project"
- Name:
browserpilot-db - Region: Us-West (Oregon) - misma que Render
- Click en "Create Project"
Obtener la DATABASE_URL
- En el dashboard del proyecto, vas a ver la "Connection String"
- Copiá el string que dice algo como:
postgresql://user:password@ep-xxx.us-west-2.aws.neon.tech/dbname?sslmode=require - Guardala para el próximo paso
Configuración opcional
- Podés ver la base de datos desde el dashboard de Neon
- Las tablas se crean automáticamente al iniciar la app
Paso 2: Desplegar en Render
Opción 1: Usando el Dashboard de Render (Recomendado)
Crear una cuenta en Render
- Ir a https://render.com y registrarse
Crear un nuevo Web Service
- Click en "New +" → "Web Service"
- Conectar tu repositorio de GitHub
Configurar el servicio
- Name:
browserpilot(o el nombre que quieras) - Region: Oregon (us-west-2) - misma que Neon
- Branch:
main - Root Directory: (dejar vacío)
- Runtime:
Docker - Docker Command: (dejar vacío)
- Name:
Configurar Variables de Entorno En la sección "Environment", agregar:
Key Value GOOGLE_API_KEYAIzaSyBDl98MXre7ecN9jW16EVltBlaf38awkdoDATABASE_URL(pegá el connection string de Neon) SCRAPER_PROXIES[](o tu configuración de proxies si tenés)Configurar Disk (opcional pero recomendado)
- Click en "Add Disk"
- Name:
outputs - Mount Path:
/app/outputs - Size: 5 GB (mínimo)
Seleccionar Plan
- Starter ($7/mes) - recomendado para empezar
- El plan free no soporta Docker
Deploy
- Click en "Create Web Service"
- Esperar a que se complete el despliegue (~5-10 minutos)
Opción 2: Usando Render CLI
# Instalar Render CLI
npm install -g @render-cloud/renderctl
# Login
renderctl login
# Deploy usando el render.yaml
cd /home/ncx/BROPILOT/33BrowserPilot
renderctl up -f render.yaml
Configuración del render.yaml
El archivo render.yaml ya está configurado con:
- Tipo: Web Service con Docker
- Región: Oregon
- Plan: Starter
- Health check:
/ - Disco persistente para outputs
Después del despliegue
Verificar el deploy
- Ir al dashboard de Render
- Ver los logs en tiempo real
- Verificar que el health check pase
Acceder a la aplicación
- La URL será algo como:
https://browserpilot-xxxx.onrender.com
- La URL será algo como:
Configurar dominio personalizado (opcional)
- En el dashboard → Settings → Custom Domain
Variables de Entorno Requeridas
| Variable | Requerida | Descripción |
|---|---|---|
GOOGLE_API_KEY |
✅ Sí | API key de Google Gemini |
DATABASE_URL |
✅ Sí | Connection string de Neon PostgreSQL |
SCRAPER_PROXIES |
❌ No | Configuración de proxies (JSON array) |
Costos Estimados
| Servicio | Plan | Costo |
|---|---|---|
| Render | Starter | $7/mes |
| Render Disk | 5GB | ~$0.50/mes |
| Neon | Free | $0/mes (500MB) |
| Total | ~$7.50/mes |
Endpoints de la API
Jobs
POST /job- Crear un nuevo jobGET /jobs- Listar todos los jobs (con paginación)GET /job/{job_id}- Obtener detalles de un jobDELETE /job/{job_id}- Eliminar un jobGET /download/{job_id}- Descargar el resultado
Streaming
GET /streaming/{job_id}- Obtener info de streamingPOST /streaming/create/{job_id}- Crear sesión de streamingDELETE /streaming/{job_id}- Limpiar sesiónWS /stream/{job_id}- WebSocket para streaming
Sistema
GET /stats- Estadísticas del sistemaGET /proxy/stats- Estadísticas de proxiesPOST /proxy/reload- Recargar proxies
Notas Importantes
⚠️ Importante: Render no soporta el plan free para servicios Docker.
⚠️ Importante: Los servicios en el plan starter se duermen después de 15 minutos de inactividad. El primer request después de dormir puede tardar ~30 segundos.
⚠️ Importante: Neon tiene un límite de 500MB en el plan free. Si necesitás más espacio, considerá upgrade a Neon Pro ($19/mes).
Troubleshooting
El deploy falla
- Verificar los logs en el dashboard de Render
- Asegurarse de que el Dockerfile sea correcto
- Verificar que las variables de entorno estén configuradas
- Checkear que la DATABASE_URL de Neon sea correcta
La aplicación no responde
- Verificar el health check en el dashboard
- Revisar los logs de errores
- Verificar que la GOOGLE_API_KEY sea válida
- Verificar que la conexión a Neon funcione
Problemas de memoria
- El plan starter tiene 512MB RAM
- Si necesitás más, upgrade al plan Standard ($15/mes)
La base de datos no conecta
- Verificar que la DATABASE_URL incluya
?sslmode=require - Checkear que la región de Neon sea la misma que Render (us-west-2)
- Verificar los logs de error de conexión