Before running setup in production, replace the DNS challenge placeholders
in config.yaml. Set ssl.dns_challenge.provider to the Traefik/lego provider
that manages the deployment domain, then list that provider’s required
environment-variable names under ssl.dns_challenge.credentials.
ssl: # Required in production for ACME certificate notifications. acme_email: "<ACME_EMAIL>" dns_challenge: provider: "<DNS_PROVIDER>" credentials: - "<PROVIDER_REQUIRED_ENV_VAR>" environment: {}
credentials contains variable names, not credential values. The CLI prompts
for the values securely during setup and stores them in local secret files.
The shipped placeholders are intentionally not valid production values. Do not
leave them unchanged, and do not store DNS tokens in config.yaml. If
ssl.auto_generate is enabled, also replace the certificate identity
placeholders before running setup.
The CLI builds the configured VNC, Selkies, campaign, and egress images, then
starts the Compose control-plane services. Later starts can omit --build
unless source or dependencies changed.
down is terminal for the current runtime. It stops the control plane,
force-removes every app-owned campaign, target-browser, and campaign-egress
container, removes campaign networks, and marks active, paused, or scheduled
campaigns as completed. A later up does not resume them.If any dynamic campaign resource cannot be removed, the command exits
unsuccessfully and leaves campaign state unchanged so an operator is not given
a false completed status. Resolve the reported Docker error and run down
again.