Skip to main content
Execute o Firecrawl localmente ao modificar a API, os workers ou os testes. Este processo instala as dependências de desenvolvimento e inicia os serviços do código-fonte com o harness da API.
Este é um ambiente de desenvolvimento para contribuidores, não um guia de implantação. Se você quiser executar o Firecrawl em uma infraestrutura sob seu controle sem modificar o produto, use Hospedagem própria do Firecrawl.

Escolha entre desenvolvimento local e auto-hospedagem

  • Desenvolva localmente quando precisar de ciclos rápidos de codificação, teste e depuração usando a revisão atual do código-fonte.
  • Auto-hospede uma versão específica quando quiser uma base estável do Docker Compose na sua própria infraestrutura.
  • Use o Firecrawl Cloud quando quiser o caminho gerenciado mais rápido, sem precisar operar nenhum dos dois ambientes.
Mantenha esses ambientes separados. O arquivo de desenvolvimento da API em apps/api/.env e o arquivo .env do Compose na raiz são usados por processos diferentes e não são intercambiáveis.

Inicie o ambiente de desenvolvimento do Firecrawl

Instale os pré-requisitos

Instale:
  • Git
  • Node.js 22
  • pnpm 11.4.0
  • Redis
  • Docker ou Podman para os contêineres do PostgreSQL e do RabbitMQ gerenciados pelo harness da API
  • Go 1.23 ou mais recente, recompilado pelo harness da API a cada inicialização
  • Rust, compilado durante o pnpm install para o pacote nativo @mendable/firecrawl-rs
Ative a versão do gerenciador de pacotes usada pela API:

Clone o Firecrawl e instale as dependências

Crie apps/api/.env com a configuração mínima de desenvolvimento sem autenticação:
Deixe NUQ_DATABASE_URL e NUQ_RABBITMQ_URL não configuradas para que o harness crie contêineres locais do PostgreSQL e RabbitMQ. Configure-as apenas se você for gerenciar essas dependências.

Inicie o Redis e o Firecrawl

Inicie o Redis em um terminal:
Em seguida, inicie o Firecrawl em apps/api, em outro terminal:
O comando start compila a API, inicia os processos da API e do worker e gerencia os contêineres locais da fila. Mantenha esse terminal aberto durante o desenvolvimento.

Verifique um scraping local

Confirme se o processo da API responde:
Resposta esperada:
Em seguida, teste o fluxo de scraping:
Uma resposta bem-sucedida inclui success: true, conteúdo em Markdown em data.markdown e um status HTTP em data.metadata.statusCode.

Modifique e teste o Firecrawl

Mantenha cada alteração focada, inclua um fluxo de sucesso e cobertura relevante para falhas e execute o comando de teste mais específico, mantido no repositório, que comprove o comportamento. Em apps/api, execute a suíte de snippets da API com suas dependências:
O harness inicia a API, os workers, o PostgreSQL e o RabbitMQ para executar o comando de teste e, em seguida, encerra os processos que iniciou. Use um caminho mais específico do Vitest quando não for necessário executar toda a suíte de snippets. Para o fluxo de trabalho de contribuição, consulte o CONTRIBUTING.md do repositório antes de abrir um pull request.

Solução de problemas no ambiente de desenvolvimento

Redis não conecta

Confirme se o Redis está escutando em localhost:6379 e se ambas as URLs do Redis em apps/api/.env usam esse endereço.

O harness não consegue iniciar o PostgreSQL ou o RabbitMQ

Inicie o Docker ou o Podman e execute pnpm start novamente. Se você gerencia os serviços por conta própria, defina explicitamente as URLs de conexão em vez de depender de contêineres gerenciados pelo harness.

A porta 3002 já está em uso

Interrompa o outro processo ou altere PORT em apps/api/.env e, em seguida, use a mesma porta nas solicitações de verificação.

A busca básica funciona, mas a renderização no navegador não

Deixar PLAYWRIGHT_MICROSERVICE_URL vazio mantém o serviço Playwright separado desativado. Inicie e configure esse serviço apenas quando a alteração que você estiver testando exigir isso.

Próximos passos