Deploy Browserless Enterprise by pulling its private Docker image with registry credentials, starting it with your Enterprise license key in KEY, and setting a separate TOKEN to authenticate client requests. For a production deployment, use Docker Compose, pin an image version, allocate enough shared memory for Chrome, and size concurrency and queue settings against your workload.
What you need before deploying
- Docker installed on the target infrastructure.
- A Browserless Enterprise license and the Enterprise key, referred to as
KEY. - Registry credentials from Browserless. These let Docker pull the private image; they are not the runtime license key.
The documented Enterprise image supports ARM64 and AMD64. See the Browserless Enterprise Docker quickstart for current image and registry instructions. Image tags and licensing procedures can change, so confirm them in the official guide when deploying.
Pull and run the Enterprise image
Log in to the private registry, then pull the image. The quickstart documents latest for the basic flow; for production, pin a specific version rather than relying on a moving tag. The version 2.3.0 is an example from the guide, not a claim that it is the latest release.
-
Authenticate Docker to the registry using the credentials Browserless provided:
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Repair Windows errors before they cause bigger problems3Scan for outdated or missing drivers - takes under a minuteSpecial offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.#1 Best Overall
docker login registry.browserless.io -
Pull the image. For a reproducible production deployment, replace the example version with the version you have selected and verified:
docker pull registry.browserless.io/browserless/browserless/enterprise:2.3.0 -
Start a minimal container, substituting your Enterprise license key for
YOUR_ENTERPRISE_KEY:docker run -d --name browserless -p 3000:3000 -e KEY=YOUR_ENTERPRISE_KEY registry.browserless.io/browserless/browserless/enterprise:2.3.0
This quick start exposes the service on host port 3000. It does not set API authentication; add a TOKEN before making the service reachable beyond localhost.
Verify the container
Use the documented endpoints to check that the service responds:
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Rank #2
- 【Build Your Own NAS & Homelab — Not Just Storage】 More than a traditional NAS, ZimaBlade 7700 is a flexible x86 mini server for building your own homelab, personal cloud, or Docker host. Perfect for DIY NAS, self-hosting, container apps, and even retro systems — not limited like typical ARM-based NAS devices.
- 【x86 Platform — Broad Compatibility, Real Freedom】 Powered by an Intel quad-core x86 processor, it runs a wide range of operating systems and software with native compatibility. Ideal for Linux, Docker, CasaOS, and more — designed for flexibility and experimentation rather than locked-down appliance use.
- 【16GB RAM for Smooth Multi-Service Workloads】 Handle file sharing, media streaming, backups, and multiple lightweight services at once. Optimized for low-power, always-on operation — a great fit for home labs and personal servers running 24/7.
- 【Smooth 4K Media Streaming — Plex Direct Play Ready】 Stream your personal media library smoothly with Plex and similar media servers. Supports 4K playback on compatible devices via direct play, delivering a reliable home media experience without the need for heavy transcoding.
- 【Complete 2-Bay NAS Kit — Ready to Build】 Includes power supply, 16GB RAM, metal drive cage for 2 HDD/SSD, and dual SATA cables — everything you need to start building your own NAS right out of the box.
http://localhost:3000/docs— API documentation.http://localhost:3000/pressure— health and load information.http://localhost:3000/metrics— metrics endpoint.
These endpoints are documented by Browserless; their availability in your deployment depends on successful startup and your network or access controls.
Use Docker Compose for production
Browserless recommends Compose for production deployments. This example shows the configuration categories in its guide, including a pinned image, restart behavior, license and API credentials, concurrency, queue, timeout, persistence paths, and resource limits. The numeric values are examples from the documentation—not a benchmark, sizing formula, or universal recommendation.
services:
browserless:
image: registry.browserless.io/browserless/browserless/enterprise:2.3.0
container_name: browserless
restart: unless-stopped
ports:
- "3000:3000"
environment:
KEY: ${BROWSERLESS_KEY}
TOKEN: ${BROWSERLESS_TOKEN}
CONCURRENT: 20
QUEUED: 30
TIMEOUT: 300000
DATA_DIR: /data
volumes:
- browserless-data:/data
shm_size: 2gb
deploy:
resources:
limits:
cpus: "4"
memory: 8G
reservations:
cpus: "2"
memory: 4G
volumes:
browserless-data:
The sample configuration values—20 concurrent sessions, 30 queued requests, a 300,000 ms timeout, 4 CPUs and 8 GB limits, and 2 CPUs and 4 GB reservations—are the values shown in Browserless’s example. Select values for your own workload and host resources; the documentation does not establish them as generally appropriate. Use a Compose version and deployment environment that support the resource settings you choose.
Provide credentials safely
For a quick local setup, environment variables are convenient. For production, Browserless’s best-practices guide demonstrates Docker secrets using KEY_FILE and TOKEN_FILE, rather than keeping credentials in Compose, code, or ordinary environment-variable definitions. Follow the guide’s secret-file conventions for your deployment platform: Browserless Docker best practices.
Rank #3
Allocate shared memory for Chrome
Chrome uses /dev/shm. Browserless says Docker’s default shared-memory allocation is 64 MB and may cause instability under load; its production recommendation is to increase it, for example with --shm-size=2g. In Compose, the example above expresses that as shm_size: 2gb. Browserless also identifies --ipc=host as a possible alternative in some environments, but it shares the host IPC namespace and may be less desirable when isolation matters. See the official Docker guide.
Configure license and API authentication separately
KEY validates the Enterprise license and activates Enterprise features. TOKEN authenticates client API requests. A client token does not replace the license key, and a valid license key does not by itself secure API access.
According to the configuration reference, when TOKEN is unset, endpoints are unauthenticated. Configure it before exposing the service beyond localhost, and ensure clients send the matching token using the authentication method expected by the API.
Limit exposure and optional capabilities
For production, Browserless recommends keeping CORS disabled or narrowing allowed origins, leaving ALLOW_GET false, and leaving ALLOW_FILE_PROTOCOL false unless your use case requires them. Review the configuration reference before enabling these capabilities, especially on a publicly reachable service. Restrict network access to the service and protect both license and API credentials.
Rank #4
- Dell PowerEdge R730xd 24B SFF 2U Server
- 2x Intel Xeon E5-2690 v4 2.6Ghz 14-Core (28-cores Total)
- 128GB DDR4 RAM – 4x 1.2TB 10K SAS 2.5” 12Gb/s
- Dell H730P mini 2GB 12Gb/s RAID
- 2x 750W PSU - 2x 10Gb SFP+ 2x 1Gb (RJ45) NIC
Use roles where appropriate
The self-hosted Docker token guide documents admin, developer, viewer, and public roles. It says the root TOKEN receives the admin role on first startup and that tokens persist to disk across restarts. These role-management details describe the self-hosted Docker deployment; do not assume identical controls apply to every Browserless deployment type. See Browserless token management.
Set concurrency, queue length, timeout, and persistence
Concurrency and queued work
CONCURRENT caps simultaneous browser sessions, while QUEUED controls how much work can wait for a session. When active and queued capacity are exhausted, requests can be rejected with HTTP 429. Start with limits appropriate to your available resources, then adjust using observed workload and service behavior; the official configuration material supplies no universal sizing formula.
Timeouts
The configuration reference documents a default session timeout of 30,000 ms (30 seconds). Set TIMEOUT higher for jobs that need more time. The reference also documents TIMEOUT=-1 to disable the timer; if you do this, applications must reliably close sessions or they can consume resources indefinitely.
Storage and metrics
DATA_DIR and volume mounts can be used for persistence, including user data and metrics examples described in the configuration reference. Mount persistent storage at the path configured for the service if you need that data to survive container replacement. Confirm which data your deployment actually writes there before choosing retention, backup, and access policies.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Best Value
- Ateco #1357 Dough Docker for use with pastry or pizza dough for best baked results
- Roll over pizza dough, pie dough, pastries before baking, the small depressions help reduce blistering or air pockets from forming while crust bakes
- Measures 5.25-Inches wide, 2.25-Inch diameter, 8.25-Inches long including handle
- Hand wash suggested for best results; made from high impact plastic
- Family owned and operated since 1905, Ateco has produced specialized professional quality baking and decorating tools for professional pastry chefs and discerning home bakers alike
Move from Browserless Cloud to self-hosted Docker
A Cloud-to-self-hosted migration changes both the service endpoint and authentication setup. Point clients to your self-hosted service and configure them with its TOKEN. Browserless documents EXTERNAL for deployments where reconnect or LiveURL links would otherwise advertise an internal address such as localhost:3000; set it to the public-facing URL clients can reach. See Browserless’s Cloud migration guide.
Self-hosted Enterprise does not include managed residential proxies by default. If your workload requires proxies, provide your own and configure them per request.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Choose between self-hosting and Browserless Cloud
| Consideration | Enterprise with Docker | Browserless Cloud |
|---|---|---|
| Infrastructure and data location | You run the image on infrastructure you manage; Browserless identifies data sovereignty, air-gapped environments, and custom network configurations as reasons to self-host. | Browserless manages the service. The cited material does not specify a particular data-location guarantee. |
| Scaling and operations | You are responsible for deployment, capacity, monitoring, and operational security; Browserless describes scaling across containers. | Infrastructure management is handled as a managed service; exact operational responsibilities depend on the Cloud offering. |
| Endpoint and authentication | Your own endpoint and configured TOKEN. |
Cloud endpoint and Cloud authentication configuration; migration requires changing both. |
| Network control | Suitable when you need customer-controlled networking or self-hosting. | Does not put the service inside infrastructure you manage. |
| Residential proxies | Provide and configure your own; managed residential proxies are not included by default. | Proxy arrangements differ; confirm the current Cloud offering for your account. |
Browserless’s product documentation also distinguishes its free self-hosted open-source product from Enterprise, listing BrowserQL, stealth/CAPTCHA solving, session recording, live debugging, webhooks, and OpenTelemetry as Enterprise distinctions. Product features and plan details can change; check the current Browserless product and plan information before choosing an edition.
Troubleshoot common deployment problems
Docker cannot pull the image
- Likely cause: Docker is not authenticated to the private registry, or the registry credentials are wrong.
- Fix: Run
docker login registry.browserless.iowith the credentials Browserless provided, then retry the pull. Registry login credentials are distinct fromKEY.
Enterprise features do not activate
- Likely cause:
KEYis missing, invalid, or confused with the API token. - Fix: Set the Enterprise license key as
KEY. SetTOKENseparately for client authentication.
Clients receive unauthorized responses—or endpoints are open
- Likely cause: A client token does not match the configured
TOKEN, or no token was configured. - Fix: Check the server’s token configuration and client authentication. An unset
TOKENleaves endpoints unauthenticated, so configure one before exposing the service.
Chrome is unstable under load
- Likely cause: The container’s shared memory allocation may be too small.
- Fix: Increase shared memory, with Browserless recommending an example of 2 GB for production. Consider
--ipc=hostonly if its reduced IPC isolation is acceptable for your environment.
Requests receive HTTP 429
- Likely cause: Concurrent and queued capacity are both exhausted.
- Fix: Review session duration,
CONCURRENT, andQUEUEDagainst measured demand and host resources. Do not increase limits without checking whether the infrastructure can support the added work.
Long jobs time out or sessions consume resources
- Likely cause: The session timeout is too short for the job, or disabling it allows sessions to remain open.
- Fix: Increase
TIMEOUTfor longer operations. If setting it to-1, ensure the client always closes sessions.
Reconnect or LiveURL links point to localhost
- Likely cause: The service is advertising its internal address.
- Fix: Set
EXTERNALto the public-facing URL used by clients.
Persisted data disappears after container replacement
- Likely cause: The relevant data path is not mounted on persistent storage.
- Fix: Configure
DATA_DIRand a volume mount for the data you need to retain, then verify persistence for the specific files or metrics your deployment uses.
Or skip the browser setup
If your task is simply to capture website screenshots rather than run browser sessions, ScreenshotNeo offers a screenshot API and MCP server. One GET request can return a PNG, JPEG, WebP, or PDF. For example, using cURL:
Free tools Windows power users keep installed
One-click scans. No signup required.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
See the ScreenshotNeo API documentation for setup and options. Cookie banners, popups, and chat widgets are removed before capture; bot checks, blank pages, failed loads, and cache hits are not billed. Its MCP server lets AI agents take screenshots. The Free plan includes 1,000 screenshots a month with no card, and paid plans start at $5 for 3,000. Sign up for free.
Frequently Asked Questions
Can I use Browserless Enterprise without setting an API token?
The service can run without one, but its endpoints are then unauthenticated. Configure a token before making it reachable beyond localhost.
Does a Browserless Enterprise Docker deployment include managed residential proxies?
No. Self-hosted deployments require you to provide and configure proxies if your workload needs them.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




