Skip to main content

Enterprise Deployment Guide

The Browserless Enterprise Docker Image is a production-ready solution designed for organizations that need reliable, scalable browser automation infrastructure. This guide covers everything you need to deploy and manage Browserless Enterprise in your environment.

The Enterprise image includes:

  • Advanced Session Management: Enhanced queueing, priority handling, and session persistence
  • Production Monitoring: Built-in metrics, health checks, and performance tracking
  • Enterprise Support: Direct access to our engineering team for deployment assistance
  • Custom Features: Session recording, live debugging, and advanced webhook integrations
  • License-Based Deployment: Flexible licensing for private deployments without usage-based billing
  • Multi-Browser Support: Chrome, Chromium, Firefox, WebKit, and Edge in a single container

Prerequisites

Before deploying the Enterprise image, ensure you have:

  1. Docker or Container Runtime: Docker 20.10+, Podman, or Kubernetes
  2. Enterprise License Key: Contact sales@browserless.io for a license
  3. Registry Credentials: Provided by the Browserless team for accessing our private registry
  4. System Resources: Minimum 2 CPU cores and 4GB RAM (see Resource Requirements)

Getting Started

  1. Registry Authentication

    Authenticate with the Browserless private registry using credentials provided by our team:

    docker login registry.browserless.io

    Enter your username and password when prompted.

    info

    Your registry credentials are separate from your license key. The credentials grant access to pull the image, while the license key activates the enterprise features at runtime.

  2. Pull the Enterprise Image

    Pull the latest enterprise image (supports both ARM64 and AMD64 architectures):

    docker pull registry.browserless.io/browserless/browserless/enterprise:latest

    For production deployments, we recommend pinning to a specific version:

    # Pin to a specific version for stability
    docker pull registry.browserless.io/browserless/browserless/enterprise:2.3.0
  3. Quick Start

    Run the enterprise image with minimal configuration:

    docker run \
    --rm \
    -p 3000:3000 \
    -e KEY=your-enterprise-license-key \
    registry.browserless.io/browserless/browserless/enterprise:latest

    Once running, verify the deployment:

Setting Your License Key

Your Enterprise license key (KEY) and API token (TOKEN) are essential for running the Enterprise image. Below are examples showing different ways to configure these variables. For detailed information on these and other configuration options, see the Configuration Reference.

docker run \
-e KEY=your-enterprise-license-key \
-e TOKEN=your-secure-api-token \
-p 3000:3000 \
registry.browserless.io/browserless/browserless/enterprise:latest

Production Deployment

For production deployments, it's essential to configure the Enterprise image for performance, security, and reliability. Below are recommended configurations and best practices.

For production deployments, we recommend using Docker Compose with comprehensive configuration:

---
services:
browserless:
image: registry.browserless.io/browserless/browserless/enterprise:2.3.0
container_name: browserless-enterprise
restart: unless-stopped

environment:
# License & Authentication
- KEY=${BROWSERLESS_LICENSE_KEY}
- TOKEN=${BROWSERLESS_API_TOKEN}

# Performance & Scaling
- CONCURRENT=20
- QUEUED=30
- TIMEOUT=300000

# Storage & Persistence
- DOWNLOAD_DIR=/downloads
- DATA_DIR=/user_data
- METRICS_JSON_PATH=/metrics/metrics.json

# Security
- ENABLE_CORS=false
- ALLOW_GET=false
- ALLOW_FILE_PROTOCOL=false

# Health & Monitoring
- HEALTH=true
- MAX_MEMORY_PERCENT=90
- MAX_CPU_PERCENT=90

# Logging
- DEBUG=browserless*
- TZ=America/New_York

ports:
- "3000:3000"

volumes:
- ./downloads:/downloads
- ./user_data:/user_data
- ./metrics:/metrics
- ./fonts:/usr/share/fonts/custom

healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/pressure"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s

deploy:
resources:
limits:
cpus: '4'
memory: 8G
reservations:
cpus: '2'
memory: 4G

Resource Requirements

Recommended specifications based on workload:

WorkloadCPU CoresMemoryConcurrent SessionsStorage
Light (Development)24GB5-1010GB
Medium (Production)48GB10-2050GB
Heavy (Enterprise)8+16GB+20-50100GB+

Connecting to Your Enterprise Instance

Once your Enterprise instance is running, connect using your preferred method. Below are examples for Puppeteer, Playwright, and the REST API.

Local Network (No Token)

For applications on the same private network, you can connect without a token:

const puppeteer = require('puppeteer-core');

let browser;
try {
browser = await puppeteer.connect({
browserWSEndpoint: 'ws://localhost:3000/chromium'
});

const page = await browser.newPage();
await page.goto('https://example.com');
const screenshot = await page.screenshot();

// Use screenshot...
} catch (error) {
console.error('Browser automation failed:', error);
} finally {
if (browser) {
await browser.close();
}
}

External Access (With Token)

For production deployments with external access, always use token authentication:

const puppeteer = require('puppeteer-core');

let browser;
try {
browser = await puppeteer.connect({
browserWSEndpoint: 'ws://browserless.company.com:3000/chromium?token=YOUR_API_TOKEN'
});

const page = await browser.newPage();
await page.goto('https://example.com');
const data = await page.screenshot();

return data;
} catch (error) {
console.error('Browser connection failed:', error);
throw error;
} finally {
if (browser) {
await browser.close();
}
}

Configuration Options

The Enterprise image supports extensive configuration through environment variables. For a comprehensive list of all available options including license settings, performance tuning, security, health monitoring, webhooks, and more, see the Docker Configuration Reference.

Production Deployment Checklist

Before deploying to production, review these essential guides:

  • Best Practices - Security hardening, performance tuning, monitoring, high availability, and data persistence strategies
  • NGINX Load Balancing - Set up load balancing for high availability deployments
  • Webhooks - Configure event notifications and alerting