Deploy Browserless

Browserless 2.62 headless Chrome for Puppeteer and Playwright, token-gated.

Deploy Browserless

Just deployed

Deploy and Host Browserless on Railway

Browserless runs headless Chromium as a service. Puppeteer, Playwright and other CDP clients connect to it over a WebSocket, and REST endpoints return screenshots, PDFs, page content and scraped data. Your code doesn't need a local Chrome install: one shared browser service handles your apps, scripts and agents.

About Hosting Browserless

This template runs Browserless v2.62.0 (Chromium 158) from the official image, pinned by digest. Every request needs a generated 48-character TOKEN. STRICT_TOKEN_USE is forced on, so only the static docs page answers without it, and the service refuses to start if the token is missing. Chromium uses a lot of memory, and each open session needs a few hundred MB, so CONCURRENT (5), QUEUED (10) and TIMEOUT (60 s) keep a burst of jobs from exhausting the instance. Sessions are ephemeral, so no volume is attached. Browserless is dual-licensed under SSPL-1.0 or a commercial licence. It is free for open-source and non-commercial use, but closed-source commercial use needs a licence from browserless.io.

Common Use Cases

  • Render screenshots and PDFs (invoices, reports, social cards) from URLs or HTML
  • Scrape and test JavaScript-heavy sites with Puppeteer or Playwright, without installing Chrome in every app or CI job
  • Give AI agents and automation tools (n8n, Flowise, custom agents) a shared headless browser over the private network

Dependencies for Browserless Hosting

  • The official ghcr.io/browserless/chromium image (v2.62.0, Chromium 158, Puppeteer 25.16 and Playwright 1.61 to 1.65 supported)
  • No database or volume is needed. Plan on roughly 300 to 500 MB of RAM per concurrent session.

Deployment Dependencies

Implementation Details

The service variables hold ready-made connection URLs that already include the token:

  • BROWSER_WS_ENDPOINT: wss://YOUR-DOMAIN?token=… for Puppeteer connect({ browserWSEndpoint }) and Playwright connectOverCDP()
  • BROWSER_PLAYWRIGHT_ENDPOINT: wss://YOUR-DOMAIN/chromium/playwright?token=… for Playwright chromium.connect()
  • BROWSER_WS_ENDPOINT_PRIVATE: the same CDP URL over Railway's private network, for other services in the project, for example ${{Browserless.BROWSER_WS_ENDPOINT_PRIVATE}}
const browser = await puppeteer.connect({ browserWSEndpoint: process.env.BROWSER_WS_ENDPOINT });

REST example: POST https://YOUR-DOMAIN/chromium/screenshot?token=YOUR_TOKEN with {"url":"https://example.com"}. The health check uses /docs/. Raise CONCURRENT only after you give the service more memory.

Why Deploy Browserless 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 Browserless 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

More templates in this category

View Template
N8N Main + Worker
Deploy and Host N8N with Inactive worker.

jakemerson
120
View Template
Evolution API with n8n
Automate WhatsApp workflows with Evolution API, n8n, and Postgres.

codestorm
110
View Template
Postgres Backup
Cron-based PostgreSQL backup to bucket storage

Railway Templates
868