Pular para o conteúdo principal
Bem-vindo ao Firecrawl 🔥! Aqui estão algumas instruções para obter o projeto localmente, para que você possa executá-lo por conta própria (e contribuir). Se você for contribuir, observe que o processo é semelhante ao de outros repositórios open source: faça um fork do Firecrawl, implemente as mudanças, rode os testes e abra um PR. Se tiver alguma dúvida e quiser ajuda para começar, envie um e-mail para help@firecrawl.com ou abra uma issue!

Executando o projeto localmente

Primeiro, instale as dependências:
  1. Node.js instruções
  2. pnpm instruções
  3. Redis instruções
  4. PostgreSQL
  5. Docker (opcional) (para executar o PostgreSQL)
Você precisa configurar o banco de dados PostgreSQL executando o arquivo SQL em apps/nuq-postgres/nuq.sql. A maneira mais simples é usar a imagem do Docker em apps/nuq-postgres. Com o Docker em execução, faça o build da imagem:
docker build -t nuq-postgres .
e, em seguida, execute:
docker run --name nuqdb \          
  -e POSTGRES_PASSWORD=postgres \
  -p 5433:5432 \
  -v nuq-data:/var/lib/postgresql/data \
  -d nuq-postgres
Defina variáveis de ambiente em um arquivo .env no diretório /apps/api/. Você pode copiar o modelo de .env.example. Para começar, não vamos configurar autenticação nem quaisquer subserviços opcionais (análise de PDF, suporte a bloqueio de JS, recursos de IA). .env:
# ===== Variáveis de ambiente obrigatórias ======
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 ativar a autenticação no banco, você precisa configurar o Supabase.
USE_DB_AUTHENTICATION=false

## Usando PostgreSQL para fila — altere se credenciais, host ou banco forem diferentes
NUQ_DATABASE_URL=postgres://postgres:postgres@localhost:5433/postgres

# ===== Variáveis de ambiente opcionais ======

# Configuração do Supabase (usado para autenticação no banco, logging avançado, etc.)
SUPABASE_ANON_TOKEN=
SUPABASE_URL=
SUPABASE_SERVICE_TOKEN=

# Outras opcionais
TEST_API_KEY= # use se você configurou autenticação e quer testar com uma chave de API real
OPENAI_API_KEY= # adicione para recursos dependentes de LLM (geração de alt de imagem, etc.)
BULL_AUTH_KEY= @
PLAYWRIGHT_MICROSERVICE_URL=  # defina se quiser executar um fallback do Playwright
LLAMAPARSE_API_KEY= # defina se você tiver uma chave do LlamaParse que queira usar para processar PDFs
SLACK_WEBHOOK_URL= # defina se quiser enviar mensagens de status de saúde do servidor para o Slack
POSTHOG_API_KEY= # defina se quiser enviar eventos do PostHog, como logs de jobs
POSTHOG_HOST= # defina se quiser enviar eventos do PostHog, como logs de jobs


Instalando dependências

Primeiro, instale as dependências usando pnpm.
# cd apps/api # para garantir que você está na pasta correta
pnpm install # certifique-se de estar usando o pnpm na versão 9+!

Executando o projeto

Você precisará abrir 3 terminais.

Terminal 1 - configurando o Redis

Execute o comando em qualquer lugar no seu projeto
redis-server

Terminal 2 - configurando o serviço

Agora, vá até o diretório apps/api/ e execute:
pnpm start
# se você for usar o [recurso llm-extract](https://github.com/firecrawl/firecrawl/pull/586/), também deve exportar OPENAI_API_KEY=sk-______
Isso iniciará os workers responsáveis por processar tarefas de crawl.

Terminal 3 - enviando nossa primeira requisição.

Certo: agora vamos enviar nossa primeira requisição.
curl -X GET http://localhost:3002/test
Isso deve retornar a resposta “Hello, world!” Se você quiser testar o endpoint /crawl, pode executar isto
curl -X POST http://localhost:3002/v1/crawl \
    -H 'Content-Type: application/json' \
    -d '{
      "url": "https://mendable.ai"
    }'

Alternativa: Usar Docker Compose

Para uma configuração mais simples, você pode usar o Docker Compose para executar todos os serviços:
  1. Pré-requisitos: Certifique-se de ter o Docker e o Docker Compose instalados
  2. Copie o arquivo .env.example para .env no diretório /apps/api/ e configure conforme necessário
  3. Na raiz do projeto, execute:
docker compose up
Isso vai iniciar o Redis, o servidor de API e os workers automaticamente com a configuração correta.

Testes:

A melhor forma de fazer isso é rodar os testes com npm run test:snips.