Skip to main content

External Exporter Setup

Static Publisher uses a separately installed CLI, @smart-cloud/publisher-exporter, for crawl and deployment work. The WordPress plugin does not bundle Node.js, Playwright, or the exporter source tree.

Host prerequisites

The runner host needs:

  • Node.js (latest LTS is the recommended baseline),
  • Playwright browser binaries,
  • shell access for cron, CI, or manual runs,
  • filesystem access to the plugin runtime directory,
  • AWS credentials only on the machine that actually performs deploy or invalidate operations.

Install the exporter

Global install

npm install -g @smart-cloud/publisher-exporter
publisher-exporter install-browsers

Local package install

mkdir -p /opt/smartcloud/publisher-exporter
cd /opt/smartcloud/publisher-exporter
npm init -y
npm install @smart-cloud/publisher-exporter
npx @smart-cloud/publisher-exporter install-browsers

If the runner environment is shared across users or services, point Playwright to a shared browser directory before the install step:

export PLAYWRIGHT_BROWSERS_PATH=/var/lib/playwright-browsers
publisher-exporter install-browsers

Important WordPress admin fields

Inside the Static Publisher admin UI:

  • set External exporter dir if you want PHP-side diagnostics to verify the CLI install,
  • keep runtime, output, and log directories aligned with the runner host's visible filesystem,
  • enable Allow self-signed TLS certificates during crawl only when the origin uses an internal or non-public certificate.

Typical exporter directory values are:

  • /usr/local/lib/node_modules/@smart-cloud/publisher-exporter
  • /opt/smartcloud/publisher-exporter/node_modules/@smart-cloud/publisher-exporter

First smoke tests

Run a direct exporter command first:

PUBLISHER_CONFIG=./publisher.config.json publisher-exporter crawl

Then validate queue processing against the WordPress runtime directory:

publisher-exporter queue-runner \
--runtime-dir /var/www/site/wp-content/uploads/smartcloud-static-publisher/runtime \
--max-jobs 1

If you prefer not to install globally, replace publisher-exporter with npx @smart-cloud/publisher-exporter.

The exporter is infrastructure, not a hidden plugin subfolder. Install and operate it where your deployment automation already lives.