Operador Kubernetes que executa e escala automaticamente runners self-hosted do GitHub Actions em contêineres efêmeros.
kunchenguid/runner-up
Execute runners do GitHub Actions em suas próprias máquinas Linux, Mac e Windows, com um container, VM ou conta nova para cada job.
Alternativa open source a:GitHub Actions hosted runners
- Estrelas
- 284
- Forks
- 21
- Issues abertas
- 2
- Último commit
- anteontem
O que é?
runner-up executa jobs do GitHub Actions em máquinas que você já tem, em vez de usar os runners hospedados pelo GitHub. Um único coordenador se conecta ao GitHub por meio de runner scale sets, monitora os jobs em espera e atribui cada um a um espaço livre em uma de suas máquinas. Cada job recebe um container Docker ou uma máquina virtual KVM novo no Linux, um clone tart ou um guest Apple container novo no Mac, ou uma conta Windows ou máquina virtual Hyper-V nova no Windows. O ambiente é removido quando o job termina. Os espaços também podem executar jobs diretamente no host.
O coordenador acessa cada máquina por SSH e precisa apenas de acesso SSH, sem exigir um cluster Kubernetes. Ele monitora os cores e a memória de cada máquina, reserva espaço para o proprietário e ordena os jobs em espera entre repositórios com regras configuráveis. Por padrão, pull requests de forks são recusados. Os jobs em execução sobrevivem à reinicialização do coordenador, e uma máquina cujo agente fique inacessível é pausada até voltar a responder.
O projeto é recente e documenta o status de cada provedor: Docker e KVM no Linux, além de espaços tart e host no Mac, já executaram jobs reais, enquanto Hyper-V, Apple container e espaços de conta Windows são classificados como experimentais. O projeto depende da API runner scale set do GitHub, que ainda está marcada pelo GitHub como preview.
Recursos principais
- 01Executa cada job em um container Docker, VM KVM, clone tart ou conta Windows novos, que são removidos ao final.
- 02Conecta-se às máquinas por SSH, sem exigir um cluster Kubernetes.
- 03Divide os cores e a memória de cada máquina em espaços, reservando espaço para o proprietário.
- 04Ordena os jobs em espera entre repositórios com regras configuráveis.
- 05Por padrão, recusa jobs de pull requests de forks.
- 06Mantém os jobs em execução ativos mesmo após a reinicialização do coordenador.
Casos de uso
- Substituir minutos pagos de runners hospedados pelo GitHub por máquinas Linux ou Mac disponíveis.
- Executar jobs de build e assinatura do macOS em um Mac que você já tem.
- Executar jobs de CI em PCs ociosos do escritório ou de casa, sem gerenciar um cluster Kubernetes.
- Dar a cada job de CI um ambiente isolado no seu próprio hardware.
Início rápido
- 1
Instale runner-up com Go
go install github.com/kunchenguid/runner-up@latest - 2
Escolha o repositório que será atendido e o rótulo do pool Linux
runner-up init --repo you/app --pool my-linux - 3
Adicione uma máquina acessível por SSH
runner-up machine add box --ssh ci@box - 4
Verifique a configuração e inicie o coordinator
runner-up check-config && runner-up serve
Antes de usar
- O coordinator só é executado no Linux e no macOS, não no Windows.
- Runner scale sets ainda está em prévia no GitHub, então mudanças feitas por lá podem interromper seu funcionamento.
- Hyper-V, Apple container, Windows account, borrowing e draining são recursos experimentais e podem mudar entre versões.
- O projeto é recente, e alguns provedores ainda não executaram jobs reais.
Em coleções
Tópicos
Perguntas frequentes
- O que é runner-up?
- Execute runners do GitHub Actions em suas próprias máquinas Linux, Mac e Windows, com um container, VM ou conta nova para cada job. runner-up executa jobs do GitHub Actions em máquinas que você já tem, em vez de usar os runners hospedados pelo GitHub. Um único coordenador se conecta ao GitHub por meio de runner scale sets, monitora os jobs em espera e atribui cada um a um espaço livre em uma de suas máquinas. Cada job recebe um container Docker ou uma máquina virtual KVM novo no Linux, um clone tart ou um guest Apple container novo no Mac, ou uma conta Windows ou máquina virtual Hyper-V nova no Windows. O ambiente é removido quando o job termina. Os espaços também podem executar jobs diretamente no host.
- runner-up é gratuito? Qual é a licença?
- runner-up é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- runner-up ainda é mantido?
- Manutenção ativa. O último commit de runner-up foi em 6 de nov. de 2026.
- Para que posso usar runner-up?
- Substituir minutos pagos de runners hospedados pelo GitHub por máquinas Linux ou Mac disponíveis. Executar jobs de build e assinatura do macOS em um Mac que você já tem. Executar jobs de CI em PCs ociosos do escritório ou de casa, sem gerenciar um cluster Kubernetes. Dar a cada job de CI um ambiente isolado no seu próprio hardware.
- Como instalar runner-up?
- Instale runner-up com Go: go install github.com/kunchenguid/runner-up@latest Escolha o repositório que será atendido e o rótulo do pool Linux: runner-up init --repo you/app --pool my-linux Adicione uma máquina acessível por SSH: runner-up machine add box --ssh ci@box Verifique a configuração e inicie o coordinator: runner-up check-config && runner-up serve
- Onde consigo runner-up?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/kunchenguid/runner-up
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Executa o Windows em um container Docker, com download automático e instalação autônoma, acessível pelo navegador ou via RDP.
Um wrapper para QEMU que baixa imagens de sistemas operacionais automaticamente e inicia máquinas virtuais otimizadas de Windows, macOS e Linux.
App de CI para macOS auto-hospedado em Apple Silicon, que executa máquinas virtuais efêmeras para GitHub Actions, Buildkite, GitLab Runner ou scripts personalizados.
App Electron que executa aplicativos Windows no Linux em um container Docker ou Podman e os exibe como janelas nativas da área de trabalho Linux.
Um monitor de máquinas virtuais minimalista baseado em KVM, que executa microVMs leves para workloads seguros de serverless e contêineres em ambientes multi-tenant.