Pular para o conteúdo principal

Vai contribuir?

Bem-vindo ao Firecrawl 🔥! Aqui estão algumas instruções para obter o projeto localmente, executá-lo por conta própria e contribuir. Se você for contribuir, observe que o processo é semelhante ao de outros repositórios de código aberto: faça um fork do Firecrawl, faça alterações, rode os testes e abra um PR. Se tiver dúvidas ou precisar de ajuda para começar, entre na nossa comunidade no Discord aqui para mais informações ou abra uma issue no GitHub aqui!

Hospedando o Firecrawl por conta própria

Consulte SELF_HOST.md para instruções sobre como executá-lo localmente.

Por quê?

Hospedar o Firecrawl por conta própria é especialmente vantajoso para organizações com políticas de segurança rigorosas que exigem manter os dados em ambientes controlados. Aqui estão alguns motivos principais para considerar a hospedagem própria:
  • Segurança e conformidade reforçadas: Ao auto-hospedar, você garante que todo o tratamento e processamento de dados esteja em conformidade com regulamentações internas e externas, mantendo informações sensíveis dentro da sua infraestrutura segura. Observe que o Firecrawl é um produto da Mendable e possui certificação SOC 2 Type II, o que significa que a plataforma segue altos padrões do setor para gestão da segurança de dados.
  • Serviços personalizáveis: A hospedagem própria permite adaptar serviços, como o Playwright, para atender a necessidades específicas ou lidar com casos de uso particulares que podem não ser contemplados pela oferta padrão em nuvem.
  • Aprendizado e contribuição para a comunidade: Ao configurar e manter sua própria instância, você obtém um entendimento mais profundo de como o Firecrawl funciona, o que também pode resultar em contribuições mais relevantes para o projeto.

Considerações

No entanto, há algumas limitações e responsabilidades adicionais das quais você deve estar ciente:
  1. Acesso limitado ao Fire-engine: Atualmente, instâncias auto-hospedadas do Firecrawl não têm acesso ao Fire-engine, que inclui recursos avançados para lidar com bloqueios de IP, mecanismos de detecção de robôs e mais. Isso significa que, embora você possa gerenciar tarefas básicas de scraping, cenários mais complexos podem exigir configuração adicional ou talvez não sejam suportados.
  2. Configuração manual necessária: Se você precisar usar métodos de scraping além das opções básicas de fetch e Playwright, será necessário configurá-los manualmente no arquivo .env. Isso exige um entendimento mais profundo das tecnologias e pode demandar mais tempo de configuração.
Capacidade: Cloud / Auto-hospedagem
  • Todos os endpoints da API suportados: Sim / Nem sempre; /agent e /browser não são suportados em auto-hospedagem
  • Suporte a captura de tela: Sim / Sim, quando o serviço do Playwright estiver em execução
  • LLMs locais (por exemplo, Ollama): Não suportado / Suportado via OLLAMA_BASE_URL (experimental)
Hospedar o Firecrawl por conta própria é ideal para quem precisa de controle total sobre seus ambientes de scraping e processamento de dados, mas tem como contrapartida a necessidade de manutenção e configurações adicionais.

Etapas

  1. Primeiro, instale as dependências
  1. Configure as variáveis de ambiente
Crie um arquivo .env no diretório raiz; você pode copiar o template em apps/api/.env.example Para começar, não vamos configurar autenticação nem quaisquer subserviços opcionais (análise de PDF, bloqueio de JS, recursos de IA)
Os seguintes recursos de IA exigem um provedor de LLM configurado (por exemplo, OPENAI_API_KEY ou alternativas na seção de recursos de IA acima):
  • Formato JSON na raspagem
  • API /extract
  • Formato de resumo
  • Formato de branding
  • Formato de monitoramento de alterações
  1. (Opcional) Executar com o TypeScript Playwright Service
    • Atualize o arquivo docker-compose.yml para alterar o serviço do Playwright:
      PARA
    • Defina PLAYWRIGHT_MICROSERVICE_URL no arquivo .env:
    • Não se esqueça de configurar o servidor proxy no arquivo .env, conforme necessário.
  2. Compile e execute os contêineres Docker:
Isso iniciará uma instância local do Firecrawl, acessível em http://localhost:3002. Você deve conseguir ver a interface do Bull Queue Manager em http://localhost:3002/admin/{BULL_AUTH_KEY}/queues.
  1. (Opcional) Teste a API
Se você quiser testar o endpoint de crawl, pode executar o seguinte:

Resolução de problemas

Esta seção apresenta soluções para problemas comuns que você pode encontrar ao configurar ou executar sua instância self-hosted do Firecrawl.

O cliente Supabase não está configurado

Sintoma:
Explicação: Esse erro ocorre porque a configuração do cliente do Supabase não foi concluída. Você deve conseguir executar scraping e crawling sem problemas. No momento, não é possível configurar o Supabase em instâncias auto-hospedadas.

Você está ignorando a autenticação

Sintoma:
Explicação: Esse erro ocorre porque a configuração do cliente do Supabase não foi concluída. Você ainda consegue fazer scraping e crawling sem problemas. No momento, não é possível configurar o Supabase em instâncias self-hosted.

Falha ao iniciar contêineres Docker

Sintoma: Os contêineres Docker são encerrados inesperadamente ou não iniciam. Solução: Verifique os logs do Docker em busca de mensagens de erro usando o comando:
  • Certifique-se de que todas as variáveis de ambiente necessárias estejam configuradas corretamente no arquivo .env.
  • Verifique se todos os serviços Docker definidos em docker-compose.yml estão configurados corretamente e se as imagens necessárias estão disponíveis.

Problemas de conexão com o Redis

Sintoma: Erros relacionados à conexão com o Redis, como timeouts ou “Connection refused”. Solução:
  • Certifique-se de que o serviço Redis está em execução no seu ambiente Docker.
  • Verifique se as variáveis REDIS_URL e REDIS_RATE_LIMIT_URL no seu arquivo .env apontam para a instância Redis correta.
  • Verifique as configurações de rede e as regras de firewall que possam estar bloqueando a conexão com a porta do Redis.

O endpoint da API não responde

Sintoma: As requisições de API para a instância do Firecrawl esgotam o tempo (timeout) ou não retornam resposta. Solução:
  • Verifique se o serviço do Firecrawl está em execução conferindo o status do contêiner Docker.
  • Confirme se as variáveis PORT e HOST no arquivo .env estão corretas e se nenhum outro serviço está usando a mesma porta.
  • Verifique a configuração de rede para garantir que o host esteja acessível a partir do cliente que faz a requisição de API.
Ao corrigir esses problemas comuns, você garante uma configuração e operação mais estáveis da sua instância autogerenciada do Firecrawl.

Instalar o Firecrawl em um cluster do Kubernetes (versão simples)

Leia o examples/kubernetes-cluster-install/README.md para obter instruções sobre como instalar o Firecrawl em um cluster do Kubernetes.