Self-hosted runners
In GitHub, the runner is the application that runs a job from a GitHub Actions workflow. The runner can run on the hosted machine pools or on self-hosted environments.
A project may want to use a self-hosted runner which, according to GitHub, offers
more control of hardware, operating system, and software tools than GitHub-hosted runners provide. With self-hosted runners, you can choose to create a custom hardware configuration with more processing power or memory to run larger jobs, install software available on your local network, and choose an operating system not offered by GitHub-hosted runners. Self-hosted runners can be physical, virtual, container, on-premises, or in a cloud.
Read the GitHub documentation about self-hosted runners if you are evaluating this option.
Apache permits projects to use self-hosted runners, but does not recommend them because of significant security issues they introduce.
If your project, after careful consideration, wants to use a self-hosted runner, open an Infra Jira ticket to ask Infra to do the required configuration work to enable your project's runner.
For an example of a project running ephemeral self-hosted runners in its own cloud account, and the security measures that setup needs, see Self-hosted runners with RunsOn.
Copyright 2026, The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
Apache® and the Apache logo are trademarks of The Apache Software Foundation.