browserpilot / DEPLOY_RENDER.md
ncolex's picture
Deploy BrowserPilot with NumPy fix (2.2.6)
c1f04cf verified

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

  1. Ir a Neon

  2. Crear un nuevo proyecto

    • Click en "New Project"
    • Name: browserpilot-db
    • Region: Us-West (Oregon) - misma que Render
    • Click en "Create Project"
  3. 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
  4. 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)

  1. Crear una cuenta en Render

  2. Crear un nuevo Web Service

    • Click en "New +" → "Web Service"
    • Conectar tu repositorio de GitHub
  3. 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)
  4. Configurar Variables de Entorno En la sección "Environment", agregar:

    Key Value
    GOOGLE_API_KEY AIzaSyBDl98MXre7ecN9jW16EVltBlaf38awkdo
    DATABASE_URL (pegá el connection string de Neon)
    SCRAPER_PROXIES [] (o tu configuración de proxies si tenés)
  5. Configurar Disk (opcional pero recomendado)

    • Click en "Add Disk"
    • Name: outputs
    • Mount Path: /app/outputs
    • Size: 5 GB (mínimo)
  6. Seleccionar Plan

    • Starter ($7/mes) - recomendado para empezar
    • El plan free no soporta Docker
  7. 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

  1. Verificar el deploy

    • Ir al dashboard de Render
    • Ver los logs en tiempo real
    • Verificar que el health check pase
  2. Acceder a la aplicación

    • La URL será algo como: https://browserpilot-xxxx.onrender.com
  3. 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 job
  • GET /jobs - Listar todos los jobs (con paginación)
  • GET /job/{job_id} - Obtener detalles de un job
  • DELETE /job/{job_id} - Eliminar un job
  • GET /download/{job_id} - Descargar el resultado

Streaming

  • GET /streaming/{job_id} - Obtener info de streaming
  • POST /streaming/create/{job_id} - Crear sesión de streaming
  • DELETE /streaming/{job_id} - Limpiar sesión
  • WS /stream/{job_id} - WebSocket para streaming

Sistema

  • GET /stats - Estadísticas del sistema
  • GET /proxy/stats - Estadísticas de proxies
  • POST /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