Canio

Deploy

Choose the right runtime shape for production.

Embedded

Use embedded mode when the Laravel host can run Chrome 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_RENDERER_DRIVER=rod-cdp
CANIO_BROWSER_PRODUCT=chrome
CANIO_BROWSER_INSTALL_PATH=/var/lib/canio/browsers
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

Remote browser endpoint

Use remote CDP when Laravel should keep Stagehand local but Chrome should run in a container, render farm, or browserless-style service.

CANIO_RENDERER_DRIVER=remote-cdp
CANIO_REMOTE_CDP_ENDPOINT=ws://chrome-renderer.internal:9222/devtools/browser/<id>

Direct CDP fallback

Rod is the default local renderer in v1.0.6. Use direct CDP only as an explicit fallback after validating your documents.

CANIO_RENDERER_DRIVER=local-cdp

Operational checks

Full guide

Read the complete production guide in docs/deployment.md.