Skip to main content

Application Config

The serverlessConfig section in boltic.yaml / boltic.toml is bidirectionally synced between your Git repository and the Boltic platform. It lets you manage runtime settings — environment variables, port mappings, scaling, resources, and timeout — directly from your config file, keeping them in sync with the Boltic console.

note

serverlessConfig only applies to Git-based deployments. It is ignored for other runtimes.

The serverlessConfig section

serverlessConfig:
Env:
DATABASE_URL: "postgres://..."
LOG_LEVEL: "info"
PortMap:
- Name: "http"
Port: 8080
Protocol: "http"
Scaling:
AutoStop: true
Min: 1
Max: 3
MaxIdleTime: 300
Resources:
CPU: 0.25
MemoryMB: 256
MemoryMaxMB: 512
Timeout: 30

Env

A key-value map of environment variables to set in the runtime container. When present, these values replace all existing environment variables in the database. Variable names are case-sensitive and cannot begin with BOLT_.

warning

If Env is present but empty (e.g. Env: {}), all existing environment variables are cleared. Omit the Env key entirely if you do not want to affect the current environment variables. When synced from the UI, the current env vars are always written into this section.

PortMap

An array of port mappings that define which ports your application exposes. Each entry has:

FieldTypeDescription
NamestringA short DNS-compatible label for the port (e.g. http, grpc).
PortintThe port your application listens on inside the container.
ProtocolstringThe protocol: http or tcp.

When PortMap is present, it replaces all existing port mappings. If PortMap is absent or empty, the port map is reset to the default http:8080.

Scaling

Controls auto-scaling behavior:

FieldTypeDescription
AutoStopboolWhether to stop idle instances automatically. Default: true.
MinintMinimum number of running instances.
MaxintMaximum number of running instances (up to 25).
MaxIdleTimeintSeconds of inactivity before an instance is considered idle. Default: 300.

Resources

Defines compute resources for each instance:

FieldTypeDescription
CPUfloatNumber of vCPUs (e.g. 0.25, 1).
CoresintAlternative way to specify whole CPU cores.
MemoryMBintMemory in MB.
MemoryMaxMBintMaximum memory burst limit in MB.
DiskMBintDisk allocation in MB.

Timeout

The maximum number of seconds a function invocation may run before it is terminated.


Git sync behavior

Git → Boltic (on commit)

Every commit pushed to your repository triggers a build via webhook. When that build completes successfully, the serverlessConfig section is read from boltic.yaml / boltic.toml and synced to the Boltic platform — updating what you see in the UI:

  • Env — if present with values, replaces all current environment variables. If absent or empty, clears them.
  • PortMap — if present with entries, replaces all current port mappings. If absent or empty, resets to http:8080.
  • Scaling / Resources / Timeout — if present, override the current values.
note

serverlessConfig settings take priority over console settings. Committing a change to boltic.yaml is the authoritative way to update your application config.

Boltic → Git (on UI config change)

When you update your application's configuration from the Boltic console, the change is automatically committed back to your repository's default branch. The commit message follows this format:

Config synced from UI [conductor-sync] at <timestamp>

The system updates the serverlessConfig section in the existing config file (detected in priority order: boltic.toml > boltic.yaml > boltic.yml), or creates boltic.yaml if no config file exists.

tip

Commits containing [conductor-sync] are system-generated. If you edit the config file locally at the same time the UI is saving, a standard Git merge conflict may occur on the next push.

Sync rules summary

ActionResult
Commit boltic.yaml with serverlessConfig.Env setEnv vars in the UI are replaced after the build succeeds
Commit boltic.yaml with serverlessConfig.Env missing or emptyEnv vars in the UI are cleared after the build succeeds
Commit boltic.yaml with serverlessConfig.PortMap setPort mappings in the UI are replaced after the build succeeds
Commit boltic.yaml with serverlessConfig.PortMap missing or emptyPort mappings reset to http:8080 after the build succeeds
Update config from the Boltic consoleA [conductor-sync] commit is pushed to your default branch