You can customize your Blaxel deployment with Blaxel’s configuration file blaxel.toml.
The format of Blaxel’s configuration file is described below.
# resource type (optional)
# possible values: ["agent", "function", "job", "sandbox", "volume-template"]
# type = "agent"
# resource name (optional)
# defaults to the directory name
# name = "my-resource"
# registry image (optional, for resource type="sandbox")
# use a pre-built image from a private registry instead of building from a Dockerfile
# requires registry credentials in .docker/config.json or via bl push flags
# image = "docker.io/myuser/my-sandbox:latest"
# public access to resource (only valid for resource type="agent")
# possible values: [true, false]
# defaults to false
# public = false
# deployment region (optional, for resource type="agent", "function")
# pins the resource to a specific region instead of global distribution
# required when attaching volumes to an agent
# region = "us-pdx-1"
# build configuration (optional)
# [build]
# automatic image slimming
# possible values: [true, false]
# defaults to true
# slim = true
# build-time variables (optional)
# should be used for non-secret values only
# [build.args]
# MY_BUILD_VAR = "my-value"
# entrypoint configuration (optional)
# [entrypoint]
# entrypoint command for production environment
# prod = "python main.py"
# entrypoint command for development environment
# dev = "python main.py --dev"
# environment variables (optional)
# [env]
# key-value pairs
# MY_VAR = "my-value"
# runtime configuration (optional)
# [runtime]
# memory (MB)
# memory = 4096
# job configuration
# maxConcurrentTasks = 10
# task timeout in seconds (only valid for resource type="job")
# timeout = 900
# maximum number of retries
# maxRetries = 0
# base root disk allocation as a percentage of available disk (only valid for resource type="job")
# diskPercent = 5
# volumes (optional, for resource type="agent", "sandbox", "volume-template", "job")
# attaches persistent storage to the resource
# the resource must be pinned to the same region as the volume
# [[volumes]]
# volume name
# name = "my-volume"
# volume type (only for resource type="job")
# possible values: ["ephemeral"]
# type = "ephemeral"
# volume mount path
# for resource type="agent" and "sandbox", attaches persistent storage
# for resource type="job", attaches ephemeral storage
# mountPath = "/data"
# volume size in MB (only valid for resource type="job" and volume type="ephemeral")
# sizeMb = 10240
# volume templates directory (only valid for resource type="volume-template")
# directory = "."
# volume default size in MB (only valid for resource type="volume-template")
# defaultSize = 1024
# GitHub Runner integration (optional, only valid for resource type="job")
# [githubRunner]
# list of GitHub repositories this runner can pick up jobs from
# repositories = ["owner/repo"]
# job trigger (optional)
# [[triggers]]
# trigger identifier
# id = "my-trigger"
# trigger type
# possible values: ["cron", "http", "http-async"]
# "cron" trigger (only valid for resource type="job")
# type = "cron"
# "http" trigger (only valid for resource type="agent" and resource type="function")
# type = "http"
# "http-async" trigger (only valid for resource type="agent")
# type = "http-async"
# [[triggers.configuration]]
# cron expression (only for trigger type="cron")
# schedule = "0 * * * *"
# endpoint URL (only for trigger type="http" and trigger type="http-async")
# path = "/webhook"
# endpoint authentication (only for resource type="function" and trigger type="http")
# possible values: ["public", "private"]
# authenticationType = "public"
# callback URL (only for trigger type="http-async")
# callbackUrl = "https://webhook.site/3955e30a-e4b6-4fa5-8a28-598ce0f53386"
Last modified on May 28, 2026