Deploy Firecrawl
Self-hosted web scraping and crawling API for LLMs, behind an API key
Firecrawl
Just deployed
Playwright
Just deployed
Redis
Just deployed
/data
Just deployed
RabbitMQ
Just deployed
/var/lib/rabbitmq
NUQ-Postgres
Just deployed
/var/lib/postgresql/data
Deploy and Host Firecrawl on Railway
Firecrawl is an open-source API that turns websites into clean markdown or structured data for LLMs and AI agents. It scrapes single pages, crawls whole sites, maps links and renders JavaScript-heavy pages in a headless browser. You call it over REST or with the official Python and JavaScript SDKs.
About Hosting Firecrawl
Self-hosting Firecrawl means running several cooperating services. The API process starts the HTTP API plus queue workers. A Playwright service renders JavaScript pages. Redis handles rate limits and job state, RabbitMQ carries queue messages, and a Postgres build with pg_cron stores the job queue. Self-hosted Firecrawl has no API-key check of its own, so this template keeps the API private and puts a small Caddy gateway in front of it. The gateway needs a generated bearer key. Postgres, Redis and RabbitMQ keep their data on volumes. Every image is pinned by digest, and LLM features stay optional.
Common Use Cases
- Turn documentation sites and blogs into markdown for RAG pipelines and AI agents
- Crawl a site on a schedule and feed the pages into a search index or vector database
- Scrape JavaScript-rendered pages from your own backend without paying per request
Dependencies for Firecrawl Hosting
- Redis (Railway's Redis) for rate limiting and job state
- RabbitMQ and Firecrawl's NuQ Postgres (Postgres 17 with
pg_cron) for the job queue - Firecrawl's Playwright service for JavaScript rendering
Deployment Dependencies
- Firecrawl on GitHub and its self-hosting guide
- Firecrawl v2.11 release notes and API reference
- Start scripts and gateway config for this template
Implementation Details
After the deploy, copy FIRECRAWL_API_KEY from the Firecrawl service's variables and call the public domain:
curl -X POST https://YOUR-DOMAIN.up.railway.app/v2/scrape \
-H "Authorization: Bearer $FIRECRAWL_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com","formats":["markdown"]}'
With the SDKs, set api_url to your domain and api_key to the same key. Requests without the key get 401. The queue dashboard is at /admin/BULL_AUTH_KEY/queues, with BULL_AUTH_KEY replaced by its value from the API service. To turn on LLM extraction, add OPENAI_API_KEY (and optionally OPENAI_BASE_URL and MODEL_NAME) to the API service.
Why Deploy Firecrawl on Railway?
Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying Firecrawl on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.
Template Content
Firecrawl
caddy:2.11.9-alpineRedis
redis:8.2RabbitMQ
rabbitmq:3.13.7-managementNUQ-Postgres
ghcr.io/firecrawl/nuq-postgres:latest
