Guide on Self Hosting Firecrawl on Ubuntu

English 简体中文 繁体中文 ภาษาไทย Tiếng Việt
Summary

Firecrawl is an open-source tool designed to convert web pages into LLM-ready formats like Markdown and HTML. This guide details how to self-host Firecrawl natively on Ubuntu, offering an alternative to Docker for developers seeking more control. The process involves installing Node.js, pnpm, and Redis, then cloning the Firecrawl repository and configuring environment variables. Finally, developers must start Redis, the Firecrawl worker, and the API server in separate terminals, ensuring distinct ports for the worker and API to prevent conflicts. A curl command can then validate the successful setup.

Firecrawl là một công cụ mã nguồn mở mạnh mẽ để chuyển đổi các trang web và trang mạng thành các định dạng sạch, sẵn sàng cho LLM như Markdown, HTML, ảnh chụp màn hình, dữ liệu có cấu trúc, v.v. Mặc dù Docker thường được sử dụng để đơn giản hóa việc triển khai, bạn có thể thích thiết lập Ubuntu gốc hơn—để kiểm soát tốt hơn, minh bạch hoặc thuận tiện cho việc phát triển. Dưới đây là cách thực hiện.

Ngoài ra còn có hướng dẫn về cách thiết lập cục bộ, nhưng một số thông tin trong hướng dẫn đã lỗi thời và có thể không hoạt động như mong đợi nếu bạn chỉ làm theo một cách mù quáng. Tuy nhiên, bạn luôn có thể sử dụng nó như một tài liệu tham khảo.

Điều kiện tiên quyết

Trước khi bắt đầu, hãy đảm bảo bạn có:

  • Node.js (>=18 LTS) đã cài đặt
  • pnpm để quản lý gói
  • Redis đang chạy cục bộ (localhost:6379) cho hàng đợi công việc

Các bước cài đặt

1. Cài đặt các phụ thuộc

# Install Node.js
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs build-essential

# Install pnpm globally
curl -fsSL https://get.pnpm.io/install.sh | sh -

# Install Redis
sudo apt-get install lsb-release curl gpg
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
sudo chmod 644 /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
sudo apt-get update
sudo apt-get install redis

2. Sao chép kho lưu trữ Firecrawl và xây dựng

Truy cập GitHub và sao chép kho lưu trữ vào thư mục cục bộ

git clone https://github.com/mendableai/firecrawl.git
cd firecrawl/apps/api

3. Định cấu hình các biến môi trường

Sao chép cấu hình ví dụ và cập nhật nó:

cp .env.example .env
# Edit .env to include:
NUM_WORKERS_PER_QUEUE=8
PORT=3002
HOST=0.0.0.0
REDIS_URL=redis://localhost:6379
REDIS_RATE_LIMIT_URL=redis://localhost:6379

# for local, we can bypass Auth first, otherwise may need Supabase setup
USE_DB_AUTHENTICATION=false

Các tham số khác trong tệp có thể cho thuê chúng như cũ. Vui lòng thêm bất kỳ biến môi trường tùy chọn nào khi cần. Nếu bạn cần thu thập nội dung và lưu dưới dạng ảnh chụp màn hình, bạn có thể cần thiết lập Playwright và định cấu hình địa chỉ dịch vụ trong .env. Nếu bạn không có kế hoạch làm điều đó vào lúc này, có thể để nguyên như vậy.

4. Khởi động các dịch vụ

Chạy các lệnh này trong các thiết bị đầu cuối riêng biệt:

# Terminal A: Start Redis
sudo systemctl start redis-server

# Terminal B: Start the Worker
cd firecrawl/apps/api
PORT=3003 pnpm run workers

# Terminal C: Start the API Server
cd firecrawl/apps/api
pnpm run start

Lưu ý rằng khi khởi động các worker, bạn cần đặt rõ ràng một cổng để nó sẽ không nghe ở 3002 được đặt trong .env vì nó sẽ được sử dụng khi khởi động máy chủ api. Nếu không, bạn sẽ thấy lỗi bên dưới.

2025-09-04 15:23:23 info [:]: Worker 34522 started 
node:events:497
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRINUSE: address already in use 0.0.0.0:3002
    at Server.setupListenHandle [as _listen2] (node:net:1940:16)
    at listenInCluster (node:net:1997:12)
    at node:net:2206:7
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
Emitted 'error' event on WebSocketServer instance at:
    at Server.emit (node:events:519:28)
    at emitErrorNT (node:net:1976:8)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21) {
  code: 'EADDRINUSE',
  errno: -98,
  syscall: 'listen',
  address: '0.0.0.0',
  port: 3002
}

Node.js v22.19.0

5. Kiểm tra thiết lập của bạn

Sử dụng curl để xác thực rằng API đang phản hồi:

curl -X POST http://localhost:3002/v2/scrape \
  -H 'Content-Type: application/json' \
  -d '{"url":"https://www.pixelstech.net/document/aboutus.php", "formats":["markdown","html"]}'

Bạn sẽ nhận được đầu ra có cấu trúc bao gồm Markdown và HTML.

Điều này cho thấy thiết lập hoạt động. Bạn có thể khám phá thêm các tùy chọn do Firecrawl cung cấp ngay bây giờ.

Thiết lập hợp lý này giúp mọi thứ minh bạch và có thể tùy chỉnh—hoàn hảo cho việc phát triển, đóng góp hoặc tự lưu trữ được tinh chỉnh. Trong bài đăng tiếp theo, chúng tôi sẽ cung cấp cách thu thập dưới dạng ảnh chụp màn hình bằng Playwright.

UBUNTU SETUP GUIDE FIRECRAWL

  RELATED

  COMMENTS

0

No comment for this article.