Self-hosted runners for GitHub Enterprise Server and GHE.com, on your AWS account.
RunsOn starts a new machine on your AWS account for every GitHub Actions job, and deletes it when the job is done. Setting it up for your GitHub Enterprise is the same as for github.com: you just enter your GitHub's address.
Installs in about 10 minutes · card at checkout, nothing charged for 15 days · then from €300 / $350 a year
GithubOrganization: platform
# GitHub Enterprise Server
GithubEnterpriseUrl: https://github.example.com
# or GHE.com
GithubEnterpriseUrl: https://my-company.ghe.com
That's the only extra setting. With Terraform it's called
github_enterprise_url, or
github_base_url for Fleet.
- ~10 minutesto install, with CloudFormation or Terraform
- Every orgone setup for your whole enterprise, with Fleet
- 1 machine per jobdeleted when the job ends
- Your AWS regionUS, EU, Tokyo, Sydney and more
On GitHub Enterprise Server, you bring the runners.
GitHub doesn't offer hosted runners for GitHub Enterprise Server. You have to run the machines for your jobs yourself, usually with VMs, Kubernetes (Actions Runner Controller) or your own EC2 scripts. RunsOn handles that for you, from one install on your AWS account.
| doing it yourself | with RunsOn | |
|---|---|---|
| Scaling | You keep enough machines running for your busiest hour, and pay for them when nothing runs. | A new machine starts for each job and is deleted after. |
| Many organizations | You set up runners again for each organization. | With Fleet, one setup serves every organization in your enterprise, and you choose which ones can use it. Fleet install → |
| Runner images | You build and update your own runner images. | Ready-made images that match GitHub's Ubuntu images, updated every 15 days. Windows too. Platforms → |
| Spot | You handle Spot machines being taken back, or pay full price. | Uses cheaper Spot machines, and switches to regular ones when it has to. Spot pricing → |
| Machine size | One pool of machines per size you offer. |
Any EC2 machine, picked per job:
family=c8a, cpu=16,
image=ubuntu24-full-arm64. Labels → |
On GHE.com, your builds stay in your region too.
With GHE.com, your code is stored in the region you picked: the EU, Australia, the US or Japan. With RunsOn, your jobs run there as well, on your own AWS account, in the AWS region you choose.
One-click install regions
| GHE.com region | AWS regions for RunsOn |
|---|---|
| EU | Frankfurt eu-central-1 · Ireland eu-west-1 · Paris eu-west-3 |
| Australia | Sydney ap-southeast-2 |
| Japan | Tokyo ap-northeast-1 |
| US | North Virginia us-east-1 · Ohio us-east-2 · Oregon us-west-2 |
London and Singapore work out of the box too. For other AWS regions (not GovCloud or China), copy the runner images there first with the AMI sync module.
what stays inside
Your code is built here. We (RunsOn) have no access to your AWS account.
what it receives
A license check, and a short note per job: machine type and boot time. Never your code, repository names, secrets or logs. Every field →
Two ways to set it up.
Both work with GitHub Enterprise Server and GHE.com. Pick one based on who should choose the machines.
Developers pick the machine
Each workflow says what it needs in its
runs-on: line: CPUs, machine type, disk
size. GitHub sends jobs to RunsOn, so your GitHub needs to be able
to reach it.
runs-on: runs-on=${{ github.run_id }}/cpu=8/family=c8a Your platform team picks the machines
The platform team defines a few machine types in Terraform, and developers use them by name. RunsOn fetches jobs from GitHub, so nothing has to connect into AWS. One setup can serve every organization.
runs-on: runs-on/fleet=linux-small/env=production What you need before you start.
Most of the setup is the same as for github.com.
On the GitHub side
- Your GitHub's address: your server, or your
*.ghe.comaddress - Someone who can create a GitHub App in your organization. To cover the whole enterprise with Fleet: a classic token with
manage_runners:enterprise - On GitHub Enterprise Server, an admin who allows the
runs-on/actionaction from github.com (with GitHub Connect, or by copying it over). Jobs run without it, but caching needs it.
On the AWS side
- An AWS account where you can install RunsOn
- Internet access from AWS to your GitHub, to runs-on.com, and to GitHub's download servers
- With Flex, your GitHub must be able to reach RunsOn. Fleet doesn't need this.
When RunsOn is the wrong fit.
You aren't on AWS
RunsOn runs only on AWS. On another cloud or your own hardware, look at Actions Runner Controller or GitHub's own runner agent.
Your GitHub is air-gapped
RunsOn needs internet access, to download GitHub's runner and to check its license.
You need macOS runners
AWS rents Mac machines for at least 24 hours, which doesn't work with a new machine per job.
Try it on one organization.
Try the full product free for 15 days, with your own GitHub Enterprise Server or GHE.com. After that it's one yearly price per company, from €300 / $350, however many minutes you run. You pay AWS directly for the machines. RunsOn is bootstrapped and runs 3M+ jobs a day for 900+ companies.