When to use Box
Use Box when:- task work should run on provider-managed machines
- you want API-key-only setup without building a provider-side worker image, template, or snapshot during Roomote setup
- environments need Docker, Docker Compose, or private preview URLs
- retaining the same stopped task sandbox for a follow-up is sufficient
Configuration
Create a key from the Box dashboard, then add Box from Settings > Sandboxes. You can also provide the key as a deployment env var:Cleanup and resume behavior
Roomote stops and archives a Box when retaining it for task resume. This takes a filesystem snapshot, pauses billing, and preserves the Box for a later resume. Box’s permanent-delete API is being reworked, so Roomote also uses stop/archive as its cleanup fallback for canceled, failed, and retention-expired tasks. Those archived Boxes remain in the provider account until permanent deletion is available.Environment snapshots
Roomote environment snapshots map to Box named snapshots (template boxes): snapshotting an environment saves aroomote-snap-* template, and tasks that
start from the snapshot fork it into a fresh Box in seconds instead of
re-running environment setup. Box accounts are limited to 10 named snapshots,
so delete stale roomote-snap-* templates from the Box dashboard when
re-snapshotting environments repeatedly. Free-trial accounts also cap
concurrent boxes (2 at the time of writing), which bounds how many tasks can
run at once.
BOX_STANDBY_MAX_COUNT and BOX_STANDBY_MAX_AGE_HOURS bound how many stopped
task sandboxes Roomote retains and for how long. This standby behavior preserves
one task’s machine; it is not a Roomote environment snapshot.
Verify setup
- Save the Box API key.
- Select Box as the default sandbox provider.
- Start a small task and confirm logs reach the task view.
- If the environment exposes a port, open its preview from the task view.
- Send a follow-up while the task sandbox is retained and confirm it resumes.
Common issues
- Authentication fails. Confirm
BOX_API_KEYis active and belongs to the expected Box account. - The API cannot be reached. Remove
BOX_API_BASE_URLto use the provider default, or verify the custom endpoint is reachable from the Roomote deployment. - A follow-up starts a new sandbox. Check the standby count and age limits. Roomote may no longer retain the previous Box as the task’s resume target.
- A task stops after two hours. Free-trial accounts require a timeout of two
hours or less. Paid accounts can increase
BOX_TIMEOUT_MS; Roomote still caps the Box lifetime to the task’s configured timeout. - A preview does not open. Confirm the environment declares the port and the
application listens on
0.0.0.0, not onlylocalhost. - An environment snapshot fails to save. Box accounts allow at most 10
named snapshots; delete stale
roomote-snap-*templates from the Box dashboard and re-run the snapshot.