Deploy
Choose the right runtime shape for production.
Embedded
Use embedded mode when the Laravel host can run Chromium locally and you want the shortest path from install to first successful render.
CANIO_RUNTIME_MODE=embedded
CANIO_RUNTIME_AUTO_INSTALL=true
CANIO_RUNTIME_AUTO_START=true
CANIO_RUNTIME_STATE_PATH=/var/lib/canio
CANIO_RUNTIME_LOG_PATH=/var/log/canio/stagehand.log
Remote
Use remote mode when you want Stagehand isolated, shared, or independently scaled from the Laravel app.
CANIO_RUNTIME_MODE=remote
CANIO_RUNTIME_BASE_URL=http://stagehand.internal:9514
CANIO_RUNTIME_STARTUP_TIMEOUT=30
Operational checks
- Make Chromium availability explicit on the runtime host.
- Persist runtime state if artifacts, jobs, and replay matter.
- Route Stagehand logs into your normal logging pipeline.
- Only set
CANIO_CHROMIUM_NO_SANDBOX=truewhen the environment requires it.
Full guide
Read the complete production guide in docs/deployment.md.