Railway

Deploy Firecrawl | (Just Updated) Web Scraper API for LLMs, Not Open to the Internet

API-key-gated web scraper API for LLMs. Queue, cache and renderer wired.

Deploy Firecrawl | (Just Updated) Web Scraper API for LLMs, Not Open to the Internet

Just deployed

Just deployed

/var/lib/postgresql

/var/lib/rabbitmq

Just deployed

/data

Deploy and Host Firecrawl on Railway

Firecrawl turns any website into clean, LLM-ready Markdown or structured JSON. It scrapes single pages, crawls whole sites, maps URLs, and renders JavaScript through a headless browser, all behind one HTTP API with official Python and Node SDKs.

This template runs the self-hosted edition with an API key required on every route, its job queue and cache on persistent volumes, and every image pinned.

About Hosting Firecrawl

Self-hosted Firecrawl is not a single container. The API process supervises a worker pool, an extract worker and several queue workers, and it needs three backing services: a Postgres built with the nuq job schema, RabbitMQ for the job exchange, and Redis for caching and rate limits. When those are not supplied, Firecrawl's harness tries to start them itself with Docker and exits with Neither Docker nor Podman found — which is what happens inside any container platform.

This template wires all five services together over Railway's private network, keeps the queue database, the RabbitMQ store and the Redis append-only file on volumes, and puts an nginx gateway in front of the API so the public URL requires this deployment's own FIRECRAWL_API_KEY. The renderer, the queue and the databases have no public address at all.

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.

Specifically for this template: self-hosted Firecrawl authenticates nobody. USE_DB_AUTHENTICATION is false in every supported self-hosted configuration, and the code path that reads it returns a mock success before the Authorization header is ever examined. A stock deploy therefore lets anyone who learns the URL scrape and crawl the whole internet on your bill. This template closes that, generates every credential per deploy, and boots refusing to run without a key.

Common Use Cases

  • Feeding a RAG pipeline or vector store with clean Markdown from documentation and marketing sites
  • Giving an AI agent a scraping tool it can call over HTTP, with a key you control
  • Bulk site crawls for competitive research, price monitoring or content migration
  • Extracting structured JSON from pages against a schema you define

Dependencies for Firecrawl Hosting

  • Firecrawl API (ghcr.io/bon5co/firecrawl-railway, on the official ghcr.io/firecrawl/firecrawl)
  • Playwright renderer (ghcr.io/firecrawl/playwright-service)
  • nuq-postgres — Firecrawl's own Postgres build, carrying the queue schema
  • RabbitMQ 4.1
  • Redis 8.2

Deployment Dependencies

Implementation Details

Call the API with the generated key:

curl -X POST https:///v1/scrape \
  -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com", "formats": ["markdown"]}'

The same key works with the official SDKs by pointing them at your deployment:

from firecrawl import FirecrawlApp
app = FirecrawlApp(api_key="", api_url="https://")

FIRECRAWL_API_KEY is generated per deploy and lives in the firecrawl service's variables. Only / is reachable without it. LLM-backed endpoints (JSON extraction, llmstxt) additionally need an OPENAI_API_KEY or an OLLAMA_BASE_URL added to the firecrawl service; plain scrape, crawl, map and search do not.


Template Content

More templates in this category

View Template
Chat Chat
Chat Chat, your own unified chat and search to AI platform.

okisdev
116
View Template
stella
Self-host stella with web, API, Postgres, Redis, and object storage.

Jan Kubica
3
View Template
Hermes Agent | OpenClaw Alternative with Dashboard
Self-Hosted Hermes AI Agent for Telegram, Discord & Slack

codestorm
63