Saltar al contenido principal
¡Bienvenido a Firecrawl 🔥! Aquí tienes instrucciones para obtener el proyecto en tu entorno local, ejecutarlo por tu cuenta (y contribuir). Si vas a contribuir, el proceso es similar al de otros repos de código abierto: haz un fork de Firecrawl, realiza cambios, ejecuta las pruebas y abre un PR. Si tienes preguntas o necesitas ayuda para empezar, escribe a help@firecrawl.com o abre un issue.

Ejecutar el proyecto localmente

Primero, instala las dependencias:
  1. Node.js instrucciones
  2. pnpm instrucciones
  3. Redis instrucciones
  4. PostgreSQL
  5. Docker (opcional) (para ejecutar PostgreSQL)
Debes configurar la base de datos de PostgreSQL ejecutando el archivo SQL en apps/nuq-postgres/nuq.sql. La forma más sencilla es usar la imagen de Docker dentro de apps/nuq-postgres. Con Docker en ejecución, compila la imagen:
docker build -t nuq-postgres .
y luego ejecuta:
docker run --name nuqdb \          
  -e POSTGRES_PASSWORD=postgres \
  -p 5433:5432 \
  -v nuq-data:/var/lib/postgresql/data \
  -d nuq-postgres
Configura las variables de entorno en un archivo .env en el directorio /apps/api/; puedes copiar la plantilla de .env.example. Para empezar, no configuraremos la autenticación ni ningún servicio opcional (análisis de PDF, bloqueo de JS, funciones de IA). .env:
# ===== ENVS obligatorias ======
NUM_WORKERS_PER_QUEUE=8
PORT=3002
HOST=0.0.0.0
REDIS_URL=redis://localhost:6379
REDIS_RATE_LIMIT_URL=redis://localhost:6379

## Para activar la autenticación de la base de datos, debes configurar Supabase.
USE_DB_AUTHENTICATION=false

## Uso de PostgreSQL para la cola: cambia esto si las credenciales, el host o la base de datos son diferentes
NUQ_DATABASE_URL=postgres://postgres:postgres@localhost:5433/postgres

# ===== ENVS opcionales ======

# Configuración de Supabase (se usa para admitir la autenticación en BD, registro avanzado, etc.)
SUPABASE_ANON_TOKEN=
SUPABASE_URL=
SUPABASE_SERVICE_TOKEN=

# Otros opcionales
TEST_API_KEY= # úsala si configuraste la autenticación y quieres probar con una clave de API real
OPENAI_API_KEY= # agrega para funciones dependientes de LLM (generación de alt de imagen, etc.)
BULL_AUTH_KEY= @
PLAYWRIGHT_MICROSERVICE_URL=  # configura si quieres ejecutar un fallback de Playwright
LLAMAPARSE_API_KEY= # configura si tienes una clave de Llamaparse que quieras usar para analizar PDF
SLACK_WEBHOOK_URL= # configura si quieres enviar mensajes de estado del servidor a Slack
POSTHOG_API_KEY= # configura si quieres enviar eventos de PostHog como registros de tareas
POSTHOG_HOST= # configura si quieres enviar eventos de PostHog como registros de tareas


Instalación de dependencias

Primero, instala las dependencias con pnpm.
# cd apps/api # para asegurarte de que estás en la carpeta correcta
pnpm install # asegúrate de tener pnpm versión 9+.

Ejecución del proyecto

Necesitarás abrir 3 terminales.

Terminal 1 - configuración de Redis

Ejecuta el comando en cualquier parte de tu proyecto
redis-server

Terminal 2 - configuración del servicio

Ahora, ve al directorio apps/api/ y ejecuta:
pnpm start
# si vas a usar la función [llm-extract](https://github.com/firecrawl/firecrawl/pull/586/), también debes exportar OPENAI_API_KEY=sk-______
Esto iniciará los workers responsables de procesar las tareas de rastreo.

Terminal 3: enviando nuestra primera solicitud.

Bien, ahora enviemos nuestra primera solicitud.
curl -X GET http://localhost:3002/test
Esto debería devolver la respuesta «Hello, world!» Si quieres probar el punto de conexión /crawl, puedes ejecutar lo siguiente
curl -X POST http://localhost:3002/v1/crawl \
    -H 'Content-Type: application/json' \
    -d '{
      "url": "https://mendable.ai"
    }'

Alternativa: usar Docker Compose

Para una configuración más sencilla, puedes usar Docker Compose para ejecutar todos los servicios:
  1. Requisitos previos: asegúrate de tener Docker y Docker Compose instalados
  2. Copia el archivo .env.example como .env en el directorio /apps/api/ y configúralo según sea necesario
  3. Desde el directorio raíz, ejecuta:
docker compose up
Esto iniciará Redis, el servidor de la API y los workers automáticamente con la configuración correcta.

Pruebas:

La mejor forma de hacerlo es ejecutar los tests con npm run test:snips.