Builders
Builds run on their own Server, so they never slow your Apps
Every Build runs on a Builder, its own Server with its own CPU and memory, so a heavy Build never slows your running Apps. You don’t need to set anything up: your first Build in a region creates that region’s Default Builder.
| Setting | Default | Change it when |
|---|---|---|
| Size | Auto, preferring 4 vCPU / 8 GB | Can use 2 vCPU / 4 GB; explicit minimums support up to 8 vCPU / 16 GB |
| Idle time | 1 hour after a Build | You deploy all day: keep it 8 hours |
| Build timeout | 30 minutes per Build | Allow longer builds, up to 2 hours, or stop slow builds sooner |
| Persistent cache | Off | Builds still start cold or download a lot |
Blossom BYOC Builder management is eligible for the Organization’s $20 monthly credit. Your provider bills the Server separately. See Builder pricing.
Default Builder
An Environment set to Auto builds on its region’s Default Builder. It starts when a Build needs it, so the first Build of the hour waits a few minutes while its Server starts. Builds within its idle time reuse it and its local cache. The idle timer restarts after each Build; one hour of idle retention does not mean a new Server or a separate hourly charge per Build.
See it under Apps → Builders, or from the CLI:
blossom builder:list
Change Its Settings
Deploying all day? Keep your Builder warm 8 hours and add a Persistent cache, so every Build starts warm. Open the Builder’s Settings, or from the CLI:
builder.yml:
builder:
idle_retention_seconds: 28800 # stays warm for 8 hours after a Build
volume_gib: 50 # Persistent cache, 10 to 1,000 GiB
blossom builder:update --id builder-100 --data builder.yml
Build timeout is the maximum duration of each Build, not its expected duration. Builds that exceed it fail. You can see it on the Builder overview and change it beside Idle time in Settings. Idle time starts after a Build finishes.
A new size applies the next time the Builder starts. The Persistent cache is a disk that keeps image layers and dependencies across days; 50 GiB is a good start for a few Apps. It’s available in Hetzner regions.
More Builders
A Builder runs one Build at a time. Create another for parallel Builds or for one heavy App:
blossom builder:init
blossom builder:create --data builder.yml
Choose it per Environment in Source and Build, or with builder_id in its
build settings. Make default on a Builder’s page, or default: true,
points Auto in its region at it instead:
builder_id |
Builds run on |
|---|---|
auto |
The region’s Default Builder |
builder-100 |
That Builder |
What You Get
- Builds on their own CPU and memory, never your Apps’
- A Builder ready on your first deploy, with nothing to set up
- A warm cache within its idle time, or across days with a Persistent cache
- Self-healing: if a Builder’s Server is lost, Blossom replaces it and the next Build carries on
Delete a Builder with blossom builder:delete --id builder-100; Environments
using it switch to Auto. Deleting the Default is fine: the next Build in its
region creates a new one.