squadbase.yml
Learn how to configure `squadbase.yml`.
Squadbase uses a YAML-formatted file to describe how your app should be built and which cloud settings to apply at deploy time. By defining these parameters, the platform picks up the settings automatically during deployment.
The file is usually saved as squadbase.yml, but you can rename it by changing Setting file path in the dashboard.
Required keys vary depending on the runtime and framework you choose.
version: '1'
# Build Settings
build:
framework: streamlit # streamlit | nextjs | fastapi | django | morph
runtime: python3.9 # python3.9, python3.10, python3.11, python3.12, python3.13, node18, node20, node22
package_manager: pip # pip, poetry, uv, npm, yarn, pnpm
entrypoint: src/app.py # src/app.py
# Custom Dockerfile settings
dockerfile: Dockerfile # Path to custom Dockerfile (optional)
context: .
build_args:
ARG1: value1
ARG2: value2
# Deployment Settings
deployment:
provider: gcp
aws:
memory: 512
timeout: 30
provisioned_concurrency: 0
ephemeral_storage: 512
gcp:
memory: 1Gi
cpu: 1
timeout: 300
concurrency: 80
min_instances: 0
max_instances: 0
ephemeral_storage: 10Gi
region: us-central1Build
Define build-time settings under build:.
Squadbase builds your app with Docker. For frameworks listed in framework, you don’t need to write your own Dockerfile—one is provided automatically.
If you’re using an unsupported framework or need custom OS packages, you can supply your own Dockerfile.
Using an officially supported framework
Set the following keys when you rely on Squadbase’s built-in images:
| Key | Values | Description |
|---|---|---|
framework | streamlit nextjs fastapi django morph | Framework |
runtime | python3.9 python3.10 python3.11 python3.12 node18 node20 node22 | Runtime |
package_manager | pip poetry uv npm yarn pnpm | Package manager |
entrypoint | src/app.py src/main.py src/index.py | App entry point |
entrypoint is used only for Streamlit to point to the Python file to run.
It is ignored for other frameworks.
Using a custom Dockerfile
If a Dockerfile exists in the project root, Squadbase ignores framework and builds with your Dockerfile instead.
You can also specify a custom Dockerfile path using the dockerfile key.
| Key | Type | Description |
|---|---|---|
dockerfile | string | Path to custom Dockerfile (e.g. docker/Dockerfile.prod) |
context | string | Build context directory (defaults to .) |
build_args | object | Build arguments to pass to Docker build |
Example:
build:
dockerfile: docker/Dockerfile.prod
context: .
build_args:
NODE_ENV: production
API_KEY: ${API_KEY}When using a custom Dockerfile, the framework, runtime, package_manager, and entrypoint keys are ignored.
Deployment
Deployment settings go under deployment:.
Choose the cloud provider with provider (defaults to aws).
After October 2025, the default provider is changing from gcp to aws for new projects. Existing projects will not be affected. Also, streamlit projects will continue to use gcp as the default provider because aws deployment does not support Websocket connections and streamlit apps heavily rely on them.
AWS
| Key | Type | Description |
|---|---|---|
memory | number | Memory (MB) |
timeout | number | Timeout (sec) — max 900 |
provisioned_concurrency | number | Provisioned concurrency |
ephemeral_storage | number | Ephemeral storage (MB) |
GCP
| Key | Type | Description |
|---|---|---|
memory | string (e.g. 1Gi, 512Mi) | Memory |
cpu | number | CPU |
timeout | number | Timeout (sec) — max 7days(604800sec) |
concurrency | number | Max concurrent requests |
min_instances | number | Minimum instances |
max_instances | number | Maximum instances |
ephemeral_storage | string (e.g. 1Gi, 512Mi) | Ephemeral storage |
region | string | GCP region. Currently supports us-central1, asia-northeast1 and europe-west1. |
We do not currently support region selection for AWS deployments due to technical reasons. We plan to add this feature in the future.
Pricing model
Runtime charges are calculated on memory, request, and CPU.
You pay for resources used according to the spec you define under deployment.
| Memory-based ($/GB-sec) | Request-based ($/1 M) | CPU-based ($/vCPU-sec) | |
|---|---|---|---|
| 1. AWS | $0.00002 | $0.25 | – |
| 2. AWS – standby instances | $0.000005 | – | – |
| 3. GCP | $0.000003 | $0.50 | $0.000027 |
| 4. GCP – standby instances | $0.000003 | – | $0.000027 |
Standby instances map to provisioned_concurrency on AWS and min_instances on GCP.
Keeping a standby instance running shortens cold-start delays.