Launchables
Launchables bundle compute hardware, software environments, and code into one-click deployable packages. Share a link, and anyone can spin up an identical environment.
What are Launchables?
A Launchable is a reproducible, shareable environment configuration. It captures everything needed to run a specific workload:
- Details: Name and description
- Default hardware configuration: GPU or CPU instance type, storage, and location
- Software configuration: Runtime mode, image, setup script, and managed services
- Source: Git repository, notebook, Markdown file, embedded files, or no attached code
- Network: Secure links and exposed TCP/UDP ports
- Launch parameters: Values supplied by each deployer
- View access: Who can view and deploy the Launchable
Use cases: Tutorials, demos, workshops, team onboarding, reproducing research, and distributing GPU applications.
Creating a Launchable
Create a Launchable in the Brev Console using the Launchable builder. The builder presents the following sections in order.
Details
Enter a required Name and an optional Description. Choose the name carefully; it cannot be changed after the Launchable is created.
Default hardware configuration
Choose the compute configuration that deployers see by default:
- Select a GPU or CPU instance type.
- Set the Disk Storage (GiB).
- Optionally set a default location and, when available, a default sub-location.
Deployers can select another available compute configuration before deployment.
Software configuration
Choose how the Launchable configures its environment:
Source
Choose how to provide code files:
Use Launch parameters for deploy-time values such as API keys, image tags, model IDs, and other configuration. Parameters work with VM setup scripts, single containers, Docker Compose, and Kubernetes cluster initialization scripts.
Network
Configure how deployers access services:
- Secure Link: Protect an HTTP service with Brev authentication. Specify its name and port, and optionally show it as a call-to-action on the deployment page.
- TCP/UDP Ports: Expose a port or port range to all IP addresses or only the deployer’s IP address.
When Jupyter or the Kubernetes Dashboard is enabled in Software configuration, its secure link appears here but remains controlled by that earlier section.
Launch parameters
Launch parameters let a Launchable creator define values that each deployer provides when starting the Launchable. Use them for API keys, image tags, model IDs, feature flags, and other configuration that should not be fixed in the Launchable.
Creators configure Launch parameters. Deployers enter the corresponding Setup values before deployment. Brev passes the values as environment variables while the Launchable starts.
Launch parameters are launch-time inputs. They are not persistent, VM-wide environment variables or a replacement for a runtime secret manager.
Add Parameters
Open Launch Parameters
Create or edit a Launchable in the Brev Console, complete its runtime configuration, and open Launch parameters.
Add a Parameter
Select Add Parameter, then configure:
- Name: The environment variable name, such as
API_KEYorIMAGE_TAG. - Description: Guidance shown to deployers.
- Required: Whether a value must be available before deployment.
- Type: Text for free-form input or Choice for a predefined list.
- Choices: The allowed values for a Choice parameter. Add at least one; values must be non-empty and unique.
- Default: An optional value used when the deployer does not provide another. A Choice default must be one of its allowed values.
Parameter names must be unique within the Launchable. They must use uppercase letters, numbers, and underscores, and must begin with a letter or underscore. Names beginning with BREV_ are reserved.
Do not store reusable credentials as parameter defaults. Define the parameter without a default value and let each deployer supply their own credential.
Deploy with Setup Values
Use Parameters by Runtime Mode
VM Mode
Single Container
Docker Compose
Single-node Kubernetes
Parameters are available to the user-defined setup script as environment variables.
This example verifies that an API key was supplied without printing it:
Commands started by the setup script can read API_KEY from their environment. After setup finishes, the value is not automatically available in a later SSH session, and the setup script does not automatically run again when the VM restarts.
Value Lifetime and Visibility
Free-text Setup values are masked in the Console and encrypted in transit and at rest. Brev never persists plaintext during the control-plane handoff: it keeps only a short-lived encrypted record, deletes it after setup, and expires it within one hour if cleanup fails. The workload receives plaintext at runtime and may persist it.
Brev’s cleanup does not remove copies created by your workload. A value can persist if a script writes it to a file, shell profile, service definition, log, command, or container configuration.
Protect Sensitive Values
- Do not print credentials with
echo,env, orprintenv, and do not enable shell tracing withset -x. Setup output is captured in logs. - Do not interpolate secrets into image names, labels, or commands. Pass them through the container environment only when the application needs them.
- Treat anyone with root or administrator access, Docker socket or Docker group access, or access to the receiving process or container as potentially able to read runtime credentials.
- Use project-scoped credentials with minimum permissions and usage limits.
- Use a runtime secret manager when an application needs a credential continuously, must rotate it, or must retrieve it again after a restart.
Troubleshooting
View access
Choose who can view and deploy the Launchable:
- Turn on Publish to community to make the Launchable discoverable by everyone.
- Leave it off and select Anyone with the link (default) or Only my organization to limit visibility.
After all required sections are complete, select Create Launchable to generate the shareable link.
Runtime Modes
Choose how your Launchable configures the instance environment:
Run directly on the instance. Best for flexible environments and full VM access.
- Optional Jupyter on the host
- Optional setup script
- Python, CUDA, and Docker included
Run a custom Docker image. Best for a reproducible application contained in one image.
- Optional entrypoint command
- Code can be attached or embedded
Run a multi-container application from a Compose file.
- Local file or GitHub/GitLab URL
- Optional Jupyter on the host
Run a single-node Kubernetes cluster with kubectl and Helm.
- Optional Kubernetes Dashboard
- Optional cluster initialization script
- Code can be attached or embedded
Exploring Launchables
The Launchables tab in the Brev Console provides a fully indexed, searchable collection of shared launchables. Browse curated picks or search to find GPU environment templates you can deploy with one click.
Browsing
When you open the Explore view within the Launchables tab, the page displays curated sections:
- Featured: Hand-picked launchables highlighted with a blue badge (up to six shown).
- Trending This Week: Popular launchables ranked by recent activity (up to three shown, with green rank badges).
- All Time Popular: Most popular launchables overall (up to six shown, with yellow rank badges).
Each launchable card displays: name, author, description, cost per hour, view count, and deploy count. Click any card to go directly to the deploy page.
A row of cloud provider logos shows available compute backing (AWS, Google Cloud, Crusoe, Lambda, Nebius, Hyperstack, Oracle, and others).
Searching and Filtering
The search bar accepts free-text queries across launchable names, containers, models, workflows, and GPUs. Press Enter or click the search icon to execute.
Two optional filters narrow results further:
Changing a filter triggers an immediate search. Active filters appear as dismissible badges below the search bar. Click Clear all to reset and return to the curated browse view.
Results display in a responsive grid with infinite scroll (results load automatically as you scroll).
You can deep-link to filtered results by adding query parameters: ?gpuType=A100 or ?cloud=AWS. This is useful for embedding links in documentation or READMEs that take users directly to relevant launchables.
Sharing and Access Levels
Control who can view and deploy your launchables with three access levels:
Set visibility during creation in the View access section, or change it later from the My Launchables tab. New launchables default to Anyone with the link. To make a launchable discoverable in Explore, turn on Publish to community.
Managing Launchables
All your Launchables display under the Launchables tab. From there, you can:
Embedding Launchables
Add a launch badge to any markdown file to let users deploy with one click: