Detect a queued job
Gondola asks GitHub for jobs assigned to one of your fleet labels. The controller uses outbound HTTPS, so you do not expose a public webhook.
Ephemeral runners · AWS native
Run Linux jobs on fresh EC2 instances in your VPC. Define compute, networking, and IAM with Terraform or OpenTofu. Each instance is terminated after its job; you pay a flat license plus your AWS bill.
No card required. Business: USD $490 / year or USD $49 / month. AWS charges are separate.
A Gondola car climbs through the five stages of one GitHub Actions job: queued, matched to a fleet, launched on a fresh EC2 runner, completed, and cleaned up by terminating the instance. This is an illustration, not a live job or a measure of execution time.
Keep your build steps. A workflow label selects the instance, image, network, permissions, and capacity your team has approved.
In your GitHub workflow
jobs:
build:
runs-on: gondola-linux-x64
steps:
# Your checkout, test and build stepsIn your Gondola module · fleet excerpt
fleets = {
linux_x64 = {
scale_set_name = "gondola-linux-x64"
instance_type = "m7i.large"
max_runners = 2
}
}Operating sequence
Capacity follows the work. Gondola launches a runner when a job needs it and removes the instance afterward. A second controller can take over if the active one fails.
Gondola asks GitHub for jobs assigned to one of your fleet labels. The controller uses outbound HTTPS, so you do not expose a public webhook.
A workflow label selects a fleet you defined with Terraform or OpenTofu. The fleet fixes the image, instance type, network, IAM role, architecture, and capacity limit.
Gondola launches one EC2 instance in your VPC and registers it with GitHub using a short-lived, just-in-time configuration.
The runner accepts one job, then the EC2 instance is terminated. An independent maximum lifetime removes machines left behind by an interrupted workflow.
Your infrastructure
Gondola’s controllers and EC2 runners are installed in your AWS account. There is no Gondola-hosted service in the path of your source code, job payloads, or workload credentials.
Read the security modelControllers and runners initiate outbound HTTPS. Security groups do not need a public listener for Gondola.
The GitHub App key goes directly from GitHub into your Secrets Manager—never through a Gondola service. Workload permissions remain on IAM roles you control.
Your DynamoDB tables hold controller coordination state and, when daily allowances are enabled, estimated launch reservations. They do not store repository source or job output.
Verify published images and release bundles with signed manifests, checksums, provenance, and software bills of materials.
Simple subscriptions · USD
Every plan includes unlimited repositories, jobs, runner minutes, and runner launches. Pay Gondola for the software based on the GitHub scope you cover; pay AWS directly for your infrastructure.
Hobby
Personal, non-commercial use
Personal projects you own and maintain yourself
No card · no usage meter
Business
or $49 month-to-month
Company, employer, or client work in one organization
14-day trial · no card
Enterprise
or $299 month-to-month
Platform teams operating across multiple organizations
14-day trial · no card
| Compare | Hobby | Business | Enterprise |
|---|---|---|---|
| Best for | Personal, non-commercial projects | One company or client organization | Multi-organization platform teams |
| GitHub scope | 1 user or personal org | 1 private organization | Up to 10 private organizations |
| Usage | Unlimited | Unlimited | Unlimited |
| Included help | Documentation | Documentation + email support | Priority email support across covered orgs |
| Trial | Free forever | 14 days, no card | 14 days, no card |
AWS infrastructure, taxes, and separately agreed services are not included.
Common questions
On an ephemeral EC2 instance in an AWS account you control. You provide the VPC, subnets, security groups, instance profiles, and supported instance types.
The public website and subscription fulfillment are vendor-hosted. Nothing in the job execution path is: the controller runs on ECS Fargate in your AWS account, communicates directly with GitHub and AWS, and verifies its entitlement offline.
They provide active/passive availability across Availability Zones. A conditional DynamoDB lease and deployment generation ensure that only one task publishes capacity at a time.
The maintained controller, Terraform/OpenTofu installer, signed releases, upgrade material, and support. AWS bills the infrastructure directly to you.
Unlimited repositories, jobs, runner minutes, and runner launches within the covered GitHub scope. Gondola adds no usage surcharge. AWS and GitHub charges, service quotas, and the fleet capacity limits you configure still apply.
No. The default setup opens GitHub directly and uses one AWS CLI command to place GitHub’s key in your Secrets Manager. Only the digest-pinned controller container runs in your AWS account; the signed local helper is optional.
The Terraform/OpenTofu module is public under Apache 2.0, so you can inspect the infrastructure it creates. The Gondola controller source is private and proprietary; releases provide a compiled, digest-pinned container with signatures, provenance, SBOMs, and checksums. That container runs in your Fargate service, not on Gondola infrastructure.
The current release targets GitHub.com and Linux EC2 fleets on x64 or ARM64. Windows, macOS, GitHub Enterprise Server, Azure, and Google Cloud are not currently supported.
Choose a plan, install Gondola, and run your first workflow.