Skip to main content

About self-hosted runners

You can host your own runners and customize the environment used to run jobs in your GitHub Actions workflows.

About self-hosted runners

A self-hosted runner is a system that you deploy and manage to execute jobs from GitHub Actions on GitHub AE. For more information about GitHub Actions, see "Understanding GitHub Actions" and "About GitHub Actions for enterprises."

Con los ejecutores autohospedados, puede crear configuraciones de hardware personalizadas que satisfagan las necesidades con potencia de procesamiento o memoria para ejecutar trabajos más grandes, instalar software disponible en la red local y elegir un sistema operativo. Los ejecutores autohospedados pueden ser físicos, virtuales, en un contenedor, locales o en una nube.

You can add self-hosted runners at various levels in the management hierarchy:

  • Repository-level runners are dedicated to a single repository.
  • Organization-level runners can process jobs for multiple repositories in an organization.
  • Enterprise-level runners can be assigned to multiple organizations in an enterprise account.

La máquina de tu ejecutor se conecta aGitHub AE utilizando la aplicación para ejecutores auto-hospedados de GitHub Actions. La aplicación ejecutora de GitHub Actions es de código abierto. Puede contribuir y presentar incidencias en el repositorio runner. When a new version is released, the runner application automatically updates itself when a job is assigned to the runner, or within a week of release if the runner hasn't been assigned any jobs.

A self-hosted runner is automatically removed from GitHub AE if it has not connected to GitHub Actions for more than 30 days.

For more information about installing and using self-hosted runners, see "Adding self-hosted runners" and "Using self-hosted runners in a workflow."

Characteristics of self-hosted runners

Self-hosted runners are a highly configurable way to run workflows in your own custom environment. Self-hosted runners:

  • Receive automatic updates for the self-hosted runner application only, though you may disable automatic updates of the runner. For more information about controlling runner software updates on self-hosted runners, see "Autoscaling with self-hosted runners." You are responsible for updating the operating system and all other software.
  • Can use cloud services or local machines that you already pay for.
  • Are customizable to your hardware, operating system, software, and security requirements.
  • Don't need to have a clean instance for every job execution.
  • Are free to use with GitHub Actions, but you are responsible for the cost of maintaining your runner machines.
  • Can be organized into groups to restrict access to specific organizations and repositories. For more information, see "Managing access to self-hosted runners using groups."

Requirements for self-hosted runner machines

You can use any machine as a self-hosted runner as long at it meets these requirements:

Autoscaling your self-hosted runners

You can automatically increase or decrease the number of self-hosted runners in your environment in response to the webhook events you receive. For more information, see "Autoscaling with self-hosted runners."

Usage limits

There are some limits on GitHub Actions usage when using self-hosted runners. These limits are subject to change.

  • Tiempo de ejecución del flujo de trabajo: cada flujo de trabajo está limitado a 35 días. Si un flujo de trabajo llega a este límite, se cancelará. Este periodo incluye la duración de la ejecución y el tiempo invertido en la espera y la aprobación.
  • Job queue time - Each job for self-hosted runners can be queued for a maximum of 24 hours. If a self-hosted runner does not start executing the job within this limit, the job is terminated and fails to complete.
  • Solicitudes de API: puedes ejecutar hasta 1000 solicitudes en la API de GitHub en una hora en todas las acciones de un repositorio. Si se supera este número, las llamadas API adicionales fallarán, lo cual puede ocasionar que los trabajos fallen también.
  • Job matrix - Una matriz de jobs puede generar un máximo de 256 jobs por ejecución de flujo de trabajo. Este límite se aplica tanto a los ejecutores autohospedados como a los hospedados por GitHub AE.
  • Cola de ejecución de flujos de trabajo: no se pueden poner en cola más de 500 ejecuciones de flujo de trabajo en un intervalo de 10 segundos por repositorio. Si una ejecución de flujo de trabajo lelga a su límite, la ejecución de flujo de trabajo se termina y falla en completarse.

Workflow continuity for self-hosted runners

Si los servicios de las GitHub Actions se encuentran temporalmente no disponibles, entonces se descartará una ejecución de flujo de trabajo si no se puso en cola en los primeros 30 minutos después de activarse. Por ejemplo, si un flujo de trabajo se activa y los servicios de las GitHub Actions no están disponibles por 31 minutos o más, entonces la ejecución de flujo de trabajo no se procesará.

Supported architectures and operating systems for self-hosted runners

The following operating systems are supported for the self-hosted runner application.


  • Red Hat Enterprise Linux 7 or later
  • CentOS 7 or later
  • Oracle Linux 7
  • Fedora 29 or later
  • Debian 9 or later
  • Ubuntu 16.04 or later
  • Linux Mint 18 or later
  • openSUSE 15 or later
  • SUSE Enterprise Linux (SLES) 12 SP2 or later


  • Windows 7 64-bit
  • Windows 8.1 64-bit
  • Windows 10 64-bit
  • Windows Server 2012 R2 64-bit
  • Windows Server 2019 64-bit


  • macOS 10.13 (High Sierra) or later


The following processor architectures are supported for the self-hosted runner application.

  • x64 - Linux, macOS, Windows.
  • ARM64 - Linux.
  • ARM32 - Linux.

Communication between self-hosted runners and GitHub AE

The self-hosted runner connects to GitHub AE to receive job assignments and to download new versions of the runner application. The self-hosted runner uses an HTTPS long poll that opens a connection to GitHub AE for 50 seconds, and if no response is received, it then times out and creates a new long poll. The application must be running on the machine to accept and run GitHub Actions jobs.

The connection between self-hosted runners and GitHub AE is over HTTPS (port 443).

Only an outbound connection from the runner to your enterprise is required. There is no need for an inbound connection from your enterprise to the runner.

You must ensure that the self-hosted runner has appropriate network access to communicate with your GitHub AE URL and its subdomains. For example, if your subdomain for GitHub AE is octoghae, then you will need to allow the self-hosted runner to access,, and

If you use an IP address allow list, you must add your self-hosted runner's IP address to the allow list. For more information, see "Managing allowed IP addresses for your organization."

If you use an IP address allow list for your GitHub organization or enterprise account, you must add your self-hosted runner's IP address to the allow list. For more information, see "Managing allowed IP addresses for your organization."

You can also use self-hosted runners with a proxy server. For more information, see "Using a proxy server with self-hosted runners."

For more information about troubleshooting common network connectivity issues, see "Monitoring and troubleshooting self-hosted runners."

Communication between self-hosted runners and

Self-hosted runners do not need to connect to unless you have enabled automatic access to actions for your enterprise. For more information, see "About using actions in your enterprise."

If you have enabled automatic access to actions, then the self-hosted runner will connect directly to to download actions. You must ensure that the machine has the appropriate network access to communicate with the GitHub URLs listed below.

Note: Some of the domains listed above are configured using CNAME records. Some firewalls might require you to add rules recursively for all CNAME records. Note that the CNAME records might change in the future, and that only the domains listed above will remain constant.

Self-hosted runner security

Untrusted workflows running on your self-hosted runner pose significant security risks for your machine and network environment, especially if your machine persists its environment between jobs. Some of the risks include:

  • Malicious programs running on the machine.
  • Escaping the machine's runner sandbox.
  • Exposing access to the machine's network environment.
  • Persisting unwanted or dangerous data on the machine.

For more information about security hardening for self-hosted runners, see "Security hardening for GitHub Actions."

Further reading