Preview Worker Deployment
The web application only enqueues persistent preview jobs. A separate deployment must run the same application with:
EASYCODE_PREVIEW_EXECUTION_MODE=persistent
EASYCODE_PREVIEW_WORKER_ENABLED=true
EASYCODE_PREVIEW_WORKER_ROOT=/data/preview-worker
EASYCODE_PREVIEW_DOCKER_IMAGE=easycode/preview-worker:v1
Build the runtime image:
docker build -t easycode/preview-worker:v1 deploy/preview-worker
The web and Worker deployments must share the control database and the configured Worker root volume so the authenticated screenshot endpoint can read output/screenshot.png. Only the Worker deployment needs Docker access. The web deployment must use EASYCODE_PREVIEW_EXECUTION_MODE=persistent and keep EASYCODE_PREVIEW_WORKER_ENABLED=false. Local development defaults to host mode and does not require Docker.
The runtime publishes one constrained container port, waits for /output/ready, stores bounded logs and a Chromium screenshot, and is stopped by the durable Job TTL. Docker failures remain explicit; there is no host-process fallback.