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.
Recommended mental model
The exporter is infrastructure, not a hidden plugin subfolder. Install and operate it where your deployment automation already lives.