A Sandbox can be defined entirely in YAML, versioned in your repository, and imported into Buddy. For how to import, apply, and export a definition, see Sandbox configuration.
Sandbox parameters
Name
Type
Description
sandbox required
String
The sandbox identifier. Letters, digits, underscores, and hyphens; a hyphen cannot be the first or last character.
name required
String
The display name of the sandbox.
os
String
Operating system image: ubuntu:22.04 or ubuntu:24.04.
resources
String
Machine size as CPUxRAM, where RAM is in GB: 1x2, 2x4, 3x6, 4x8, 5x10, 6x12, 7x14, 8x16, 9x18, 10x20, 11x22, 12x24. Default: 2x4.
firstbootcommands
String
Commands run once during sandbox setup. Use |- for multi-line.
app_dir
String
Working directory for applications. Default: /buddy.
apps
String[]
Commands starting long-running applications.
timeout
Integer
Seconds of inactivity after which the sandbox stops. Not set by default - without it the sandbox keeps running. Traffic on an endpoint resets the countdown and wakes a stopped sandbox.
tags
String[]
Tags used to categorize sandboxes and to scope pipeline triggers.
Access level for everyone else: DEFAULT, DENIED, READ_ONLY, or READ_WRITE.
users
Object
Map of user emails to access levels.
groups
Object
Map of group names to access levels.
Access levels map to the ones in the UI as follows:
Value
In the UI
READ_WRITE
Manage - full control
READ_ONLY
View-only
DEFAULT
Project role - inherit what the user's role in the project grants
DENIED
None (Deny)
A user assigned directly takes that level; otherwise group assignments are summed; otherwise others applies. See Permissions and security.
Warning
MANAGE and USE_ONLY are valid for targets and environments, but not for Sandboxes - Buddy rejects them with Invalid value of 'accessLevel'. Use READ_WRITE and READ_ONLY instead.