Skip to main content
Crawlstack provides a headless Docker container that bundles a stealth Chromium browser (Cloakbrowser), the Crawlstack extension, and optionally the Relay Server and a libSQL (SQLite) Server into a single deployable unit. This setup is ideal for running automated crawlers on a server or VPS while still managing them from your local browser extension in a unified “Cluster”.

Image

Tags

Quick Start

This starts a self-contained node with:
  • Internal relay server on port 3002
  • Internal libSQL database on port 8080
  • Persistent data at /data (browser profile + database)

Persistent Volumes

All persistent data lives under /data: You can mount them together or separately:
Always mount persistent volumes. Without them, all data is lost when the container restarts.

Clustering with your Local Extension

To manage the headless node from your local browser:
  1. Open your local Crawlstack Dashboard → Settings.
  2. Under Database Connection, change the mode to External (LibSQL/Turso).
  3. Set the Database URL to http://localhost:8080 (or your server’s IP if remote).
  4. Under Global Configuration, set the API Relay URL to http://localhost:3002.
  5. Click Save Connection & Reload and Save Global Settings.
Your local extension and the remote Docker container now share the same database and relay. You can write a crawler script locally and trigger runs on the remote node.

External Services

The container automatically detects whether to start internal services based on environment variables:

Example: External Database (Turso)

Example: External Relay (Cluster Worker)

No ports need to be exposed when using external services — the node connects outbound.

Environment Variables

Browser Freshness

The container uses a stealth-patched Chromium from Cloakbrowser. The browser binary is downloaded on first startup from official CloakHQ distribution channels and cached in the persistent volume at /data/cloakbrowser-cache. Subsequent restarts reuse the cached binary.
Use the date in the image tag (e.g., 1.2.0-20250719) to gauge browser freshness at a glance. Stealth browsers older than ~3 Chromium releases may trigger bot detection. Rebuild or pull a newer image regularly.
To force a browser update, delete the cached binary (/data/cloakbrowser-cache) and restart the container. Set CLOAKBROWSER_AUTO_UPDATE=false to prevent automatic update checks.