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.
serverlessConfig only applies to Git-based deployments. It is ignored for other runtimes.
The serverlessConfig section
- YAML
- TOML
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
[serverlessConfig.Env]
DATABASE_URL = "postgres://..."
LOG_LEVEL = "info"
[[serverlessConfig.PortMap]]
Name = "http"
Port = 8080
Protocol = "http"
[serverlessConfig.Scaling]
AutoStop = true
Min = 1
Max = 3
MaxIdleTime = 300
[serverlessConfig.Resources]
CPU = 0.25
MemoryMB = 256
MemoryMaxMB = 512
[serverlessConfig]
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_.
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:
| Field | Type | Description |
|---|---|---|
Name | string | A short DNS-compatible label for the port (e.g. http, grpc). |
Port | int | The port your application listens on inside the container. |
Protocol | string | The 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:
| Field | Type | Description |
|---|---|---|
AutoStop | bool | Whether to stop idle instances automatically. Default: true. |
Min | int | Minimum number of running instances. |
Max | int | Maximum number of running instances (up to 25). |
MaxIdleTime | int | Seconds of inactivity before an instance is considered idle. Default: 300. |
Resources
Defines compute resources for each instance:
| Field | Type | Description |
|---|---|---|
CPU | float | Number of vCPUs (e.g. 0.25, 1). |
Cores | int | Alternative way to specify whole CPU cores. |
MemoryMB | int | Memory in MB. |
MemoryMaxMB | int | Maximum memory burst limit in MB. |
DiskMB | int | Disk 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 tohttp:8080.Scaling/Resources/Timeout— if present, override the current values.
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.
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
| Action | Result |
|---|---|
Commit boltic.yaml with serverlessConfig.Env set | Env vars in the UI are replaced after the build succeeds |
Commit boltic.yaml with serverlessConfig.Env missing or empty | Env vars in the UI are cleared after the build succeeds |
Commit boltic.yaml with serverlessConfig.PortMap set | Port mappings in the UI are replaced after the build succeeds |
Commit boltic.yaml with serverlessConfig.PortMap missing or empty | Port mappings reset to http:8080 after the build succeeds |
| Update config from the Boltic console | A [conductor-sync] commit is pushed to your default branch |