HTTP/2 301
access-control-allow-origin: *
content-security-policy: default-src 'none';prefetch-src 'self';connect-src 'self';font-src 'self' data:;img-src 'self' github.com *.github.com *.githubusercontent.com *.githubassets.com data: placehold.it;object-src 'self';script-src 'self' github.com *.github.com *.githubusercontent.com *.githubassets.com 'self' data: 'unsafe-inline';script-src-attr 'self';frame-src 'self' github.com *.github.com *.githubusercontent.com *.githubassets.com https://support.github.com https://www.youtube-nocookie.com;frame-ancestors 'self' github.com *.github.com *.githubusercontent.com *.githubassets.com;style-src 'self' github.com *.github.com *.githubusercontent.com *.githubassets.com 'self' 'unsafe-inline' data:;child-src 'self';manifest-src 'self';upgrade-insecure-requests;base-uri 'self';form-action 'self'
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
referrer-policy: no-referrer-when-downgrade
x-content-type-options: nosniff
x-dns-prefetch-control: off
x-download-options: noopen
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
x-xss-protection: 0
cache-control: public, max-age=60
location: /en/actions/how-tos/manage-runners/self-hosted-runners
content-type: text/plain; charset=utf-8
x-github-backend: Kubernetes
x-github-request-id: C247:C3910:870FA6:9EEB03:68ED3BC5
accept-ranges: bytes
age: 0
date: Mon, 13 Oct 2025 17:50:05 GMT
via: 1.1 varnish
x-served-by: cache-bom-vanm7210053-BOM
x-cache: MISS
x-cache-hits: 0
x-timer: S1760377805.467592,VS0,VE334
vary: Accept
strict-transport-security: max-age=31557600
content-length: 88
HTTP/2 200
access-control-allow-origin: *
content-security-policy: default-src 'none';prefetch-src 'self';connect-src 'self';font-src 'self' data:;img-src 'self' github.com *.github.com *.githubusercontent.com *.githubassets.com data: placehold.it;object-src 'self';script-src 'self' github.com *.github.com *.githubusercontent.com *.githubassets.com 'self' data: 'unsafe-inline';script-src-attr 'self';frame-src 'self' github.com *.github.com *.githubusercontent.com *.githubassets.com https://support.github.com https://www.youtube-nocookie.com;frame-ancestors 'self' github.com *.github.com *.githubusercontent.com *.githubassets.com;style-src 'self' github.com *.github.com *.githubusercontent.com *.githubassets.com 'self' 'unsafe-inline' data:;child-src 'self';manifest-src 'self';upgrade-insecure-requests;base-uri 'self';form-action 'self'
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
referrer-policy: no-referrer-when-downgrade
x-content-type-options: nosniff
x-dns-prefetch-control: off
x-download-options: noopen
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
x-xss-protection: 0
cache-control: public, max-age=60
x-powered-by: Next.js
content-type: text/html; charset=utf-8
x-github-backend: Kubernetes
x-github-request-id: 9267:4BBD7:85FA95:9DD874:68ED3BCE
content-encoding: gzip
accept-ranges: bytes
age: 1
date: Mon, 13 Oct 2025 17:50:08 GMT
via: 1.1 varnish
x-served-by: cache-bom-vanm7210053-BOM
x-cache: MISS
x-cache-hits: 0
x-timer: S1760377806.815499,VS0,VE2560
vary: Accept-Encoding
strict-transport-security: max-age=31557600
content-length: 27025
Managing self-hosted runners - GitHub DocsSkip to main contentManaging self-hosted runners
You can host your own runners to run workflows in a highly customizable environment.
You can add a self-hosted runner to a repository, an organization, or an enterprise.
Scripts can automatically execute on a self-hosted runner, directly before or after a job.
You can customize how your self-hosted runner invokes a container for a job.
You can configure the self-hosted runner application as a service to automatically start the runner application when the machine starts.
You can configure self-hosted runners to use a proxy server to communicate with GitHub.
You can use labels to organize your self-hosted runners based on their characteristics.
To use self-hosted runners in a workflow, you can use labels or groups to specify the runner for a job.
You can use policies to limit access to self-hosted runners that have been added to an organization.
You can monitor your self-hosted runners to view their activity and diagnose common issues.
You can permanently remove a self-hosted runner from a repository or organization.