Infrastructure

Deployments

Deployments run in AWS ECS with Fargate VMs. The default compute configuration is 0.25 vCPU and 0.5 GB RAM. This will soon be made configurable. If you need more compute out of the gate, reach out to us.

Community tier workloads run on Fargate SPOT capacity providers, and are subject to spontaneous interruptions when AWS claims capacity in the region. Community tier workloads are automatically rescheduled to a running state when capacity is made available. If your workload is affected by a SPOT interruption, Shuttle will send an email notification.

Rolling deployments: When a new deployment is made, it will be started alongside the previous one until it is considered healthy. After that, the previous deployment will start shutting down. This means that there is a window of time where there are two instances running in parallel. If the new deployment fails to become healthy, it will be retried 3 times while the the previous one will stays up.

HTTPS traffic

HTTPS traffic is proxied to your app on the project’s default subdomain and any custom domains that have been added.

The proxy sets the X-Forwarded-For HTTP header on incoming requests to the remote IP address of the request.

Environment variables

These are the environment variables set in the Shuttle runtime container. Check for SHUTTLE=true or use the shuttle feature flag for custom behavior when running on Shuttle.

SHUTTLE="true"
SHUTTLE_PROJECT_ID="<project id>"
SHUTTLE_PROJECT_NAME="<project name>"
RUST_LOG="INFO"

Secrets

See Shuttle Secrets

Customize Runtime container

See Hook scripts