Skip to main content
This guide will walk you through setting up Firecrawl to run on your own infrastructure.

Prerequisites

Before you begin, make sure you have Docker installed:
If you encounter an error during setup, make sure you’re using docker compose (with a space) and not the legacy docker-compose command.

Quick Start with Docker Compose

The easiest way to run Firecrawl is using Docker Compose, which automatically sets up all required services.
1

Clone the repository

2

Create environment file

Create a .env file in the root directory with the following configuration:
3

Build and start the services

Make sure Docker is running before executing these commands.
This will start:
  • Redis: Job queue and rate limiting
  • RabbitMQ: Message broker for job coordination
  • PostgreSQL: Database for queuing and job management
  • Playwright service: JavaScript rendering and browser automation
  • API server: Main API endpoint and workers
4

Verify the installation

Once all services are running, Firecrawl should be accessible at:
  • API: http://localhost:3002
  • Queue Manager UI: http://localhost:3002/admin/CHANGEME/queues
Replace CHANGEME in the Queue Manager URL with the value you set for BULL_AUTH_KEY in your .env file.
5

Test the API

Test the crawl endpoint with a simple curl request:
You should receive a JSON response with a job ID that you can use to check the crawl status.

Local Development Setup

If you want to contribute to Firecrawl or run it without Docker, follow these steps:

Prerequisites

  1. Node.js (installation instructions)
  2. Rust (installation instructions)
  3. pnpm (installation instructions)
  4. Redis (installation instructions)
  5. PostgreSQL
  6. Docker (optional, for running PostgreSQL)

Database Setup

You need to set up the PostgreSQL database by running the SQL file at apps/nuq-postgres/nuq.sql. The easiest way is to use the Docker image:

Environment Configuration

Create a .env file in the /apps/api/ directory:

Installing Dependencies

Running the Services

You’ll need to open 3 terminals: Terminal 1 - Redis:
Terminal 2 - API Server and Workers:
Terminal 3 - Test the API:
This should return “Hello, world!”

Kubernetes Deployment

For production deployments, you can use Kubernetes:

Security Considerations

Critical Security Steps:
  • Use strong PostgreSQL credentials: The defaults in the .env template are for local development only. When deploying to a server, set POSTGRES_USER, POSTGRES_PASSWORD, and POSTGRES_DB to secure values and ensure they match the database service configuration.
  • Keep the database port internal: The provided docker-compose.yaml does not expose PostgreSQL to the host or the internet. Avoid adding a ports mapping for nuq-postgres unless you are restricting access with a firewall.
  • Protect the admin UI: Set BULL_AUTH_KEY to a strong secret, especially on any deployment reachable from untrusted networks.
To access the database for maintenance, prefer using:
Or create a temporary, firewalled tunnel instead of exposing the port directly.

Next Steps

Once your Firecrawl instance is running, check out the Configuration page to learn about customizing your deployment.