Blossom Docs
Blossom

Blossom cli

service.yml

service.yml example for an application Service

A Service is a long-running application workload in an Environment. Use one Service for each independently scalable process such as web, worker, or scheduler.

Create a starter file:

blossom service:init

It writes service.yml:

service:
  environment_id: environment-100 # replace with your environment id
  name: web
  command: bundle exec puma
  port: 3000
  publicly_exposed: true
  desired_size: 1
  health_check:
    enabled: false
    kind: http
    path: /ready
    traffic: true
  resources:
    preset: small # micro, small, medium, large, x-large, 2x-large, 4x-large, 8x-large, or custom

Create the Service:

blossom service:create --data service.yml

The Environment supplies the deployed image and Environment variables. Environment Links add private Database and Cache connection URLs to every Service in the Environment.

The health check belongs to this Service because it verifies this process and port. Blossom uses the same definition to hold a new Release until its Containers are ready and, when traffic is enabled, to stop routing to an unhealthy Container. Private workers can use kind: command with a command that exits successfully when the process is healthy.

Every running container receives an explicit allocation. The default is small (0.5 vCPU / 875 MB), which fits four Containers in one 2 vCPU / 4 GB Capacity unit. Choose micro (0.25 vCPU / 437.5 MB) for lighter workloads; eight fit in that unit. medium (1 vCPU / 1.75 GB) fits two per unit and large (2 vCPU / 3.5 GB) fills one whole unit. x-large (4 vCPU / 7.8 GB) fills two Capacity units on one Server, and each size above it doubles the last: 2x-large (8 vCPU / 15.6 GB), 4x-large (16 vCPU / 31.2 GB), and 8x-large (32 vCPU / 62.4 GB). Each size is what its Server has left after Linux and Blossom’s agent, so sizes pack units with nothing stranded. For a custom allocation:

  resources:
    preset: custom
    cpu_vcpus: 1.5
    memory_gb: 3

Custom allocations require at least 0.05 vCPU and 67,108,864 bytes. CPU uses 0.05 vCPU increments; memory uses decimal GB with whole-byte precision. Blossom rejects unsupported values instead of rounding them. A custom Container above 3.5 GB selects a larger physical Server shape; Blossom never combines several smaller Servers to pretend that one Container fits. These values determine Container limits and the Blossom charge.

Use Databases or Caches for supported data engines. They use their own managed-data lifecycle rather than application Service scaling.

Persistent Services

For a custom single-writer workload, add this under service:

  storage:
    size_gib: 10
    mount_path: /data
    availability: shared

Keep desired_size: 1. Shared runs on your own Persistent Capacity; dedicated reserves compute for this Service. Each keeps its own Volume. Deployments stop the previous writer first, and replacement can interrupt availability. Storage survival is not an application backup.

Increase size_gib to grow a ready Volume; shrinking or changing its path is refused. Deletion requires an explicit storage choice: retain preserves the disabled Service and billed Volume, while delete permanently removes both.

On this page